你有没有想过你的网络浏览器是如何工作的? 当您在 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