DNS 緩存是一個(gè)臨時(shí)數(shù)據(jù)庫顾翼,用于存儲(chǔ)有關(guān)以前的 DNS 查找的信息合愈。
換句話說颅崩,每當(dāng)你訪問網(wǎng)站時(shí)集歇,你的操作系統(tǒng)和網(wǎng)絡(luò)瀏覽器都會(huì)保留該域和相應(yīng) IP 地址的記錄桶略。
這消除了對(duì)遠(yuǎn)程 DNS 服務(wù)器重復(fù)查詢的需要,并允許你的 OS 或?yàn)g覽器快速解析網(wǎng)站的 URL诲宇。
但是在某些情況下际歼,例如:對(duì)網(wǎng)絡(luò)問題進(jìn)行故障排除,或者在更改 DNS 解析器之后姑蓝,你將需要刷新 DNS 緩存鹅心。
這將清除緩存的 DNS 條目,并根據(jù)新配置的 DNS 設(shè)置執(zhí)行后續(xù)查找以解析域纺荧。
對(duì)于所有Windows版本旭愧,清除DNS緩存的過程都是相同的。
您需要使用管理員權(quán)限打開命令提示符并運(yùn)行ipconfig /flushdns宙暇。
在Linux上输枯,除非已安裝并運(yùn)行諸如systemd-resolved,dnsmasq或nscd之類的緩存服務(wù)占贫,否則沒有操作系統(tǒng)級(jí)DNS緩存桃熄。
根據(jù)Linux發(fā)行版和所使用的緩存服務(wù),清除DNS緩存的過程有所不同型奥。
# yum -y install nscd
# yum info nscd
# rpm -ql nscd
nscd會(huì)緩存三種服務(wù)passwd group hosts瞳收,所以它會(huì)記錄三個(gè)庫碉京,分別對(duì)應(yīng) /etc/passwd, /etc/hosts 和 /etc/resolv.conf
每個(gè)庫保存兩份緩存,一份是找到記錄的螟深,一份是沒有找到記錄的谐宙。
每一種緩存都保存有生存時(shí)間(TTL)。其作用就是在本當(dāng)中增加cache 界弧,加快如DNS的解析等的速度凡蜻。
如果開啟了本地緩存:
Linux 機(jī)器要解析某個(gè)dns并不需要每次都去查詢DNS server, 它會(huì)維護(hù)一個(gè)本地的cache. 通過TTL管理本地cache何時(shí)失效。
TTL 由客戶端所對(duì)應(yīng)的authoritative server 決定垢箕。
如果是做搜索引擎或是一些代理服務(wù)類的項(xiàng)目咽瓷,比如短信通道,數(shù)據(jù)推送服務(wù),這個(gè)性能提升還是比較可觀的。
但在一般的項(xiàng)目中舰讹,一臺(tái)服務(wù)器每分鐘發(fā)幾十萬次請(qǐng)求的情況是很少見的,所以這個(gè)性能提升也微乎其微闪朱。
參考
Linux開啟nscd服務(wù)緩存加速
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