DNS 中的 A 記錄是什麼?把網域指向你的主機 IP
更新日期: 2025 年 6 月 26 日
當你想讓自己的網站對外開放,讓大家透過網址(例如 myblog.com
)能夠連上你的主機,背後其實就需要一段重要的設定 —— DNS 紀錄。
DNS 的工作,是把「人類看得懂的網址」轉換成「電腦能通訊的 IP 位址」。
而這個轉換過程中,最常見的設定方式之一就是 A 記錄。
這篇文章會帶你從零開始認識:
- A 與 AAAA 記錄是什麼?
- 它們怎麼幫你的網站連上主機?
- 要怎麼設定?需要填什麼?
- TTL 又是什麼意思?
A 與 AAAA 記錄是什麼?(IPv4 vs IPv6)
在 DNS 系統中,A 記錄(Address Record) 和 AAAA 記錄 是最基本也最常見的兩種紀錄類型,它們的主要用途是:
✅ 讓你的網址(Domain Name)正確對應到一台主機的 IP 位址,讓網站可以順利被打開。
簡單說,如果你沒有設定這兩種紀錄,使用者輸入 example.com
時,DNS 就不知道該把請求導到哪裡,自然也就無法載入網站。
A 記錄:讓網域指向 IPv4 位址
A 記錄 是 DNS 裡最常被使用的紀錄類型之一。
它的功能很直接:
將某個網域名稱,對應到一個 IPv4 位址。
IPv4 是目前最常見的網際網路協定,IP 的格式是由四組數字組成,例如:
123.45.67.89
這個 IP 其實就像是一棟房子的地址。當你設定 A 記錄,就是在告訴 DNS:
「當有人來找這個網址,請導引到這組 IP。」
✅ A 記錄設定範例
記錄類型 | 名稱(Name) | 值(Value) | 說明 |
---|---|---|---|
A | @ | 123.45.67.89 | 將根網域(如 example.com)指向這組 IPv4 位址 |
這裡的 @
是什麼意思呢?
🔍 @
代表的是「根網域」,也就是沒有加任何子網域的主網址。
例如:
@
→ 就是example.com
www
→ 是www.example.com
shop
→ 是shop.example.com
所以當你在 DNS 控制台中輸入 @
,其實就是在設定:「當使用者輸入 example.com
,請導到這組 IP」。
這筆 A 記錄會啟動以下流程:
- 使用者輸入
example.com
- DNS 查詢時找到這筆 A 記錄(
@
指的是example.com
) - 解析出 IP 為
123.45.67.89
- 瀏覽器向這個 IP 發送請求,網站就能順利顯示
AAAA 記錄:讓網域指向 IPv6 位址
隨著連網設備暴增,IPv4 的地址已不敷使用,因此誕生了 IPv6,它能提供更大量的 IP 資源,且支援更現代化的網路架構。
IPv6 的格式比 IPv4 長很多,像這樣:
2400:cb00:2048:1::c629:d7a2
AAAA 記錄的功能,就是將網域對應到一組 IPv6 位址。
「AAAA」的名稱其實來自 IPv6 使用了四個「A」等級的地址欄位(相對於 IPv4 的一個「A」),因此命名為 AAAA Record
。
✅ AAAA 記錄設定範例
記錄類型 | 名稱(Name) | 值(Value) | 說明 |
---|---|---|---|
AAAA | @ | 2400:cb00:2048:1::c629:d7a2 | 將根網域(example.com)對應到這組 IPv6 位址 |
和 A 記錄一樣,這裡的 @
同樣代表「根網域」。這筆紀錄表示:當有人輸入 example.com
,且網路環境支援 IPv6,就會使用這組 IP 進行連線。
IPv6 的位址使用冒號 :
分隔,有些欄位為了簡潔可以簡寫成 ::
,這是正常的格式壓縮方式。
我該用 A 還是 AAAA 哪一種?兩種都要設嗎?
這是許多網站新手在第一次設定 DNS 時會遇到的疑問。
簡單來說:
✅ 你一定要設 A 記錄(IPv4),但如果你的主機支援 IPv6,也強烈建議加設 AAAA 記錄(IPv6)。
為什麼 A 記錄一定要設?
目前全球大多數網路設備(尤其是桌機、筆電與 Wi-Fi)仍然使用 IPv4 為主,大多數虛擬主機或雲端伺服器也預設提供 IPv4 位址。
因此:
- 如果你只設 AAAA 而沒設 A 記錄,會導致:
- 很多 IPv4 使用者無法訪問你網站
- 某些瀏覽器找不到可用的 IP 位址而顯示「無法載入頁面」
因此,不論你的主機是否支援 IPv6,A 記錄都是基礎且必要的設定。
那為什麼還要設 AAAA 記錄?
如果你的主機或 CDN(例如 Cloudflare、AWS、Vercel)也提供 IPv6 位址,你可以額外設定 AAAA 記錄,讓網站同時支援「雙協定」環境(dual-stack)。
這麼做有以下幾個好處:
🌐 1. 更快的連線效能(視使用者情況)
- 某些手機網路(特別是 4G/5G)或新式 Wi-Fi 環境,會優先走 IPv6,速度與穩定度可能更好
- 如果你設定了 AAAA 記錄,這些裝置就能走 IPv6,獲得更快的回應時間
🌍 2. 提升全球相容性
- 很多國際用戶、CDN、雲平台正在逐步轉向支援 IPv6
- 例如部分中國、歐洲、政府網路,若遇到 IPv6-only 網路環境,沒有 AAAA 就無法連線
🏫 3. 滿足政策或教育機構要求
- 某些政府單位、大學校園網路,已強制使用 IPv6 為預設協定
- 沒有 AAAA 記錄,這些地方的使用者可能完全無法瀏覽你的網站
🤖 DNS 系統會怎麼決定使用哪個?
不用擔心設定順序或優先順序 —— 當你同時設定 A 和 AAAA 記錄時:
🔄 DNS 並不會「擅自挑選」哪一筆記錄,選擇權在於「使用者的網路環境」和「瀏覽器」決定
- 如果使用者網路支援 IPv6,瀏覽器會優先嘗試 AAAA → 走 IPv6
- 若不支援或連不上,就會 fallback 到 A → 走 IPv4
這種做法叫做 Happy Eyeballs 策略(多數現代瀏覽器都有實作),確保使用者連線體驗最佳化。
使用情境:把網域連到 EC2、VPS 主機
當你自己架設網站或部署應用程式時,常見的做法是:
- 在某個雲端平台上開一台伺服器(例如 AWS EC2、Vultr、DigitalOcean)
- 或使用國內的虛擬主機服務(例如 SiteGround、Pumo)
這些主機服務商在你建立主機後,通常都會分配一組 固定的 IP 位址 給你,讓你可以透過該 IP 連線到你的網站伺服器。
你要做的,就是把你的 網域(例如:mywebsite.com
) 和這組 IP 位址連起來,讓使用者輸入網址時,DNS 可以幫忙導向你的主機。
這時候,我們就需要設定 A 記錄(或如果你有 IPv6 位址,也可以再加 AAAA 記錄)。
設定步驟(以 A 記錄為例)
- 登入你的 DNS 控制台(通常是你買網域的地方,例如:GoDaddy、Cloudflare、Namecheap)
- 找到「DNS 記錄設定」或「管理 DNS」的頁面
- 點選「新增紀錄」或「Add Record」
- 輸入以下欄位:
欄位名稱 | 說明 | 範例 |
---|---|---|
Type | 選擇 A 記錄(IPv4 對應用) | A |
Name | 要對應的子網域名稱,主網域用 @,如 @ = mywebsite.com;www = www.mywebsite.com | @ |
Value | 要指向的主機 IP 位址 | 123.45.67.89 |
TTL | 快取時間(幾秒後重新查詢一次),若不確定可用預設值 | 3600(即 1 小時) |
名稱(Name)欄位補充說明
Name 值 | 實際對應網址 | 說明 |
---|---|---|
@ | mywebsite.com | 代表「根網域」,就是沒加任何前綴的主網址 |
www | www.mywebsite.com | 代表子網域 www |
blog | blog.mywebsite.com | 也可以用來設定部落格、API 等子網域 |
如果你希望 www.mywebsite.com
也能打開網站,請再新增一筆 A 或 CNAME 記錄對應到相同位置(下一篇會講 CNAME)。
設定完成後會發生什麼?
- 使用者在瀏覽器輸入
mywebsite.com
- DNS 系統查到你設定的 A 記錄,對應 IP 是
123.45.67.89
- DNS 把這個 IP 回傳給瀏覽器
- 瀏覽器就會嘗試連上這個 IP,也就是你的主機
- 若主機有正確架設網站,畫面就會成功顯示
等待 DNS 傳播(Propagation)
- 雖然設定完馬上生效,但 全球各地 DNS 系統會根據 TTL 快取紀錄
- 一般約 幾分鐘到 1 小時內 就會開始正常導向
- 可使用工具如 DNS Checker 觀察全球 DNS 傳播狀況
常見新手錯誤
錯誤情況 | 原因 / 解法 |
---|---|
網站還是無法顯示 | 檢查主機有沒有開啟 Web 服務(如 Apache、Nginx) |
打 example.com 正常,但 www.example.com 顯示錯誤 | 需要另外設定 www 的 A 或 CNAME 記錄 |
設定後無反應 | TTL 快取未過,或記錄輸入錯誤(IP 填錯或沒儲存) |
有時通、有時不通 | 主機本身設定問題(如防火牆、未綁定網域),不是 DNS 問題 |
TTL 是什麼?DNS 記錄多久才會生效?
在你設定好 A 或 AAAA 記錄之後,你可能會想立刻打開網站測試,但有時卻會發現畫面還是「無法顯示」或連到舊的主機 IP,這時就跟一個重要參數有關——TTL。
TTL 是什麼意思?
TTL 是英文 Time To Live 的縮寫,意思是:
🕒 DNS 查詢結果的快取時間(Cache Duration)
也就是說,當某個使用者的電腦(或網路供應商的 DNS 伺服器)查詢了一次 DNS 記錄後,會「記住」那個查到的結果一段時間,而這段時間就是由 TTL 決定的。
舉個簡單的例子
假設你設定 TTL 為 3600
秒(也就是 1 小時):
- 某位使用者第一次輸入
example.com
時,DNS 查詢會抓到 IP:123.45.67.89
- 這個結果會被快取 1 小時
- 在這 1 小時內,即使你在 DNS 後台更改了 IP,使用者的裝置仍然會沿用舊 IP
- 1 小時過後,系統才會再重新查詢一次 DNS,抓到新的 IP
TTL 快取發生在哪裡?
TTL 快取可能會發生在以下幾個地方:
快取位置 | 說明 |
---|---|
使用者的瀏覽器 | 如 Chrome、Safari 等,會短暫記住 DNS 結果 |
作業系統層級 | Windows、macOS、Linux 都會有 DNS 快取 |
DNS 解析器 | 像是 Google DNS(8.8.8.8)、Cloudflare(1.1.1.1) |
ISP DNS | 使用者的網路供應商也會快取 DNS 查詢結果 |
這就是為什麼有時候你改完 DNS 記錄,別人看已經正常,但你自己還是看不到新網站,因為「快取還沒清掉」。
TTL 與修改 DNS 的關係
當你要更換主機、轉移流量,或做 SSL 憑證驗證前的短期設定時,TTL 會直接影響你變更生效的速度:
- TTL 越短 → 越快重新查詢 → 設定變更越快生效
- TTL 越長 → 越慢重新查詢 → 設定變更延後才能被看見
所以在網站搬家或測試期間,建議先暫時降低 TTL,等穩定後再改回長時間。
常見 TTL 時間建議
使用情境 | 建議 TTL 時間 | 說明 |
---|---|---|
開發測試階段 | 300 秒(5 分鐘) | 設定變動頻繁,快取時間短可以快速看到變更 |
SSL 驗證階段 | 300–600 秒 | 憑證商驗證用的 CNAME/TXT 記錄需要盡快生效 |
正式營運網站 | 3600 秒(1 小時) | 正常情況建議設長一點,減少 DNS 請求頻率,提升效能與穩定性 |
高流量網站 / CDN | 86400 秒(1 天) | 靜態站點、CDN 架構可用較長 TTL,減少查詢壓力,提高快取命中率 |
🔧 要修改 TTL 嗎?幾個操作建議
- 建站初期可以設短一點(例如 300 秒)
- 等網站穩定後再調長(例如 3600 或 86400)
- 如果要搬站或切換 IP,提前一兩天降低 TTL,等 DNS 更新後再調回來
🔍 想知道 DNS 有沒有更新?
你可以使用以下工具查詢 DNS 是否已經更新為你設定的新 IP:
- https://dnschecker.org
- 使用指令工具:
nslookup example.com
dig example.com
這些工具能顯示目前全世界不同地區的 DNS 快取狀態。
A 記錄可以設定多個 IP 嗎?
答案是 可以的,而且這在某些架構中是一種簡單實用的負載分流方式。
多筆 A 記錄是什麼意思?
在 DNS 設定中,你可以針對同一個網域名稱(例如 example.com
),設定不只一筆 A 記錄,每筆都對應不同的 IP 位址。例如:
Name | Type | Value |
---|---|---|
@ | A | 123.45.67.89 |
@ | A | 123.45.67.90 |
@ | A | 123.45.67.91 |
這樣一來,當使用者輸入 example.com
時,DNS 系統會將這三個 IP 回傳給瀏覽器或作業系統,系統通常會採用「輪詢(Round Robin)」的方式,自動在這幾個 IP 之間做簡單的分流:
- 使用者 A 被導向
123.45.67.89
- 使用者 B 被導向
123.45.67.90
- 使用者 C 被導向
123.45.67.91
依此類推,達到一種「分攤流量」的效果。
這算是負載平衡嗎?
是,也不是。
這種做法在 DNS 層級上看起來像是「簡易版的負載平衡」,但它有一些重要的限制:
🔸 優點:
- 簡單設定,不需額外設備或服務
- 對小型網站或備援架構來說是低成本選項
- 設定多個 IP 後,即使其中一台主機宕機,其餘主機仍能運作
🔹 限制:
- DNS 並不會檢查 IP 是否可用
→ 如果123.45.67.90
主機掛了,DNS 還是會照樣分配使用者過去,導致部分使用者打不開網站 - 沒有智慧型負載策略
→ 無法根據流量壓力、自動擴縮、回應時間做調整 - 快取會影響實際效果
→ 使用者的裝置或 DNS 伺服器可能快取住某個 IP,導致無法實現真正的「輪流分配」
更穩定的方式:使用 CDN 或負載平衡器(Load Balancer)
如果你需要更可靠的分流與故障容錯機制,建議使用專業的解法,例如:
類型 | 工具 / 服務 | 優點 |
---|---|---|
CDN | Cloudflare、Fastly、Akamai | 自動分流、全球節點、故障時自動切換 |
Load Balancer | AWS ELB、GCP Load Balancer、Nginx Proxy | 可檢測主機健康狀況、自動選最快或最穩的主機分流 |
這些服務通常會提供一個CNAME 或專用網域名稱,你只要將網域設定為:
example.com → CNAME → loadbalancer.example.net
DNS 層級就只需設定一筆,剩下的健康檢查、分流邏輯由後端服務處理,更穩定、更可靠。
(👉 詳細的 CNAME 使用方式,我們會在下一篇深入介紹)
小結:你學會了什麼?
看完這篇文章,你已經掌握了 DNS 設定中最核心的概念之一:A 記錄與 AAAA 記錄 的用途與設定方式,下面幫你整理本篇的學習重點:
A 記錄是什麼?
- A 記錄(Address Record) 是 DNS 中最基本的記錄類型之一
- 它的功能是:將網域(如
example.com
)對應到一組 IPv4 位址 - IPv4 是目前網際網路上最常用的通訊協定,格式像是
123.45.67.89
- 幾乎所有雲端主機(像 AWS EC2、Vultr、DigitalOcean)都會給你一組 IPv4 位址,所以你一定需要設定一筆 A 記錄,讓使用者能連上網站
AAAA 記錄是什麼?
- AAAA 記錄 的用途與 A 記錄一樣,不同的是它對應的是 IPv6 位址
- IPv6 是新一代 IP 協定,格式較長、容量較大,像這樣:
2400:cb00:2048:1::c629:d7a2
- 如果你的主機也提供 IPv6(許多 CDN 與現代雲服務都有支援),你可以加設一筆 AAAA 記錄
- 使用者的裝置會根據網路環境,在 IPv4 / IPv6 之間自動選擇最合適的連線方式
TTL 是什麼?為什麼很重要?
- TTL(Time To Live) 是 DNS 記錄的「快取有效時間」,單位是秒
- 當使用者查詢過一次 DNS 結果後,會在快取中保留一段時間,直到 TTL 到期才會重新查詢
- 如果你修改了 IP 位址,這個變更不會馬上生效,可能會需要等 TTL 過期後才會更新
- 建議:
- 測試期間使用短 TTL(如 300 秒)
- 正式營運後使用長一點的 TTL(如 3600 秒或以上),提升效能與穩定性
實務上你應該怎麼做?
- 拿到主機 IP 後,一定要設定 A 記錄,才能讓網站「對外開放」
- 若有支援 IPv6,可加設 AAAA 記錄,讓更多網路環境能順利連線
- 設定好 DNS 後,要有耐心等待 TTL 傳播完成
- 若主網域與子網域(如
www.example.com
)都要能使用,記得要各自設 A 或 CNAME 記錄