> For the complete documentation index, see [llms.txt](https://wiki.ash.yt/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.ash.yt/chang-jian-wen-ti-ji-jie-jue-fang-fa/zheng-que-qing-chu-dns-huan-cun-fu-quan-ping-tai-xiang-xi-jiao-cheng.md).

# 正确清除 DNS 缓存( 附全平台详细教程 )

知乎推荐<https://zhuanlan.zhihu.com/p/559614319> 知乎网址<https://zhuanlan.zhihu.com/p/559614319> 原文网址<https://zhuanlan.zhihu.com/p/559614319>

在 Windows 上清除/刷新 DNS 缓存

对于所有 Windows 版本，清除 DNS 缓存的过程都是相同的。你需要使用管理员权限打开命令提示符并运行 ipconfig /flushdns。我是在购买的3A平台购买的服务器进行测试。

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

在 Windows 搜索栏中键入 cmd 。 右键单击 “命令提示符”，然后右击 “以管理员身份运行”。这将打开 “命令提示符” 窗口。 在命令行上，键入以下行，然后按回车： ipconfig /flushdns 成功后，系统将返回以下消息：

Windows IP Configuration

Successfully flushed the DNS Resolver Cache. Windows 7 要在 Windows 7 中清除 DNS 缓存，请执行以下步骤：

单击开始按钮。 在开始菜单搜索文本框中键入 cmd。 右键单击 “命令提示符”，然后单击 “以管理员身份运行”。这将打开 “命令提示符” 窗口。 在命令行上，键入以下行，然后按回车： 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 缓存，请执行以下步骤：

打开查找器。 转到应用程序>实用程序>终端。这将打开终端窗口。 在命令行中，输入以下行，然后按回车： $ sudo killall -HUP mDNSResponder 输入你的 sudo 密码，然后再次按回车。成功后，系统不会返回任何消息。

对于早期版本的 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 客户端，以防止每次访问该网站时重复查询。

谷歌浏览器 Chrome 要清除 Google Chrome 的 DNS 缓存，请执行以下步骤：

打开一个新标签，然后在地址栏输入 chrome://net-internals/#dnsChrome。 点击 “清除主机缓存” 按钮。 如果那对你不起作用，请尝试清除缓存和 Cookie。

按下 CTRL+Shift+Del 以打开 “清除浏览数据” 对话框窗口。 选择一个时间范围。选择 “所有时间” 以删除所有内容。 选中 “Cookie 和其他站点数据” 和 “缓存的图像和文件” 框。 点击 “清除数据” 按钮。 此方法适用于所有基于 Chrome 的浏览器，包括 Chromium，Vivaldi 和 Opera。

火狐 Firefox 要清除 Firefox 的 DNS 缓存，请执行以下步骤：

在右上角，单击汉堡包图标 ☰ 以打开 Firefox 的菜单： 点击 ⚙ Options (Preferences) 链接。 单击左侧的 “隐私和安全性” 或 “隐私” 选项卡。 向下滚动到该 History 部分，然后单击 Clear History... 按钮。 选择要清除的时间范围。选择 “所有内容” 以删除所有内容。 选择所有框，然后单击 “立即清除” 。 如果这对你不起作用，请尝试以下方法并暂时禁用 DNS 缓存。

打开一个新标签，然后在 Firefox 的地址栏中输入 about:config 。 搜索 network.dnsCacheExpiration，将值暂时设置为 0，然后单击 “确定”。然后，改回默认值，然后单击 “确定” 。 搜索 network.dnsCacheEntries，将值暂时设置为 0，然后单击 “确定” 。然后，改回默认值，然后单击 “确定”。 结论 以上都是我在3A平台云服务器进行操作的。

至此，你已经了解了如何在 Windows，Linux 和 MacOS 操作系统上清除或刷新 DNS 缓存。

如果还存在问题，Linux 和 MacOS 还可以使用 dig 命令来查询 DNS 并对 DNS 问题进行故障排除。
