如何在Linux上清除/刷新DNS缓存

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是为最常见的名称服务请求提供缓存的守护程序。 默认配置文件位于/etc/nscd.conf

    什么是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缓存。