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