什麼是 DNS?

DNS(Domain Name System,網域名稱系統)是網際網路的目錄服務。當你在瀏覽器輸入 example.com,DNS 負責將這個人類易讀的名稱轉換成電腦用來通訊的 IP 位址。

少了 DNS,你就必須記住 Google 在 142.250.66.78,YouTube 在另一個 IP……DNS 讓網際網路變得對人類友善。

DNS 解析流程

DNS 採用分層架構:最頂層是根名稱伺服器,再來是頂層網域(TLD)伺服器(如 .com.tw),最後是各網域自己的權威名稱伺服器。

第一次造訪某個網域時,解析流程如下:

  1. 瀏覽器先查本機快取,有效的話直接使用。
  2. 詢問作業系統的解析器(通常是路由器或 ISP 的 DNS)。
  3. 解析器向根名稱伺服器詢問:「.com 由誰管?」
  4. 根伺服器回傳 .com TLD 伺服器位址。
  5. 解析器詢問 TLD 伺服器:「example.com 的權威伺服器在哪?」
  6. 取得權威伺服器位址後再詢問 A 記錄,取得 IP 位址。
  7. 瀏覽器連線。查詢結果依 TTL 快取,下次直接使用。

整個流程通常在 50 毫秒內完成。

DNS 記錄類型

類型用途範例值
A對應 IPv4 位址93.184.216.34
AAAA對應 IPv6 位址2606:2800:220:1:248:1893:25c8:1946
CNAME別名,指向另一個主機名稱www → example.com
MX郵件伺服器10 mail.example.com
TXT任意文字(SPF、DKIM、網域驗證)v=spf1 include:… -all
NS權威名稱伺服器ns1.example.com
CAA限制可簽發憑證的 CA0 issue "letsencrypt.org"

TTL — 存活時間

每筆 DNS 記錄都有 TTL(Time to Live),單位是秒,告訴解析器可以快取多久。TTL 3600 代表快取一小時。

實用技巧:預計要更換主機或修改 MX 記錄時,提前一天將 TTL 調低到 300 秒。正式切換後,新記錄在幾分鐘內就能全球生效,而不是等好幾個小時。

DNS 安全

標準 DNS 查詢透過 UDP port 53 傳送,完全明文。這造成兩個問題:網路路徑上的任何人都能看到你查詢哪些網域,且回應可以被偽造。

  • DNSSEC — 為 DNS 記錄加上密碼學簽章,解析器可以驗證回應是否被篡改。缺點是設定複雜,配置錯誤是網域失效的常見原因。
  • DNS over HTTPS(DoH) — 將 DNS 查詢包在 HTTPS 流量裡傳送,防止 ISP 或網路業者監看你查詢哪些網域。本站使用 Cloudflare 的 DoH 端點執行所有查詢。
  • DNS over TLS(DoT) — 功能與 DoH 相同,但使用專屬的 TCP port 853。
實際試試看:DNS 查詢工具 → 查詢任何網域的 DNS 記錄