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 記錄會啟動以下流程:

  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 位址

和 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 小時)

名稱(Name)欄位補充說明

Name 值實際對應網址說明
@mywebsite.com代表「根網域」,就是沒加任何前綴的主網址
wwwwww.mywebsite.com代表子網域 www
blogblog.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 問題

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 請求頻率,提升效能與穩定性
高流量網站 / CDN86400 秒(1 天)靜態站點、CDN 架構可用較長 TTL,減少查詢壓力,提高快取命中率

🔧 要修改 TTL 嗎?幾個操作建議

  • 建站初期可以設短一點(例如 300 秒)
  • 等網站穩定後再調長(例如 3600 或 86400)
  • 如果要搬站或切換 IP,提前一兩天降低 TTL,等 DNS 更新後再調回來

🔍 想知道 DNS 有沒有更新?

你可以使用以下工具查詢 DNS 是否已經更新為你設定的新 IP:

這些工具能顯示目前全世界不同地區的 DNS 快取狀態。

A 記錄可以設定多個 IP 嗎?

答案是 可以的,而且這在某些架構中是一種簡單實用的負載分流方式。

多筆 A 記錄是什麼意思?

在 DNS 設定中,你可以針對同一個網域名稱(例如 example.com),設定不只一筆 A 記錄,每筆都對應不同的 IP 位址。例如:

NameTypeValue
@A123.45.67.89
@A123.45.67.90
@A123.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可檢測主機健康狀況、自動選最快或最穩的主機分流

這些服務通常會提供一個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 記錄

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *