DNS 緩存是一個臨時數據庫,用于存儲有關以前的 DNS 查找的信息。
換句話說,每當你訪問網站時,你的操作系統和網絡瀏覽器都會保留該域和相應 IP 地址的記錄。
這消除了對遠程 DNS 服務器重復查詢的需要,并允許你的 OS 或瀏覽器快速解析網站的 URL。
但是在某些情況下,例如:對網絡問題進行故障排除,或者在更改 DNS 解析器之后,你將需要刷新 DNS 緩存。
這將清除緩存的 DNS 條目,并根據新配置的 DNS 設置執行后續查找以解析域。
對于所有Windows版本,清除DNS緩存的過程都是相同的。
您需要使用管理員權限打開命令提示符并運行ipconfig /flushdns。
在Linux上,除非已安裝并運行諸如systemd-resolved,dnsmasq或nscd之類的緩存服務,否則沒有操作系統級DNS緩存。
根據Linux發行版和所使用的緩存服務,清除DNS緩存的過程有所不同。
# yum -y install nscd
# yum info nscd
# rpm -ql nscd
nscd會緩存三種服務passwd group hosts,所以它會記錄三個庫,分別對應 /etc/passwd, /etc/hosts 和 /etc/resolv.conf
每個庫保存兩份緩存,一份是找到記錄的,一份是沒有找到記錄的。
每一種緩存都保存有生存時間(TTL)。其作用就是在本當中增加cache ,加快如DNS的解析等的速度。
如果開啟了本地緩存:
Linux 機器要解析某個dns并不需要每次都去查詢DNS server, 它會維護一個本地的cache. 通過TTL管理本地cache何時失效。
TTL 由客戶端所對應的authoritative server 決定。
如果是做搜索引擎或是一些代理服務類的項目,比如短信通道,數據推送服務,這個性能提升還是比較可觀的。
但在一般的項目中,一臺服務器每分鐘發幾十萬次請求的情況是很少見的,所以這個性能提升也微乎其微。
參考
Linux開啟nscd服務緩存加速
https://www.cnblogs.com/xiewenming/p/8521059.html
Unix Linux Windows 如何清除 DNS 緩存
https://sysin.org/blog/how-to-flush-dns-cache
如何清除DNS緩存
https://www.myfreax.com/how-to-clear-the-dns-cache
如何有效的清除 DNS 緩存
https://www.hi-linux.com/posts/56208.html