How to Clear/Flush the DNS Cache on Linux
出于各种原因,您可能需要刷新或清除Linux系统上的本地DNS缓存。
这可能是以下原因之一。
有时,您可能无法访问某些网站。
解决网络相关问题时。
DNS解析程序更改后。
运行刷新DNS缓存时,这将破坏缓存中的DNS条目,并根据新配置的DNS设置执行后续查询以解析域。
什么是DNS缓存及其作用?
DNS缓存是计算机操作系统维护的临时数据库。
它存储有关以前的DNS查找的信息(例如有关最近访问的网站和其他Web域上的信息)。
当您访问缓存的网站时,这将通过从本地DNS数据库而不是实际DNS服务器获取详细信息来快速解决DNS查询。
如果您想了解有关网站的DNS信息,请使用以下命令之一。
使用Nslookup命令在Linux上检查DNS(域名服务器)记录
使用Dig命令检查Linux上的DNS(域名服务器)记录
使用主机命令检查Linux上的DNS(域名服务器)记录
什么是nscd DNS缓存
nscd代表名称服务缓存守护程序,nscd是为最常见的名称服务请求提供缓存的守护程序。 默认配置文件位于
什么是dnsmasq DNS缓存
Dnsmasq是一款轻巧,占地面积小,易于配置的DNS转发器和DHCP服务器。 它旨在为小型网络提供DNS和DHCP(可选),适用于资源受限的路由器和防火墙。 它可以服务不在全局DNS中的本地计算机的名称。 它设计用于个人计算机和小型网络,不适用于大型网络。
什么是BIND服务器DNS缓存
BIND代表"伯克利Internet名称域名"。 BIND是使用最广泛的名称服务器软件,是实现Internet域名系统(DNS)协议的开源软件。 BIND是迄今为止Internet上使用最广泛的DNS软件,它提供了强大而稳定的平台。
如何在Linux上清除/刷新DNS缓存
默认情况下,未在操作系统级别安装或启用DNS缓存,但是如果您安装了下面列出的任何缓存服务,请使用适当的命令来刷新它们。
以下是Linux操作系统中使用的主要DNS缓存服务的列表。
systemd解决的服务
nscd DNS缓存
dnsmasq DNS缓存
BIND服务器DNS缓存
1)如何使用systemd解析服务在Linux上刷新DNS缓存
大多数现代Linux操作系统都使用systemd,因此请使用以下命令刷新DNS缓存。
运行以下命令以检查DNS缓存服务在您的系统上是否处于活动状态。
1 | $ sudo systemctl is-active systemd-resolve.service |
您可以使用以下命令检查DNS统计信息。
1 | $ sudo systemd-resolve --statistics |
如果它处于活动状态并且服务正在运行,请使用以下命令刷新它。
1 | $ sudo systemd-resolve --flush-caches |
2)如何在Linux上清除BIND服务器DNS缓存
BIND DNS服务器在安装了Web主机控制面板的大多数服务器上使用。 我们已经在安装了cPanel和CentOS Web面板的服务器上看到了这一点。
运行以下命令在基于Systemd的Linux系统上刷新BIND服务器DNS缓存。
1 | $ sudo systemctl restart named |
运行以下命令以清除基于SysVinit的Linux系统上的BIND服务器DNS缓存。
1 2 3 | $ sudo service named restart or $ sudo /etc/init.d/named restart |
另外,您可以对BIND服务使用以下命令。
要清除BIND DNS缓存,请使用以下命令。
1 | $ sudo rndc restart |
要清除特定域的DNS缓存,请使用以下命令。
1 | $ sudo rndc flushname 2daygeek.com |
要清除局域网的DNS缓存,请使用以下命令。
1 | $ sudo rndc flush lan |
要清除WAN的DNS缓存,请使用以下命令。
1 | $ sudo rndc flush wan |
3)如何在Linux上刷新nscd服务器DNS缓存
一些Linux发行版使用nscd DNS服务器。 如果是这样,请使用以下命令将其刷新。
运行以下命令在基于Systemd的Linux系统上刷新nscd服务器DNS缓存。
1 | $ sudo systemctl restart nscd |
运行以下命令以清除基于SysVinit的Linux系统上的nscd服务器DNS缓存。
1 2 3 | $ sudo service nscd restart or $ sudo /etc/init.d/nscd restart |
4)如何在Linux上清除dnsmasq服务器DNS缓存
某些发行版可能使用dnsmasq DNS服务器。 如果是这样,请使用以下命令对其进行刷新。
运行以下命令在基于Systemd的Linux系统上刷新dnsmasq服务器DNS缓存。
1 | $ sudo systemctl restart dnsmasq |
运行以下命令以清除基于SysVinit的Linux系统上的dnsmasq服务器DNS缓存。
1 2 3 | $ sudo service dnsmasq restart or $ sudo /etc/init.d/dnsmasq restart |
5)如何在Windows上清除DNS缓存
使用以下命令刷新Windows系统上的dns缓存。
1 2 3 4 5 | C:\Windows\system32>ipconfig /flushdns Windows IP Configuration Successfully flushed the DNS Resolver Cache. |
结论
您已经了解了如何在Windows和Linux操作系统上清除或刷新DNS缓存。