如何在 Ubuntu 和 Windows 上查看 DNS 缓存的内容

你有没有想过你的网络浏览器是如何工作的? 当您在 Web 浏览器的地址栏中输入 URL(或域名)时,它会获取 URL 并将其发送到域名系统以破译 Web 服务器的 IP 地址。 一旦浏览器获得详细信息,它就会与网络服务器连接以加载您请求的网站。 如果您想详细了解什么是域名系统及其工作原理,您可以在我们的另一篇文章“什么是 DNS 缓存?”中阅读相关内容。

现在有时您可能会遇到网络问题,例如,您可能输入了正确的 URL,但加载的网站可能不同,或者您可能会遇到类似于“DNS 服务器无响应”错误的错误。 虽然偶尔遇到这些问题可能不是那么大的障碍,但如果您知道该错误与您的本地 DNS 有关,那么知道如何显示 DNS 缓存的内容可能是一个救命稻草。

如何在 Ubuntu 上检查 DNS 缓存的内容

自从 Fedora 在 Ubuntu 33 和 Ubuntu 20.10 中,许多 Linux 发行版已切换到“系统解析”来处理 DNS 以及 Internet 的许多其他必要操作。 尽管它已经存在了很长时间,但许多发行版都对进行转换表示犹豫。

尽管 systemd 能够处理运行与 DNS 相关的任务的要求,但没有直接的方法来查看 DNS 缓存的条目。 首先,我们需要向服务发送终止信号。 不用担心,它不会完全终止服务,而是会将缓存的当前条目写入系统日志。 杀死命令是:

$sudo killall -USR2 systemd-resolved

如您所见,您需要记住 sudo 您帐户的密码。 输入密码后,您将获得即时响应并返回提示。

现在您需要将这些命令从系统日志导出到一个文本文件中。 您可以通过以下命令实现此目标:

$sudo journalctl -u system-resolved > ~/dns-cache.txt