打开网易新闻 查看更多图片

如果您在网站上工作,您有时需要重置计算机的 DNS 缓存,尤其是在编辑记录或更改主机之后。虽然使用专用命令很容易在 Windows 上刷新 DNS 缓存,但 Mac 用户必须使用一些变通方法。

清除 Mac 上的 DNS 缓存

要清除 Mac 上的 DNS 缓存,请打开终端,您可以在“应用程序”>“实用程序”中或通过 Spotlight 搜索找到该终端,然后运行以下命令:

sudo killall -HUP mDNSResponder

要求时输入您的密码。

那么,这个命令实际上做了什么?这里发生的事情是你在欺骗你的系统刷新缓存。维基百科解释:

SIGHUP 信号在其控制终端关闭时发送到进程。它最初旨在通知串行线路掉线(挂断)的过程。在现代系统中,此信号通常意味着控制伪终端或虚拟终端已关闭。许多守护进程将重新加载其配置文件并重新打开其日志文件,而不是在收到此信号时退出。nohup 是使命令忽略信号的命令。

显然,您不需要了解所有其他内容。但现在你做到了。

网上有很多关于此过程的相互矛盾的信息。例如,一些网站声称您需要在 High Sierra 上运行比此更多的命令,而另一些网站则使此命令不必要地长。然而,据我们所知,上面的命令实际上是必须的。以下是检查您的工作的方法。

检查您的 DNS 是否实际重置

不确定您的 DNS 重置是否真的有效?在某些情况下,在刷新缓存之前关闭 Web 浏览器会有所帮助,但如果这似乎不起作用,您可以通过两种方式快速验证缓存是否为空。

第一个是特定于站点的。在终端上,键入后跟站点的 URL。例如:

dig

挖掘 howtogeek.com

在结果的“答案部分”中,您将看到您的计算机知道的所列出站点的 IP 地址。

打开网易新闻 查看更多图片

如果您没有看到新的 IP 地址,请考虑更改 Mac 上的 DNS 设置并再次刷新缓存。

对于更全局(非特定于站点)的方法,您还可以使用控制台确认缓存已重置,您可以在应用程序 > 实用程序中或使用 Spotlight 中找到该控制台。在左侧面板中突出显示您的系统后,在搜索框中键入“mDNSResponder”,按 Enter,在第一个查询旁边键入“Cache size”,然后再次按 Enter。像这样:

打开网易新闻 查看更多图片

现在,在控制台窗口仍然打开的情况下,返回终端窗口并运行以下命令:

sudo killall -INFO mDNSResponder

您应该会在控制台窗口中看到突出显示的 DNS 缓存大小。现在运行这个命令:

sudo killall -HUP mDNSResponder

然后,再次运行此命令:

sudo killall -INFO mDNSResponder

您应该会在控制台窗口中看到缓存大小的变化。在上面的屏幕截图中,您可以看到我们的缓存大小在发出命令后发生了很大变化。