如何在Windows,MacOS和Linux上清除(刷新)DNS缓存

DNS缓存是一个临时数据库,用于存储有关以前的DNS查找的信息。 换句话说,每当您访问网站时,您的操作系统和Web浏览器都会保留该域和相应IP地址的记录。 这消除了对远程DNS服务器重复查询的需要,并允许您的操作系统或浏览器快速解析网站的URL。

但是,在某些情况下,例如对网络问题进行故障排除或在更改DNS解析器之后,您将需要刷新DNS缓存。 这将清除缓存的DNS条目,并根据新配置的DNS设置执行后续查找以解析域。

本文提供有关如何在不同的操作系统和Web浏览器上刷新DNS缓存的说明。

在Windows上清除/刷新DNS缓存#

对于所有Windows版本,清除DNS缓存的过程都是相同的。 您需要使用管理员权限打开命令提示符并运行 ipconfig /flushdns

Windows 10和Windows 8#

要在Windows 10和8中清除DNS缓存,请执行以下步骤:

  1. 在Windows搜索栏中键入cmd。

  2. 右键单击“命令提示符”,然后单击“以管理员身份运行”。 这将打开“命令提示符”窗口。

  3. 在命令行上,键入以下行,然后按Enter:

    ipconfig /flushdns

    成功后,系统将返回以下消息:

    Windows IP Configuration
    
    Successfully flushed the DNS Resolver Cache.

    Windows清除缓存

Windows 7的 #

要在Windows 7中清除DNS缓存,请执行以下步骤:

  1. 单击开始按钮。

  2. 在“开始”菜单搜索文本框中键入cmd。

  3. 右键单击“命令提示符”,然后单击“以管理员身份运行”。 这将打开“命令提示符”窗口。

  4. 在命令行上,键入以下行,然后按Enter:

    ipconfig /flushdns

    成功后,系统将返回以下消息:

    Windows IP Configuration
    
    Successfully flushed the DNS Resolver Cache.

在Linux上清除/刷新DNS缓存#

在Linux上,除非已安装并运行诸如Systemd-Resolved,DNSMasq或Nscd之类的缓存服务,否则没有操作系统级DNS缓存。 根据Linux发行版和所使用的缓存服务,清除DNS缓存的过程有所不同。

解决的系统编号

大多数现代Linux发行版,例如Ubuntu 18.04,都使用systemd解析的服务来缓存DNS条目。

要确定服务是否正在运行,请使用以下命令:

sudo systemctl is-active systemd-resolved.service

如果服务正在运行,该命令将打印 active。 否则,您将看到 inactive

要清除系统解析的DNS缓存,请键入:

sudo systemd-resolve --flush-caches

成功后,该命令不会返回任何消息。

DNSMasq#

Dnsmasq是轻量级的DHCP和DNS缓存名称服务器。

如果您的系统使用DNSMasq作为缓存服务器,则要清除DNS缓存,您需要重新启动Dnsmasq服务:

sudo systemctl restart dnsmasq.service

要么

sudo service dnsmasq restart

Nscd#

Nscd是一个缓存守护程序,它是大多数基于RedHat的发行版的首选DNS缓存系统。

如果系统使用Nscd清除DNS缓存,则需要重新启动Nscd服务:

sudo systemctl restart nscd.service

要么

sudo service nscd restart

在macOS上清除/刷新DNS缓存

根据所运行的版本,在macOS中刷新缓存的命令略有不同。 该命令必须以具有系统管理员权限的用户(sudo用户)身份执行。

要清除macOS中的DNS缓存,请执行以下步骤:

  1. 打开查找器。

  2. 转到应用程序>实用程序>终端。 这将打开终端窗口。

  3. 在命令行中,输入以下行,然后按Enter:

    sudo killall -HUP mDNSResponder

    输入您的sudo密码,然后再次按Enter。 成功后,系统不会返回任何消息。

对于早期版本的macOS,刷新缓存的命令不同。

macOS版本10.11和10.9

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

macOS版本10.10

sudo discoveryutil mdnsflushcache
sudo discoveryutil udnsflushcaches

macOS版本10.6和10.5

sudo dscacheutil -flushcache

清除/刷新浏览器DNS缓存#

大多数现代的Web浏览器都有一个内置的DNS客户端,以防止每次访问该网站时重复查询。

谷歌浏览器 #

要清除Google Chrome的DNS缓存,请执行以下步骤:

  1. 打开一个新标签并输入 chrome://net-internals/#dns 在Chrome的地址栏中。
  2. 点击“清除主机缓存”按钮。

如果那对您不起作用,请尝试清除缓存和cookie。

  1. 使用以下命令打开“清除浏览数据”对话框 CTRL+Shift+Del
  2. 选择一个时间范围。 选择“所有时间”以删除所有内容。
  3. 选中“ Cookie和其他站点数据”和“缓存的图像和文件”框。
  4. 点击“清除数据”按钮。

此方法适用于所有基于Chrome的浏览器,包括Chromium,Vivaldi和Opera。

火狐浏览器

要清除Firefox的DNS缓存,请执行以下步骤:

  1. 在右上角,点击汉堡包图标 打开Firefox的菜单:
  2. 点击 ⚙ Options (Preferences) 链接。
  3. 单击左侧的“隐私和安全性”或“隐私”选项卡。
  4. 向下滚动到 History 部分,然后单击 Clear History... 按钮。
  5. 选择要清除的时间范围。 选择“所有内容”以删除所有内容。
  6. 选择所有框,然后单击“立即清除”。

如果这对您不起作用,请尝试以下方法并暂时禁用DNS缓存。

  1. 打开一个新标签并输入 about:config 在Firefox的地址栏中。
  2. 搜索 network.dnsCacheExpiration,将值暂时设置为0,然后单击“确定”。 然后,改回默认值,然后单击“确定”。
  3. 搜索 network.dnsCacheEntries,将值暂时设置为0,然后单击“确定”。 然后,改回默认值,然后单击“确定”。

结论#

我们向您展示了如何在Windows,Linux和macOS操作系统上清除或刷新DNS缓存。

Linux和macOS用户可以使用 dig 查询和解决DNS问题的命令。

如果您有任何疑问或反馈,请随时发表评论。

终奌站

Sidebar