您是否對(duì) DNS 系統(tǒng)的復(fù)雜性感到困惑?別擔(dān)心,你并不孤單!盡管 DNS 標(biāo)準(zhǔn)是在 1986 年制定的,但互聯(lián)網(wǎng)上無(wú)數(shù)的模因表明它仍然讓人們感到困惑,甚至像Meta 這樣的技術(shù)巨頭也覺(jué)得使用。在本文中,我們將討論什么是 DNS 傳播、它如何影響您的網(wǎng)站以及如何加速它。讓我們開(kāi)始吧!
什么是 DNS 傳播
DNS 傳播是指對(duì)域的 DNS 記錄所做的更改在整個(gè) Internet 上生效所需的時(shí)間。當(dāng)您更改域的 DNS 設(shè)置時(shí),該更改可能需要一些時(shí)間才能反映在 Internet 上的所有位置。這是因?yàn)镈NS 記錄緩存在世界各地的不同服務(wù)器上,這些服務(wù)器需要時(shí)間來(lái)更新它們的記錄。
我為什么要關(guān)心 DNS 傳播?
如果您只是一個(gè)普通的互聯(lián)網(wǎng)用戶(hù),您可能不需要擔(dān)心 DNS 傳播。但是,如果您負(fù)責(zé)管理網(wǎng)站或域,那么了解 DNS 傳播的工作原理就很重要,因?yàn)樗鼤?huì)影響您的更改生效的速度。
例如,如果您要將域轉(zhuǎn)移到新的網(wǎng)絡(luò)托管服務(wù)提供商,了解 DNS 傳播需要多長(zhǎng)時(shí)間很重要,這樣您就可以做出相應(yīng)的計(jì)劃。如果您不知道 DNS 傳播,您可能會(huì)認(rèn)為您對(duì)域的 DNS 設(shè)置所做的更改會(huì)立即生效,而實(shí)際上可能需要幾個(gè)小時(shí)甚至更長(zhǎng)時(shí)間才能使更改完全生效在互聯(lián)網(wǎng)上傳播開(kāi)來(lái)。這可能會(huì)導(dǎo)致混淆,并可能導(dǎo)致您的網(wǎng)站或域出現(xiàn)問(wèn)題。
如何更快地傳播變化
方法 1:降低生存時(shí)間 (TTL) 值
加速 DNS 傳播的最佳方法是減少DNS 記錄的生存時(shí)間 (TTL) 值。這會(huì)告訴 DNS 解析器將您的 DNS 記錄緩存多長(zhǎng)時(shí)間,因此降低 TTL 值將確保 DNS 解析器更頻繁地刷新您的記錄,從而加快傳播過(guò)程。
但是,這有一些缺點(diǎn):
- 如果您網(wǎng)站的 DNS 記錄很快過(guò)期,可能會(huì)導(dǎo)致您的網(wǎng)站對(duì)訪問(wèn)者來(lái)說(shuō)顯得很慢,因?yàn)樗麄兊臑g覽器將不得不更頻繁地獲取新記錄,這需要時(shí)間。這可能會(huì)讓用戶(hù)感到沮喪,并使他們不太可能繼續(xù)使用您的網(wǎng)站。
- 它會(huì)導(dǎo)致發(fā)送到您的 DNS 權(quán)威解析器的請(qǐng)求數(shù)量增加。如果您維護(hù)自己的服務(wù)器,這會(huì)給您的系統(tǒng)帶來(lái)額外壓力,可能會(huì)增加托管成本和服務(wù)器費(fèi)用。
如果您提前計(jì)劃,可以通過(guò)在計(jì)劃進(jìn)行更改前一天臨時(shí)降低 DNS 記錄的 TTL 值來(lái)避免這種情況。這將確保所有記錄在您需要時(shí)快速過(guò)期。
例如,如果您的 DNS 記錄的 TTL 值為 1 天,那么您可以在前一天將其更改為 5 分鐘。第二天,您可以更改 DNS 記錄以指向新服務(wù)器。這將確保在進(jìn)行更改后的 5 分鐘內(nèi)將所有新訪問(wèn)者發(fā)送到您的新服務(wù)器。一旦您對(duì)一切都按預(yù)期工作感到滿(mǎn)意,您可以將 TTL 值增加回 1 天。
方法 2:請(qǐng)求 DNS 解析器刷新緩存
如果您沒(méi)有提前計(jì)劃,并且需要立即更新您的 DNS 記錄,那么您可以請(qǐng)求 DNS 解析器刷新您記錄的緩存值,并使用新的現(xiàn)有值更新它們。以下是一些主要 DNS 提供商的鏈接:
- Cloudflare:https://1.1.1.1/purge-cache/
- 谷歌:https ://developers.google.com/speed/public-dns/cache
- OpenDNS: https:?//cachecheck.opendns.com/
盡管從這些服務(wù)器上清除緩存會(huì)更新 Internet 上絕大多數(shù)用戶(hù)的記錄,但許多有時(shí)間和資源維護(hù)自己的 DNS 服務(wù)器的技術(shù)愛(ài)好者和企業(yè)客戶(hù)仍然會(huì)有一份過(guò)時(shí)的 DNS 記錄副本,直到它過(guò)期了。
檢查 DNS 記錄是否更新成功
方法 1:使用 DNS 傳播檢查器
您可以使用 DNS 傳播檢查器來(lái)監(jiān)控 DNS 更改的進(jìn)度。這些工具可以幫助您跟蹤您的更改何時(shí)被世界各地的不同 DNS 解析器接收,因此您可以了解傳播過(guò)程的進(jìn)展速度。我們建議使用 Site24x7 的DNS 傳播檢查器,它會(huì)根據(jù)來(lái)自世界不同地區(qū)的多個(gè)名稱(chēng)服務(wù)器檢查給定地址的 DNS 記錄。
方法二:使用 DiG 命令
如果您熟悉命令行,并且寧愿使用終端而不是第三方服務(wù)——那么您很幸運(yùn)。幾乎所有的 Linux 發(fā)行版都預(yù)裝了“dig”工具;您可以使用它來(lái)檢查任何網(wǎng)站的記錄,方法是使用以下命令:
$ dig blog.runcloud.io

您還可以通過(guò)指定服務(wù)器的 IP 地址來(lái)查詢(xún)來(lái)自特定名稱(chēng)服務(wù)器的記錄,而不是使用默認(rèn)的 DNS 解析器:
$ dig @1.1.1.1 blog.runcloud.io

概括
進(jìn)行 DNS 更改(并且它們需要比平時(shí)更長(zhǎng)的時(shí)間)可能會(huì)讓人不得不全神貫注,但只要您考慮到更改需要時(shí)間,您應(yīng)該能夠避免任何潛在的問(wèn)題。
下面我們來(lái)看下夢(mèng)飛云的這款俄羅斯服務(wù)器的價(jià)格套餐: