Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

為了解決從 20 年前制定的 DNS 系統標準過於老舊,導致目前的 DNS 解析速度緩慢,同時舊的 DNS 系統無法安裝部署新的功能。因此 DNS 服務提供商以及大型公共 DNS 服務提供商將在 2019 年 2 月 1 日刪除某些 DNS 實施的標準,藉此來提升整體 DNS 解析速度與新增加抵禦 DDoS 攻擊的功能。
DNS Flag Day 是全球 DNS 服務提供商聯合推動的一次基礎設施升級行動,目的是淘汰不合規的舊版 DNS 軟體,讓整個網際網路的網域解析變得更快、更安全。如果你的網站曾經莫名出現無法連線的狀況,或者在 SEO 工具裡看到 DNS 相關的錯誤警告,很有可能就跟 DNS 合規問題有關。這篇文章會從 DNS 的基本運作原理開始,帶你理解 DNS Flag Day 的來龍去脈、後續的 DNSSEC 與加密 DNS 演進,並且提供具體的檢查方法與修復步驟。
目錄
2019 年 2 月 1 日,全球幾個最大的 DNS 服務提供商在同一時間做了一個決定:停止對不遵守 EDNS0 標準的 DNS 伺服器提供相容措施。這個日子被稱為「DNS Flag Day」,參與的供應商包括 Cloudflare、Google Public DNS、Quad9、CleanBrowsing 等等。簡單來說,如果你的網域的權威名稱伺服器不符合 EDNS0 規範,從那天起就有機會碰到 SERVFAIL 錯誤,導致部分使用者打不開你的網站。
很多人聽到 DNS Flag Day 會覺得這是 2019 年的事情,早就過去了。但實際上,DNS 合規問題不是一次性的。每一次 DNS 標準升級,不合規的網域都可能碰到新的相容性問題。所以即使你的網站現在運作正常,理解 DNS 合規的概念對長期維護網站健康還是很重要的。
EDNS0(Extension Mechanisms for DNS,RFC 6891)早在 1999 年就被制定出來了。它的核心功能是擴充傳統 DNS 封包的 512 位元組大小限制,讓 DNS 可以傳輸更多資料。聽起來很技術性,但影響層面很廣。因為有了 EDNS0,DNS 才能支援 DNSSEC 數位簽章驗證、IPv6 位址記錄(AAAA 記錄)以及各種現代 DNS 功能。
問題在於,雖然標準存在了將近 20 年,很多 DNS 伺服器軟體依然沒有正確實作 EDNS0。為了讓這些不合規的伺服器也能正常運作,各大 DNS 解析器長年以來都維持了一套 workaround(臨時相容措施),這套 workaround 讓 DNS 解析變得更慢也更複雜。DNS Flag Day 的本質就是:大家決定不再幫不合規的伺服器擦屁股了。
在深入 DNS Flag Day 的細節之前,先花一點時間理解 DNS 是怎麼運作的。DNS(Domain Name System)是整個網際網路的電話簿。當你在瀏覽器輸入一個網址,比如 techmoon.xyz,DNS 負責把這個名字轉換成伺服器的 IP 位址,這個過程叫做「DNS 解析」。沒有 DNS,你就只能用一串數字來瀏覽網站,那體驗簡直不敢想像。
DNS 系統裡有兩個關鍵角色。第一個是「遞迴 DNS」(Recursive DNS),它代表你的瀏覽器去查詢答案,就像圖書館員幫你找書一樣。第二個是「權威 DNS」(Authoritative DNS),它是最終擁有正確答案的伺服器,就像書的作者本人。當你訪問一個網站,整個流程大致是這樣的:瀏覽器先檢查自己的快取,然後問作業系統的快取,再問路由器,接著是 ISP 的 DNS 伺服器,一路往上到根 DNS 伺服器、頂級網域 DNS 伺服器,最終找到負責你網域的權威 DNS 伺服器,拿到 IP 位址。
如果你最近正在考慮購買自己的網域名稱,理解 DNS 的基本運作會幫助你少走很多彎路。一個好的網域註冊商通常也會提供可靠的 DNS 管理介面,讓你輕鬆設定名稱伺服器。你也可以用 Hosting Checker 這類工具來查詢任何網域的 DNS 設定和託管資訊。
另一個值得了解的概念是 TTL(Time to Live)。TTL 是每條 DNS 記錄附帶的一個數值,單位是秒,用來告訴其他 DNS 伺服器「這條記錄你可以快取多久」。TTL 設得越長,快取的時間越久,解析速度越快,但如果你修改了 DNS 記錄,舊的記錄就要等 TTL 過期才會被更新。這也是為什麼切換 DNS 供應商通常需要等待 24 到 48 小時才能全球生效。
回到 2019 年的 DNS Flag Day,那一天到底發生了什麼事?具體來說,幾個主流的 DNS 軟體(包括 BIND、PowerDNS、Unbound、Knot Resolver)同時更新了程式碼,移除長期以來為了相容不合規 DNS 伺服器而存在的臨時處理邏輯。同時,全球主要的遞迴 DNS 解析器也配合跟進,不再嘗試用各種替代方式去查詢不合規的權威 DNS 伺服器。
受影響的是那些還在運行老舊 DNS 軟體的權威名稱伺服器。如果你的網域是交給 Cloudflare 這類主流 DNS 供應商管理的,基本上完全不受影響,因為他們早就完全符合 EDNS0 標準。但如果你的網域是用自架的 DNS 伺服器,或者是交給小型 DNS 供應商,而那些伺服器跑的是十幾年前的軟體版本,就很有可能碰到問題。
碰到問題的具體表現是什麼?使用者會收到 SERVFAIL 錯誤,瀏覽器顯示「無法找到伺服器 IP 位址」,就跟500 Internal Server Error 一樣讓人頭痛,但原因完全不同。500 錯誤是伺服器端程式的問題,SERVFAIL 則是 DNS 解析層面的失敗,代表遞迴解析器根本沒辦法從你的權威 DNS 拿到有效回應。
官方測試工具在 dnsflagday.net,你可以輸入自己的網域名稱來檢查是否符合標準。到今天這個工具依然有用,因為 DNS 合規是一個持續性的議題。
DNS Flag Day 2019 打下了基礎,但 DNS 的現代化並沒有在那裡停下來。2020 年出現了第二波 DNS Flag Day,這次聚焦在 DNSSEC(DNS Security Extensions)的普及化。DNSSEC 是一套利用數位簽章來驗證 DNS 回應真實性的機制,可以防止 DNS 偽造攻擊。
差不多同一時期,加密 DNS 的概念也開始走進大眾視野。DNS over HTTPS(DoH)和 DNS over TLS(DoT)是兩種主流的加密 DNS 查詢方式。傳統上,DNS 查詢是明文傳輸的,這意味著你的 ISP、同一個 Wi-Fi 網路裡的任何人,甚至中間的網路設備,都能看到你正在查詢哪些網域。這不是小事,特別是在公共 Wi-Fi 環境下。如果你在意上網隱私,除了考慮使用 VPN 服務,啟用加密 DNS 也是基本該做的防護。
很多人會把 DNSSEC 和 DoH/DoT 搞混,但它們解決的是完全不同的問題。DNSSEC 驗證的是「DNS 回應有沒有被竄改」,透過數位簽章確保你拿到的 IP 位址確實是網域擁有者設定的那個。DoH 和 DoT 加密的是「DNS 查詢過程本身」,防止第三方窺探你正在查詢什麼網域。兩者是互補的關係,不是誰替代誰。
從瀏覽器的角度來看,Firefox 從很早期就支援 DoH,Chrome 也在後續版本中跟進。Cloudflare 的 1.1.1.1 是全球最快的公共 DNS 之一,同時也支援 DoH 和 DoT。對於網站管理者來說,如果你的 DNS 供應商支援 DNSSEC,強烈建議開啟,因為這直接影響到你網站的 DNS 安全性。
講到安全性,Cloudflare Turnstile 是另一個值得了解的工具,它是用來取代 Google reCAPTCHA 的驗證碼方案,可以在 WordPress 網站上輕鬆整合。如果你也想檢查自己的 Email 有沒有在資料外洩事件中曝光,可以試試 Data Breach Checker。
DNS 解析速度是網站載入流程的第一個環節。當使用者點擊一個連結或輸入網址,瀏覽器在建立任何連線之前,必須先完成 DNS 解析。如果 DNS 解析花了 200 毫秒,那整個頁面的載入時間就硬生生多了 200 毫秒。這聽起來好像不多,但 Google 的研究顯示,頁面載入時間每增加 100 毫秒,轉換率就可能下降 1% 到 7%。
DNS 延遲對 SEO 排名的影響 可能比你想像的更大。Google 將頁面速度列為排名因素之一,而 DNS 解析時間是 First Contentful Paint(FCP)的一部分。如果你的網站使用的是速度慢的 DNS 供應商,跟競爭對手比起來你就在起跑點上輸了一截。這也是為什麼很多WordPress 網站速度優化的教學都會建議你把 DNS 切換到高效能供應商。
實際選擇 DNS 供應商的時候,可以參考 GiftofSpeed 或 Fast or Slow 這類測速工具來比較不同供應商的解析速度。Cloudflare Speed Test 也可以幫你測試目前的網路環境。在 DNS 層面省下來的每一毫秒,都會反映在使用者體驗和 SEO 成效上。如果你想了解更多 WordPress 速度優化技巧,可以參考這篇 WordPress 速度提升教學。
檢查 DNS 合規性其實不難,有幾個免費工具可以幫你快速診斷。最直接的方式是使用 dnsflagday.net 官方測試工具,輸入你的網域名稱,它會告訴你目前的 DNS 設定是否符合 EDNS0 標準。如果你的網域是綠色(All OK),恭喜你,完全合規。如果出現紅色或黃色警告,就表示需要處理了。
另一個非常好用的工具是 DNSViz,它可以把 DNS 解析路徑以視覺化方式呈現出來。你一眼就能看到哪個環節有問題,是 DS 記錄缺失還是 DNSSEC 簽章驗證失敗,非常直觀。對於需要更深入分析的人,也可以用終端機的 dig 指令來手動查詢:
dig +dnssec yourdomain.com @8.8.8.8
這條指令會向 Google DNS 查詢你的網域,並顯示 DNSSEC 相關資訊。如果你看到 status: SERVFAIL,那就代表有問題需要修復。
如果你的網站使用了 Cloudflare 的 DNS 服務,可以在 Cloudflare 後台的 DNS 頁面直接檢查設定狀態。Cloudflare 也提供了 DNS 分析工具,可以查看查詢量、回應時間等數據。Cloudflare Email Routing 也是管理自訂網域信箱的好工具,跟 DNS 設定息息相關。
如果你的 DNS 檢查結果顯示有問題,別慌,大部分 DNS 問題的修復方式都很直接。最根本的解法是把名稱伺服器遷移到符合現代標準的供應商。目前市面上主流的 DNS 供應商像是 Cloudflare、AWS Route 53、Google Cloud DNS、Bluehost 提供的 DNS 服務,全都完全符合 EDNS0 和最新的 DNS 標準。
常見的 DNS 錯誤代碼有幾種:SERVFAIL 表示伺服器無法完成查詢,通常是 DNS 設定錯誤或 DNSSEC 驗證失敗;NXDOMAIN 表示查詢的網域不存在,可能是記錄被刪除了或者打錯字;REFUSED 表示伺服器拒絕回應,通常是名稱伺服器設定不正確。跟 502 Bad Gateway 或 500 Internal Server Error 這類 HTTP 錯誤不同,DNS 層面的錯誤發生在更早的階段,使用者連你的伺服器都還沒碰到。
切換 DNS 供應商的時候,最重要的技巧是先降低 TTL。在切換之前至少 48 小時,把所有 DNS 記錄的 TTL 設為 300 秒(5 分鐘)或更低。這樣當你正式切換名稱伺服器之後,全球的 DNS 快取很快就會更新。如果不先降低 TTL,有些地區的使用者可能要等上一兩天才能正常訪問你的網站。
如果你的主機供應商提供的 DNS 服務不夠好,一個常見的做法是把 DNS 管理交給 Cloudflare(免費方案就夠用了),然後在 Cloudflare 的 DNS 設定裡指向你主機的 IP 位址。這樣可以享受 Cloudflare 快速的 DNS 解析,同時保留原本的主機環境。
對於 WordPress 網站來說,DNS 設定的品質直接影響到網站的可用性和速度。在選擇 WordPress 主機的時候,除了看價格和功能,也應該把 DNS 基礎設施納入考量。像 Bluehost 和 Kinsta 這類 WordPress 專用主機,通常都提供整合的 DNS 管理介面,設定起來相對簡單。如果你正在比較不同的主機方案,可以參考 WordPress 虛擬主機推薦懶人包,裡面有完整的費用和速度比較。
很多 WordPress 網站會使用 CDN 服務來加速全球訪問速度,而 CDN 的設定通常跟 DNS 緊密相關。以 Cloudflare 為例,當你把網域的名稱伺服器指向 Cloudflare 之後,所有的 DNS 查詢都會先經過 Cloudflare 的網路,Cloudflare 再根據使用者的地理位置把請求轉發到最近的主機節點。這個過程中,DNS 解析的速度和準確性就變得格外重要。
如果你想了解虛擬主機的種類以及它們在 DNS 管理上的差異,TechMoon 有專門的文章可以參考。對於剛入門的使用者,Bluehost 的 WordPress 安裝教學是個不錯的起點,裡面包含從購買主機到設定 DNS 的完整流程。如果你的預算比較充裕,Kinsta 提供的是託管式 WordPress 主機,DNS 和伺服器管理都由他們處理,可以省下不少心力。
在 WordPress 的 DNS 設定上,有幾個常見的錯誤需要避免。第一是同時使用多個 DNS 供應商但不統一管理,這會導致記錄不一致。第二是忘記設定 SPF 和 DKIM 記錄,讓你網站寄出的Email被當成垃圾信。第三是沒有定期檢查 DNS 記錄的有效性,長期下來可能累積一些過時的記錄。搭配 WordPress 快取外掛一起使用,可以進一步提升網站整體的效能表現。
DNS 雖然是網際網路的基礎設施,但它本身也存在不少安全漏洞。最常見的 DNS 攻擊類型包括 DNS 劫持(把使用者導向惡意網站)、DNS 快取投毒(在 DNS 快取中植入假的 IP 位址)、以及 DNS 放大攻擊(利用 DNS 伺服器來發動 DDoS 攻擊)。這些攻擊手法聽起來很技術性,但後果很實際:你的訪客可能被導向釣魚網站,或者你的網站因為 DDoS 攻擊而完全無法訪問。
防禦 DNS 攻擊的第一步是啟用 DNSSEC。DNSSEC 透過數位簽章來驗證 DNS 回應的真實性,即使攻擊者在中間篡改了 DNS 記錄,瀏覽器也能偵測到異常。大多數現代 DNS 供應商都支援 DNSSEC 設定,在 Cloudflare 後台只需要幾個點擊就能開啟。搭配 Cloudflare 的安全防護功能,可以有效抵禦大多數 DNS 層面的攻擊。
對於 WordPress 網站,DNS 安全只是整體防護的一部分。你可以參考這篇WordPress 安全最佳做法來全面提升網站的防禦能力。定期備份也很重要,UpdraftPlus 是 WordPress 上最受歡迎的免費備份外掛之一。如果你的網站已經有了一些安全措施但想進一步強化,可以看看提升 WordPress 安全性與性能的 7 個技巧。
同時,Cloudflare Turnstile 可以幫你過濾掉惡意的機器人流量,減少伺服器被攻擊的風險。這對於使用 DreamHost、A2 Hosting 或 FastComet 等共享主機的網站尤其重要,因為共享主機的資源是所有用戶共享的,一旦遭到大量惡意請求,影響的不只是你一個網站。
為了幫你更有效率地管理和監控 DNS 設定,以下是一些實用的工具推薦。這些工具分成幾個類別,根據你的需求選擇適合的使用就好。
速度測試與監控:GiftofSpeed 可以用瀑布流方式分析網站載入過程中 DNS 解析所佔的時間。Cloudflare Speed Test 則可以測試你的網路速度和 DNS 解析效能。Fast or Slow 從全球不同地點測試你的網站速度,包含 DNS 解析時間。Loader.io 則是壓力測試工具,可以檢測你的主機在高流量下的 DNS 和回應表現。
網域管理:如果你正在尋找便宜的網域註冊方案,Domcomp 可以幫你比價各個註冊商的首購和續約價格。TLD-List 提供更完整的網域後綴比價功能。選擇網域名稱的技巧 這篇文章則分享了 7 個挑選好域名的實用建議。
安全掃描:Security Header Scanner 可以掃描網站的安全標頭設定。mkcert 讓你在本地開發環境也能安裝 SSL 證書,啟用 HTTPS。這些工具搭配 DNSSEC 使用,可以全面提升你的網站在 DNS 層面的安全性。
如果你在尋找更完整的 WordPress 主機比較,WordPress 虛擬主機推薦 整理了 17 個熱門主機的費用和速度數據。對於不同規模的網站,GreenGeeks、HostGator 和 HostPapa 都是值得考慮的選項,它們在 DNS 管理和使用者體驗上各有特色。
對於只是上網瀏覽的一般使用者來說,DNS Flag Day 基本上不會有任何直接的影響。你的瀏覽器、作業系統和 ISP 的 DNS 伺服器都已經更新到位了。唯一的差別是,如果某個網站的 DNS 設定不合規,你可能會發現那個網站突然打不開了,但那是網站管理員的問題,不是你的問題。
如果你的 DNS 是交給主流供應商管理的(像是 Cloudflare、Bluehost、Kinsta、SiteGround 等),基本不用擔心。這些供應商早就完成了所有合規升級。但如果你是用自架 DNS 伺服器或者小型的 DNS 供應商,建議還是到 dnsflagday.net 測試一下,確認沒有問題。
免費 DNS 服務(如 Cloudflare 免費方案的 DNS)在解析速度和合規性方面已經做得很好了,對大多數中小型網站完全夠用。付費 DNS 服務的優勢主要在於更高的可用性保證(SLA)、更進階的防禦 DDoS 能力、以及更詳細的分析報告。如果你的網站流量很大或者有特殊的安全需求,再考慮付費方案就好。
選擇 DNS 供應商時,主要看幾個方面:全球節點數量(影響各地的解析速度)、是否支援 DNSSEC、是否有 DDoS 防護、以及管理介面是否好用。Cloudflare 是大多數人的首選,免費方案就包含了 DNSSEC 支援和基本的 DDoS 防護。如果你的主機商提供了整合的 DNS 管理(像 Bluehost 或 SiteGround),也可以直接使用,省去額外設定的麻煩。
這取決於你的 DNS 記錄原本設定的 TTL 值。一般來說,DNS 變更需要 24 到 48 小時才能在全球範圍內完全生效。不過實際上,大部分地區的更新會在幾個小時內完成。如果你提前把 TTL 降低到 300 秒,切換後的生效時間可以縮短到幾分鐘。建議在進行任何 DNS 變更之前,先確認所有設定都正確無誤,避免因為設定錯誤而導致長時間的網站無法訪問。
只要操作正確,更換 DNS 不會導致網站斷線。關鍵是在切換名稱伺服器之前,先在新供應商那邊設定好所有的 DNS 記錄(A 記錄、CNAME、MX 等等),確認新舊兩邊的記錄一致。然後再降低 TTL,等待舊的 TTL 過期後再進行切換。這樣即使在 DNS 傳播期間,使用者無論查到新舊哪個 DNS 伺服器,都會被導向正確的 IP 位址。如果你用的是 Cloudflare Workers 之類的進階功能,切換時要特別注意 Workers 的路由設定是否也一起更新了。
DNS over HTTPS(DoH)是將 DNS 查詢封裝在 HTTPS 加密通道中的技術,可以防止第三方窺探你正在查詢哪些網域。Chrome 和 Firefox 等主流瀏覽器已經預設或在設定中支援 DoH。對於一般使用者來說,如果你的瀏覽器支援 DoH,建議開啟,這可以提升上網隱私。對於網站管理者來說,不需要做任何特別的設定來支援 DoH,因為 DoH 影響的是使用者的 DNS 查詢方式,而不是你的網站伺服器。
DNSSEC 本身不是 Google 公開承認的排名因素。但啟用 DNSSEC 可以防止 DNS 偽造攻擊,確保搜尋引擎爬蟲和使用者都能正確地找到你的網站。如果你的網站曾經因為 DNS 劫持而被 Google 判定為不安全,DNSSEC 可以有效避免這類問題。所以雖然不是直接的排名因素,但它間接保護了你的 SEO 成果。搭配使用 WordPress 快取外掛和良好的 SEO 外掛,可以讓你的網站在速度和安全性上都有好的表現。
如果你想了解更多關於 DNS 相關的最新資訊,可以參考 DNS Flag Day 官方中文說明頁面。對於正在考慮購買或轉移網域的朋友,網域購買完整教學和 Domcomp 網域比價工具都是很好的參考資源。如果你對Hostinger 主機、iPage 或 WPX Hosting 這類平價主機有興趣,它們也都提供了基本的 DNS 管理功能,對入門使用者來說是蠻友善的選擇。
DNS 看起來是個很底層的技術,但實際上它每天都在影響你的網站能不能被正常訪問、訪問速度有多快、以及搜尋引擎能不能順利爬取你的內容。花一點時間確認你的 DNS 設定是合規的、使用的是高效能的 DNS 供應商,這個投資的回報會遠超你的想像。