DNS 傳播

DNS 傳播是指 DNS 記錄的更新在網際網路上所有 DNS 伺服器上完全生效所需的時間。當您更改域名的 DNS 記錄時,這些更改不會在所有地方立即生效。相反,更新會根據 TTL (生存時間) 值,隨著快取記錄過期和重新整理,在全球 DNS 基礎設施中逐漸擴散(傳播)。

How it works

DNS 傳播本質上是全球 ISP 和 DNS 解析器更新其快取以反映您新的 DNS 更改所需的時間。該過程由 DNS 記錄上設置的 TTL(生存時間)值控制,TTL 告訴 DNS 伺服器在從權威名稱伺服器請求新資料之前應快取資訊多長時間。

當您訪問網站時,您的裝置和沿途的各種 DNS 伺服器會快取 DNS 資訊以加快未來的請求。傳播的工作原理如下: **傳播過程:** 1. **進行更改**:您更新 DNS 記錄(例如,將 A 記錄更改為指向新伺服器) 2. **權威更新**:更改立即反映在您的權威名稱伺服器上 3. **快取記錄持續存在**:之前快取了您舊記錄的全球 DNS 解析器和伺服器將繼續提供舊資訊,直到其快取副本過期 4. **TTL 過期**:每個快取記錄都有一個 TTL 值(例如,3600 秒 = 1 小時)。當 TTL 過期時,快取被認為已過時 5. **快取重新整理**:在 TTL 過期後下次進行 DNS 查詢時,解析器會從您的權威伺服器獲取新記錄 6. **逐步傳播**:不同的伺服器在不同的時間快取了您的記錄,因此它們會在不同的時間重新整理,導致傳播是逐步的而不是即時的 **為什麼需要時間:** 傳播時間的差異是因為不同的 DNS 解析器在不同的時刻快取記錄,具有不同的 TTL 遵守政策(某些 ISP 會忽略 TTL),並為不同地理區域的使用者提供服務。這意味著一些使用者立即看到新記錄,而其他使用者可能會在數小時內看到舊的快取資料。

Key Points

  • 傳播通常需要幾分鐘到 48 小時,在極少數情況下可能需要 72 小時
  • TTL(生存時間)值決定了 DNS 記錄在重新整理之前被快取的時間
  • 更改在權威伺服器上是即時的,但在全球 DNS 基礎設施中是逐步的
  • 某些 ISP 會忽略 TTL 值,並將記錄快取的時間超過指定時間,從而延長傳播時間
  • 在進行更改之前降低 TTL 可以加快傳播速度

Common Use Cases

  • 伺服器遷移: 當將網站遷移到具有不同 IP 位址的新伺服器時,DNS 傳播決定了所有使用者被導向到新伺服器之前需要多長時間
  • DNS 提供商更改: 切換 DNS 提供商需要更新 NS 記錄,隨著快取過期,這可能需要 24-48 小時才能完全傳播
  • 郵件伺服器更新: 在遷移電子郵件提供商時對 MX 記錄的更改需要傳播,然後所有寄件者才能將電子郵件路由到新伺服器
  • 緊急更新: 當需要快速更改 DNS 時(例如,DDoS 緩解),傳播延遲意味著一些使用者繼續訪問舊記錄

code 傳播時間線示例

TypeHost / NameValue / Points toTTL
Time00:00 - 進行更改192.0.2.1 → 192.0.2.1003600
Time00:15 - 15 分鐘混合結果
Time01:00 - 1 小時大部分已傳播
Time24:00 - 24 小時完全傳播

* 此示例顯示了具有 1 小時 TTL 的 DNS 更改如何隨時間在不同 DNS 解析器中傳播。

Frequently Asked Questions

為什麼 DNS 傳播需要這麼長時間?expand_more
DNS 傳播實際上並不是更改在網際網路上「傳播」的過程 - 而是等待快取記錄過期的過程。不同的 DNS 伺服器在不同的時間快取了您的舊記錄,並且每個快取都有一個 TTL(生存時間),必須在伺服器請求新資料之前過期。此外,某些 ISP 會忽略建議的 TTL 值並將記錄快取更長時間,從而延長了表面上的傳播時間。DNS 的全球分散式特性意味著沒有單一的開關可以實現即時更新。
如何加快 DNS 傳播速度?expand_more
在進行更改之前 24-48 小時降低您的 DNS 記錄的 TTL 值。例如,如果您的 TTL 是 86400 秒(24 小時),請將其降低到 300 秒(5 分鐘)。等待舊 TTL 過期,然後進行 DNS 更改。使用較低的 TTL,快取將每 5 分鐘重新整理一次,而不是每 24 小時重新整理一次,從而大大加快傳播速度。傳播完成後,您可以將 TTL 提高回更高的值以獲得更好的效能。
有沒有辦法檢查 DNS 傳播狀態?expand_more
有的,有幾個線上工具可以讓您從全球多個位置檢查 DNS 傳播。像 whatsmydns.net、dnschecker.org 和 Google 的 DNS 檢查器這樣的工具會查詢不同國家的 DNS 伺服器,並顯示它們是否返回您的舊記錄或新記錄。您還可以使用命令列工具(如 dignslookup)直接查詢特定的 DNS 伺服器。
DNS 傳播會影響網站停機時間嗎?expand_more
正確管理的 DNS 更改不應導致停機。在傳播期間,一些使用者訪問舊伺服器,而其他使用者訪問新伺服器 - 兩者都應提供網站服務。最佳做法是在傳播完成之前保持舊伺服器運行並提供相同的內容。對於關鍵更改,請使用提前降低 TTL、維護並行基礎設施或使用具有即時更新功能的 DNS 提供商等技術來最大限度地減少任何潛在的中斷。
為什麼有些人立即看到我的更改而其他人看不到?expand_more
不同的使用者查詢不同的 DNS 解析器(基於他們的 ISP 或 DNS 提供商),這些解析器在不同的時間快取了您的舊 DNS 記錄。如果某人的解析器在 23 小時前快取了您的記錄,他們很快就會獲得新記錄,而剛剛在 5 分鐘前快取的解析器的使用者在快取過期之前不會看到更改。此外,如果有人之前訪問過您的網站,他們的瀏覽器或作業系統可能已經單獨在本地快取了 DNS 結果,即使在全球傳播之後也會向他們顯示舊資料。