Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

本文為「新手也看得懂的 DNS 網域解析」系列第 2 篇

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 位址
名稱(Name)@
值(Value)123.45.67.89
說明將根網域(如 example.com)指向這組 IPv4 位址

這裡的 @ 是什麼意思呢?

🔍 @ 代表的是「根網域」,也就是沒有加任何子網域的主網址。

例如:

  • @ → 就是 example.com
  • www → 是 www.example.com
  • shop → 是 shop.example.com

所以當你在 DNS 控制台中輸入 @,其實就是在設定:「當使用者輸入 example.com,請導到這組 IP」。

這筆 A 記錄會啟動以下流程:

  1. 使用者輸入 example.com
  2. DNS 查詢時找到這筆 A 記錄(@ 指的是 example.com)
  3. 解析出 IP 為 123.45.67.89
  4. 瀏覽器向這個 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 位址
名稱(Name)@
值(Value)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 記錄為例)

  1. 登入你的 DNS 控制台(通常是你買網域的地方,例如:GoDaddy、Cloudflare、Namecheap)
  2. 找到「DNS 記錄設定」或「管理 DNS」的頁面
  3. 點選「新增紀錄」或「Add Record」
  4. 輸入以下欄位:
欄位名稱說明範例
Type選擇 A 記錄(IPv4 對應用)A
Name要對應的子網域名稱,主網域用 @,如 @ = mywebsite.com;www = www.mywebsite.com@
Value要指向的主機 IP 位址123.45.67.89
TTL快取時間(幾秒後重新查詢一次),若不確定可用預設值3600(即 1 小時)
說明選擇 A 記錄(IPv4 對應用)
範例A
說明要對應的子網域名稱,主網域用 @,如 @ = mywebsite.com;www = www.mywebsite.com
範例@
說明要指向的主機 IP 位址
範例123.45.67.89
說明快取時間(幾秒後重新查詢一次),若不確定可用預設值
範例3600(即 1 小時)

名稱(Name)欄位補充說明

Name 值實際對應網址說明
@mywebsite.com代表「根網域」,就是沒加任何前綴的主網址
wwwwww.mywebsite.com代表子網域 www
blogblog.mywebsite.com也可以用來設定部落格、API 等子網域
實際對應網址mywebsite.com
說明代表「根網域」,就是沒加任何前綴的主網址
實際對應網址www.mywebsite.com
說明代表子網域 www
實際對應網址blog.mywebsite.com
說明也可以用來設定部落格、API 等子網域

如果你希望 www.mywebsite.com 也能打開網站,請再新增一筆 A 或 CNAME 記錄對應到相同位置(下一篇會講 CNAME)。

設定完成後會發生什麼?

  1. 使用者在瀏覽器輸入 mywebsite.com
  2. DNS 系統查到你設定的 A 記錄,對應 IP 是 123.45.67.89
  3. DNS 把這個 IP 回傳給瀏覽器
  4. 瀏覽器就會嘗試連上這個 IP,也就是你的主機
  5. 若主機有正確架設網站,畫面就會成功顯示

等待 DNS 傳播(Propagation)

  • 雖然設定完馬上生效,但 全球各地 DNS 系統會根據 TTL 快取紀錄
  • 一般約 幾分鐘到 1 小時內 就會開始正常導向
  • 可使用工具如 DNS Checker 觀察全球 DNS 傳播狀況

常見新手錯誤

錯誤情況原因 / 解法
網站還是無法顯示檢查主機有沒有開啟 Web 服務(如 Apache、Nginx)
打 example.com 正常,但 www.example.com 顯示錯誤需要另外設定 www 的 A 或 CNAME 記錄
設定後無反應TTL 快取未過,或記錄輸入錯誤(IP 填錯或沒儲存)
有時通、有時不通主機本身設定問題(如防火牆、未綁定網域),不是 DNS 問題
原因 / 解法檢查主機有沒有開啟 Web 服務(如 Apache、Nginx)
原因 / 解法需要另外設定 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 查詢結果
說明如 Chrome、Safari 等,會短暫記住 DNS 結果
說明Windows、macOS、Linux 都會有 DNS 快取
說明像是 Google DNS(8.8.8.8)、Cloudflare(1.1.1.1)
說明使用者的網路供應商也會快取 DNS 查詢結果

