這個簡單的指南將引導您完成所有可能的方法來清除或刷新 Linux 操作系統上的 DNS 緩存。如果你想知道 DNS緩存 (或有時稱為 DNS解析緩存) 是一個由操作系統維護的小型臨時數據庫。存儲有關您訪問的所有網站和其他 Internet 域的信息。換句話說,DNS 緩存包含最近的 DNS 查找。當您多次訪問同一個網站時,操作系統會從本地 DNS 緩存數據庫而不是從實際的公共 DNS 服務器中檢索網站的 DNS 記錄。因此,DNS 緩存可以改善網站加載時間並減少原始 DNS 服務器的帶寬/CPU 消耗。
內容
清除或刷新 DNS 緩存的原因
清除本地 DNS 緩存的原因有很多。例如,您可能已經自定義了您的網站、更改了您的域的 DNS 設置,或者面臨互聯網連接問題。在這種情況下,當您嘗試訪問該站點時,您的操作系統可能會從您的本地 DNS 緩存中檢索該站點的緩存版本。因此,清除本地 DNS 緩存會刪除本地 DNS 緩存數據庫中的所有條目,並導致系統使用來自實際 DNS 服務器的新條目重新填充 DNS 緩存並提供網站的新副本。
在 Linux 上清除或刷新 DNS 緩存
默認情況下,在 Linux 的操作系統級別未安裝或啟用 DNS 緩存。相反,Web 瀏覽器等應用程序維護自己的內部緩存。因此,只需清除瀏覽器的緩存或重新啟動即可解決 Internet 連接問題、解決 DNS 欺騙(例如 DNS 緩存中毒)以及解決過時內容的問題。 如果您在 Linux 發行版上使用 DNS 緩存服務,則需要手動清除它們,如下所述。 有幾種方法可以清除 DNS 緩存。這取決於您的 Linux 發行版和 DNS 緩存服務。在這裡,我們包含了清除 Linux 上最常用的 DNS 緩存服務的說明。
1.清除Systemd-resolve DNS緩存服務
系統分析 是一個 systemd 服務,為本地應用程序提供系統級 DNS 緩存服務。這是默認安裝的 systemd 軟件包的一部分。 在大多數現代 Linux 操作系統(如 Fedora 和 Ubuntu)上默認啟用 systemd 解析服務。首先,讓我們使用以下命令檢查 systemd-resolved 服務是否處於活動狀態:
$ sudo systemctl is-active systemd-resolved.service
如果啟用了 systemd-resolved 服務,您將看到: “積極的” 在輸出。不活動時打印 “不活動”.
從上面的輸出可以看出,systemd-resolved 服務在我的系統上處於活動狀態。
讓我們使用以下命令查看 systemd-resolve 緩存服務統計信息:
$ sudo systemd-resolve --statistics
示例輸出:
DNSSEC supported by current servers: no
Transactions
Current Transactions: 0
Total Transactions: 3117
Cache
Current Cache Size: 58
Cache Hits: 1248
Cache Misses: 1891
DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0
如您所見,上面的輸出列出了當前緩存大小、總緩存命中和緩存未命中。
要刷新 systemd-resolve 緩存,請運行:
$ sudo systemd-resolve --flush-caches
執行成功後不顯示輸出。
現在檢查 systemd-resolve 統計信息以確保清除本地 DNS 緩存。
$ sudo systemd-resolve --statistics
您可以看到當前緩存大小為零。
DNSSEC supported by current servers: no
Transactions
Current Transactions: 0
Total Transactions: 3155
Cache
Current Cache Size: 0
Cache Hits: 1255
Cache Misses: 1922
DNSSEC Verdicts
Secure: 0
Insecure: 0
Bogus: 0
Indeterminate: 0

2.清除Nscd DNS緩存服務
國家標準局短缺 n糖果 第二服務 C。疼痛 daemon 是一個緩存守護進程,它提供最常見名稱服務請求的緩存。對於大多數基於 Redhat 的系統,這是推薦的緩存服務。 如果您在 Linux 系統上使用 nscd 緩存服務,您只需重新啟動 nscd 服務即可清除或刷新本地 DNS 緩存服務,如下所示:
$ sudo systemctl restart nscd.service
再次,
$ sudo service nscd restart
再次,
$ sudo /etc/init.d/nscd restart
3.清除bind/name DNS緩存服務
伯克利互聯網域名 (很快 揉) 是當今最流行的開源 DNS 服務器。 如果您使用 BIND 緩存 DNS 查詢,請使用以下命令清除/刷新 Linux 上的 BIND 緩存服務。
$ sudo systemctl restart named
再次,
$ sudo service named reload
再次,
$ sudo /etc/init.d/named restart
再次,
$ sudo rndc reload
再次,
$ sudo rndc exec
最新的 BID 版本還允許您清除特定域的 DNS 緩存。以下命令清除 ostechnix.com 域的 DNS 緩存。
$ sudo rndc flushname ostechnix.com
您還可以清除 LAN 和 WAN 區域中的 DNS 緩存,如下所示:
$ sudo rndc flush lan
$ sudo rndc flush wan
4.清除Dnsmasq DNS緩存服務
域名 支持 PXE 和 TFTP 服務器的輕量級 DHCP 和緩存 DNS 服務器。非常適合使用資源受限的路由器和防火牆管理小型網絡。
如果您使用 dnsmasq 作為緩存服務,您可以按如下方式刷新本地 DNS 緩存服務:
$ sudo systemctl restart dnsmasq
c的另一種方式要了解 Ubuntu 和其他 Ubuntu 變體(如 Linux Mint)上的本地 DNS 緩存,請運行以下命令:
$ sudo /etc/init.d/dns-clean restart
希望這可以幫助。
相關文件:
- 在 Ubuntu 16.04 LTS 上安裝和配置 DNS 服務器
DNSDNS緩存域名系統LinuxLinux命令