Linux 上的 DNS 服务器没有单一标准。每个发行版都使用不同的东西,因此您需要查看您的系统上正在运行哪个发行版。当然,尝试一下看看哪个有效也没什么坏处。过程几乎相同。
大多数现代发行版都运行“systemd-resolve”或“nscd”。不过,您可能正在使用“dnsmasq”或“BIND”。无论如何,刷新缓存通常就像重新启动正在运行的守护进程一样简单。
systemd 解析
Ubuntu 和其他基于 Debian 的发行版可能正在运行 systemd-resolve。它是一个内置于 systemd 中的方便的 DNS 守护进程,您的系统已经将其用于很多用途。如果您运行的是 Ubuntu,则一切都已设置完毕并准备就绪。通过告诉 systemd 刷新缓存来清除缓存。

sudo systemd-resolve --flush-caches这就是全部了。您可以通过询问统计数据来检查它是否有效。

sudo systemd-resolve --statistics如果您看到缓存大小为零,则说明您已成功刷新系统缓存。
NSCD

如果您运行的是不同的发行版,那么它很可能使用 nscd。这是 Red Hat 发行版和 Arch Linux 的选择。这个也同样易于使用。只需要重启服务即可清除缓存。
sudo systemctl restart nscd域名解析
dnsmasq 是另一种选择。它在服务器上比在台式机上更常见,但仍然经常使用。 Dnsmasq 非常适合本地 DNS 服务器,并且经常在路由器上使用。与 nscd 一样,您只需重新启动服务即可。
sudo systemctl restart dnsmasq命名的
最后,BIND 是一个更传统的选项。默认情况下,并不是很多发行版都使用它,但您肯定可能会遇到它。 BIND 仍然用于专门构建的 DNS 服务器。
sudo systemctl restart named无论您的计算机运行哪种 DNS 服务,清除 DNS 缓存都不会有任何问题。重新启动大多数 DNS 服务器是一个简单的修复方法。对于基于 Debian 的发行版,您可以使用 systemd 中的内置函数来清除缓存。在所有情况下,该过程都很简单,并且不需要重新启动整个系统。






