如何在 Windows、Mac 或 Linux 中刷新 DNS 緩存
已發表: 2022-10-20你有沒有遇到過這樣的場景,你訪問一個頁面,你看到的內容似乎已經過時或部分缺失,甚至根本沒有內容? 如果是這樣,那麼在故障排除期間,您應該檢查的一件事是這些問題的罪魁禍首是否是您的設備 DNS 緩存。
您可能知道您的瀏覽器可能會“緩存”內容(保存內容以便將來更輕鬆、更快捷地檢索),但您是否也知道您的計算機/筆記本電腦也會這樣做? 今天我們將向您展示如何清除/刷新存儲在您計算機上的 DNS 緩存,無論您是運行 Windows、在 Mac 上工作還是運行 Linux 分發系統。
因此,在我們陷入困境之前,讓我們快速更詳細地了解一下 DNS 緩存到底是什麼。
為什麼存在 DNS 緩存
您可能已經知道,域名系統 (DNS) 本質上是一個地址簿,它將域名與保存網站內容的服務器的 IP 相匹配。 因此,當您訪問網站時,DNS 會將域名轉換為相應的 IP 地址,以便瀏覽器可以呈現正確的資源。
下圖顯示瞭如何將域轉換為計算機友好的 IP 格式並返回網站內容。
此過程可能需要一段時間才能運行並發送響應。 這就是為什麼在查找過程的每個步驟中都包含 DNS 緩存,而操作系統 DNS 緩存就是其中之一。 這樣,當用戶重新訪問網站時,瀏覽器將簡單地從緩存中檢索信息並返回結果,而不是查找信息並遵循通過 DNS 系統查找 IP 地址的過程。 這可以顯著加快加載網站的過程。
為什麼要刷新操作系統上的 DNS 緩存?
您可能需要刷新操作系統 DNS 緩存的原因有多種。
儘管系統上的 DNS 應該(理論上)在需要時更新(例如,網站移動到新的 IP 地址),但這並不總是發生。 因此,您最終可能會看到過時的內容,或者收到 404 錯誤。 這可能非常令人沮喪!
在開發網站或設置其域名記錄時,刷新 DNS 緩存也可以派上用場。 這是 DNS 緩存可能導致衝突並阻止您查看正確內容或整個站點的時候。
此外,如果您不想使用瀏覽器提供的隱身模式,您仍然可以通過刷新 DNS 緩存來保持搜索的私密性。 如果您這樣做並清除您的 cookie,則存儲的有關您訪問的網站的信息將被刪除。
最後一個值得注意的問題稱為 DNS 欺騙(也稱為 DNS 緩存中毒)。 這是一種計算機黑客攻擊形式,其中有人可以訪問您的 DNS 緩存並將名稱服務器重定向到不正確的結果記錄,例如另一個 IP 地址。 這意味著您可能會不知不覺地瀏覽一個不是您認為的網站的網站。 顯然,這具有安全隱患,因為您可能會被誘騙輸入登錄憑據或洩露對黑客有用的其他信息。 通過定期清除您的 DNS 緩存,您可以減少成為這種特定類型黑客攻擊受害者的可能性。
您的 DNS 緩存通常會設置為在一段時間後自動過期,但有時手動刷新它確實有助於確保此過程完全執行。 當您發現自己在連接到網站時遇到問題(在排除了互聯網連接等明顯原因之後!)時,這也是一個很好的步驟。
刷新緩存並沒有真正的缺點,當您第一次訪問網站時可能會受到輕微的時間損失。 但是,這種“滯後”可能幾乎不會引起注意,並且隨著站點被緩存,您第二次訪問同一站點時不會遇到這種情況。
如何在 Windows 10 上刷新 DNS 緩存
以下是清除 Windows 10 操作系統上的 DNS 緩存所必須遵循的步驟。
第一步:打開一個DOS命令窗口。 為此,請單擊搜索圖標並鍵入“運行”(或按住 Windows 按鈕並按 R)
第二步:在彈出的運行窗口中輸入不帶引號的“cmd”,然後按Enter。 現在應該在您面前打開一個命令提示符窗口。
您要做的最後一件事是鍵入以下命令,然後按 Enter:
ipconfig /flushdns
而已。 您的 DNS 緩存現在已刷新。
如何在 Mac 上刷新 DNS 緩存
根據您使用的 macOS 版本,刷新 DNS 緩存的過程可能會有所不同。
清除最新 macOS 版本上的 DNS 緩存
對於 macOS 版本 10.11 或更高版本,打開終端並輸入以下命令:
sudo killall -HUP mDNSResponder
然後你會被要求輸入你的密碼,然後就是這樣。 您的 DNS 緩存現在應該是清晰的。
清除舊 macOS 版本上的 DNS 緩存
對於舊版本,命令因每個版本而異:
OS X 小牛隊:
sudo killall -HUP mDNSResponder
OS X 優勝美地:
sudo discoveryutil udnsflushcaches
Mac OS X 雪豹、Mac OS X 豹:
sudo dscacheutil -flushcache
Mac OS X 老虎:
lookupd -flushcache
注意:您可以通過單擊左上角的“蘋果”圖標並按“關於本機”選項來檢查您正在運行的 macOS 版本。
如何在 Linux 發行版上刷新 DNS 緩存
在清除 Linux 發行版上的 DNS 緩存之前,您需要確保 systemd-resolved 處於活動狀態。 要檢查這一點,請在終端窗口中輸入以下命令:
sudo systemctl is-active systemd-resolved
如果“活動”,那麼您可以繼續並輸入命令以刷新 DNS 緩存。
現在,如果您使用的是Ubuntu ,則應輸入以下內容:
sudo systemd-resolve --flush-caches
您不會收到 DNS 已成功清除的確認消息。 檢查的方法是運行以下命令:
sudo systemd-resolve --statistics
如果該過程成功,您將看到“當前緩存大小”為 0。
但是,如果您不使用 Ubuntu,請插入以下命令:
sudo /etc/init.d/dns-clean start
結論
刷新 DNS 緩存不是您必須經常做的事情,但它可以快速解決意外的網站瀏覽問題。 從上面可以看出,無論您的操作系統如何,這都是一個非常快速的過程!