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

Logo

更多推荐