
我知道 NS 更新可能需要 24 小時以上。但在這個過程中,有件事讓我很感興趣。
我無法更改 ISP 路由器的 DNS,因此我設定使用 WAN/LAN谷歌公共 DNS
流程場景:
- 我更改了網域 NS
- 幾分鐘後,我去dnschecker.org,我新增一個自訂 DNS 伺服器來輸入 Google 公用名稱伺服器
- dnschecker.org假設它列出了 50% 的 DNS 更新伺服器,包括 Google DNS
- 我進入 Windows 命令列並輸入
ipconfing /flushdns
- 我清除所有 chrome 檔案快取 (
Ctrl+Shift+Del
),清除 chrome 主機 (chrome://net-internals/#dns)快取並刷新 chrome 套接字池(chrome://net-internals/#sockets) - 最後,我在新的 Chrome(或其他瀏覽器)視窗標籤中開啟網站,顯示的網站是舊網站。但是,同時,如果我透過一些免費的線上代理商(例如何爾,網站載入更新的 DNS 版本。
- 僅 24 小時後,我的 chrome 載入了更新的 DNS 網站版本。
怎麼可能呢?我錯過了什麼嗎?
答案1
您的 ISP 的 DNS 伺服器的快取中有您的位址,因此會傳回舊位址。它將繼續這樣做,直到 生存時間 (TTL) 您的資料將過期。
DNS記錄儲存在快取中,主要是為了提高DNS查詢的效能。每個 DNS 記錄都有一個生存時間 (TTL) 值,這是 DNS 伺服器應將該記錄儲存在快取中的時間。即使記錄發生更改,DNS 伺服器也會繼續使用快取中的先前值,直到該時間過去。
DNS 傳播是全球 DNS 伺服器更新網域名稱快取資訊所需的時間。它受到可能已更改的 DNS 記錄的 TTL 的影響,但還有其他因素可能發揮作用。
DNS 變更可能需要長達 72 小時才能在全球範圍內傳播,儘管大多數情況下這會在幾個小時內發生。
若要加快傳播時間,可以將 TTL 設定為較低的數字(不建議),例如 14400(4 小時)。但您應該在 NS 更改之前儘早完成此操作,最多可以提前 96 小時。
當您查詢快取中沒有您的 DNS 的 DNS 伺服器時,您可能會發現它會傳回新的 DNS 記錄(如果變更已傳播到那麼遠)。
答案2
正如您所指出的,您正在使用 ISP 的路由器,而且它似乎被設定為僅使用 ISP 的 DNS 伺服器。
同時,您已使用該網站檢查 Google 的 DNS 伺服器。事實上,您也可以在本機上執行此操作 -nslookup <domain> 8.8.8.8
在命令提示字元中將查詢 8.8.8.8 的 IP <domain>
。
您所看到的是,「網路」上的大多數 DNS 伺服器已更新,但您的 ISP 的 DNS 伺服器仍在傳回舊結果,並將繼續這樣做,直到更新為止。您只需不使用 ISP 的 DNS 伺服器,而是在您的電腦上手動設定它們即可繞過此問題(但是,只有當您的 ISP 不阻止外部 DNS 存取時,這才有效)。
一旦您的 ISP 的 DNS 伺服器更新,您就會收到更新的頁面,就像網路上的其他人一樣。