這就是為什麼有時候你改完 DNS 記錄,別人看已經正常,但你自己還是看不到新網站,因為「快取還沒清掉」。

TTL 與修改 DNS 的關係

當你要更換主機、轉移流量,或做 SSL 憑證驗證前的短期設定時,TTL 會直接影響你變更生效的速度:

  • TTL 越短 → 越快重新查詢 → 設定變更越快生效
  • TTL 越長 → 越慢重新查詢 → 設定變更延後才能被看見

所以在網站搬家或測試期間,建議先暫時降低 TTL,等穩定後再改回長時間。

常見 TTL 時間建議

使用情境建議 TTL 時間說明
開發測試階段300 秒(5 分鐘)設定變動頻繁,快取時間短可以快速看到變更
SSL 驗證階段300–600 秒憑證商驗證用的 CNAME/TXT 記錄需要盡快生效
正式營運網站3600 秒(1 小時)正常情況建議設長一點,減少 DNS 請求頻率,提升效能與穩定性
高流量網站 / CDN86400 秒(1 天)靜態站點、CDN 架構可用較長 TTL,減少查詢壓力,提高快取命中率
建議 TTL 時間300 秒(5 分鐘)
說明設定變動頻繁,快取時間短可以快速看到變更
建議 TTL 時間300–600 秒
說明憑證商驗證用的 CNAME/TXT 記錄需要盡快生效
建議 TTL 時間3600 秒(1 小時)
說明正常情況建議設長一點,減少 DNS 請求頻率,提升效能與穩定性
建議 TTL 時間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 位址。例如:

NameTypeValue
@A123.45.67.89
@A123.45.67.90
@A123.45.67.91
TypeA
Value123.45.67.89
TypeA
Value123.45.67.90
TypeA
Value123.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)

如果你需要更可靠的分流與故障容錯機制,建議使用專業的解法,例如:

類型工具 / 服務優點
CDNCloudflare、Fastly、Akamai自動分流、全球節點、故障時自動切換
Load BalancerAWS ELB、GCP Load Balancer、Nginx Proxy可檢測主機健康狀況、自動選最快或最穩的主機分流
工具 / 服務Cloudflare、Fastly、Akamai
優點自動分流、全球節點、故障時自動切換
工具 / 服務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 記錄
上一篇DNS 是什麼?讓網站被找到的關鍵角色
下一篇DNS 中 CNAME 記錄怎麼用?你的子網域可以這樣設定
目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

架構

目錄

  • A 與 AAAA 記錄是什麼?(IPv4 vs IPv6)
  • A 記錄:讓網域指向 IPv4 位址
  • AAAA 記錄:讓網域指向 IPv6 位址
  • 我該用 A 還是 AAAA 哪一種?兩種都要設嗎?
  • 為什麼 A 記錄一定要設?
  • 那為什麼還要設 AAAA 記錄?
  • 🤖 DNS 系統會怎麼決定使用哪個?
  • 使用情境:把網域連到 EC2、VPS 主機
  • 設定步驟(以 A 記錄為例)
  • 名稱(Name)欄位補充說明
  • 設定完成後會發生什麼?
  • 等待 DNS 傳播(Propagation)
  • 常見新手錯誤
  • TTL 是什麼?DNS 記錄多久才會生效?
  • TTL 是什麼意思?
  • TTL 快取發生在哪裡?
  • TTL 與修改 DNS 的關係
  • 常見 TTL 時間建議
  • A 記錄可以設定多個 IP 嗎?
  • 多筆 A 記錄是什麼意思?
  • 這算是負載平衡嗎?
  • 更穩定的方式:使用 CDN 或負載平衡器(Load Balancer)
  • 小結:你學會了什麼?
  • A 記錄是什麼?
  • AAAA 記錄是什麼?
  • TTL 是什麼?為什麼很重要?
  • 實務上你應該怎麼做?