每當你訪問網站時,你的操作系統和網絡瀏覽器都會保留該域和相應 IP 地址的記錄,這解決了向DNS 服務器重復查詢的需要,并允許你的系統或瀏覽器快速解析網站的網址。但是在某些情況下,例如:對網絡問題進行故障排除,或者在更改 DNS 解析器之后,你將需要刷新 DNS 緩存。這將清除緩存的 DNS 條目,并根據新配置的 DNS 設置執行后續查找以解析域名。
本文將講解如何在不同的操作系統和 Web 瀏覽器上刷新 DNS 緩存。
對于所有 Windows 版本,清除 DNS 緩存的過程都是相同的。你需要使用管理員權限打開命令提示符并運行 ipconfig /flushdns。
要在 Windows 10 和 Windows 8 中清除 DNS 緩存,請執行以下步驟:
1. 在 Windows 搜索欄中鍵入 cmd 。
2. 右鍵單擊 “命令提示符”,然后右擊 “以管理員身份運行”。這將打開 “命令提示符” 窗口。
3. 在命令行上,鍵入以下行,然后按回車:
ipconfig /flushdns
成功后,系統將返回以下消息:
Windows IP 配置
已成功刷新 DNS 解析緩存。
要在 Windows 7 中清除 DNS 緩存,請執行以下步驟:
1. 單擊開始按鈕。
2. 在開始菜單搜索文本框中鍵入 cmd。
3. 右鍵單擊 “命令提示符”,然后單擊 “以管理員身份運行”。這將打開 “命令提示符” 窗口。
4. 在命令行上,鍵入以下行,然后按回車:
ipconfig /flushdns
成功后,系統將返回以下消息:
Windows IP 配置
已成功刷新 DNS 解析緩存。
在 Linux 上,除非已安裝并運行諸如 Systemd-Resolved,DNSMasq 或 Nscd 之類的緩存服務,否則沒有操作系統級 DNS 緩存。根據 Linux 發行版和所使用的緩存服務,清除 DNS 緩存的過程有所不同。
大多數現代 Linux 發行版,例如 Ubuntu 18.04,都使用 systemd 解析的服務來緩存 DNS 條目。
要查找服務是否正在運行,請運行:
$ sudo systemctl is-active systemd-resolved.service |
如果該服務正在運行,則將打印命令 active,否則將看到 inactive。
要清除系統解析的 DNS 緩存,你需要鍵入以下命令。
$ sudo systemd-resolve --flush-caches |
成功后,該命令不會返回任何消息。
Dnsmasq 是輕量級的 DHCP 和 DNS 緩存名稱服務器。
如果你的系統使用 DNSMasq 作為緩存服務器,則要清除 DNS 緩存,需要重新啟動 Dnsmasq 服務:
$ sudo systemctl restart dnsmasq.service |
也可以使用以下命令
$ sudo service dnsmasq restart |
NSCD 是一個緩存守護程序,它是大多數基于 RedHat 的發行版的首選 DNS 緩存系統。
如果系統使用 NSCD 來清除 DNS 緩存,則需要重新啟動 NSCD 服務:
$ sudo systemctl restart nscd.service |
根據你所運行的版本,在 MacOS 中刷新緩存的命令略有不同。該命令必須以具有系統管理員特權的用戶(sudo 用戶)身份運行。
要清除 MacOS 中的 DNS 緩存,請執行以下步驟:
1. 打開查找器。
2. 轉到應用程序>實用程序>終端。這將打開終端窗口。
3. 在命令行中,輸入以下行,然后按回車:
$ sudo killall -HUP mDNSResponder |
輸入你的 sudo 密碼,然后再次按回車。成功后,系統不會返回任何消息。
對于早期版本的 MacOS,刷新緩存的命令不同。
· MacOS 版本 10.11 和 10.9
$ sudo dscacheutil -flushcache |
· MacOS 版本 10.10
$ sudo discoveryutil mdnsflushcache |
· MacOS 版本 10.6 和 10.5
$ sudo dscacheutil -flushcache |
大多數現代的 Web 瀏覽器都有一個內置的 DNS 客戶端,以防止每次訪問該網站時重復查詢。
要清除 Google Chrome 的 DNS 緩存,請執行以下步驟:
1. 打開一個新標簽,然后在地址欄輸入 chrome://net-internals/#dnsChrome。
2. 點擊 “清除主機緩存” 按鈕。
如果那對你不起作用,請嘗試清除緩存和 Cookie。
1. 按下 CTRL+Shift+Del 以打開 “清除瀏覽數據” 對話框窗口。
2. 選擇一個時間范圍。選擇 “所有時間” 以刪除所有內容。
3. 選中 “Cookie 和其他站點數據” 和 “緩存的圖像和文件” 框。
4. 點擊 “清除數據” 按鈕。
此方法適用于所有基于 Chrome 的瀏覽器,包括 Chromium,Vivaldi 和 Opera。
要清除 Firefox 的 DNS 緩存,請執行以下步驟:
1. 在右上角,單擊漢堡包圖標 ☰ 以打開 Firefox 的菜單:
2. 點擊 ⚙ Options (Preferences) 鏈接。
3. 單擊左側的 “隱私和安全性” 或 “隱私” 選項卡。
4. 向下滾動到該 History 部分,然后單擊 Clear History… 按鈕。
5. 選擇要清除的時間范圍。選擇 “所有內容” 以刪除所有內容。
6. 選擇所有框,然后單擊 “立即清除” 。
如果這對你不起作用,請嘗試以下方法并暫時禁用 DNS 緩存。
1. 打開一個新標簽,然后在 Firefox 的地址欄中輸入 about:config 。
2. 搜索 network.dnsCacheExpiration,將值暫時設置為 0,然后單擊 “確定”。然后,改回默認值,然后單擊 “確定” 。
3. 搜索 network.dnsCacheEntries,將值暫時設置為 0,然后單擊 “確定” 。然后,改回默認值,然后單擊 “確定”。
如果還存在問題,Linux 和 MacOS 還可以使用 dig 命令來查詢 DNS 并對 DNS 問題進行故障排除。