在使用 Ubuntu 系统时,有时你会发现访问某个网站总是跳转到旧的 IP 地址,或者修改了 hosts 文件后没有生效。这很可能是因为系统缓存了 DNS 解析结果。这时候,你就需要清理 Ubuntu 的 DNS 缓存了。
本文将为你详细介绍在不同版本的 Ubuntu 系统中如何清除 DNS 缓存,无论你是刚接触 Linux 的小白,还是有一定经验的用户,都能轻松操作。
DNS(Domain Name System)负责将域名(如 www.example.com)转换为 IP 地址。为了提升访问速度,系统或服务会临时存储这些解析结果,这就是 DNS 缓存。但当目标网站更换了服务器 IP,而你的本地缓存未更新时,就可能导致无法访问或访问错误页面。
早期版本的 Ubuntu(如 16.04 之前)默认不启用本地 DNS 缓存服务。但从 Ubuntu 18.04 开始,系统默认使用 systemd-resolved 作为本地 DNS 解析器,并自动缓存 DNS 查询结果。
因此,如果你使用的是 Ubuntu 18.04、20.04、22.04 或更高版本,极有可能启用了 DNS 缓存,需要手动清理。
这是目前 Ubuntu 最主流的方式。请按以下步骤操作:
Ctrl + Alt + T)systemctl status systemd-resolved 如果看到 “active (running)”,说明服务已启用。
接下来,执行以下命令清除 DNS 缓存:
sudo systemd-resolve --flush-caches 注意:在 Ubuntu 22.04 及更新版本中,该命令已被弃用,请改用:
sudo resolvectl flush-caches 执行成功后,终端不会返回任何信息,但缓存已经清除。
如果你不确定使用哪个命令,也可以直接重启整个服务,这样也能清空缓存:
sudo systemctl restart systemd-resolved 有些用户可能手动安装了 nscd 或 dnsmasq 等 DNS 缓存工具。如果是这种情况,请按以下方式清理:
1. 清理 nscd 缓存:
sudo /etc/init.d/nscd restart# 或sudo systemctl restart nscd
2. 清理 dnsmasq 缓存:
sudo systemctl restart dnsmasq 你可以通过以下命令查看当前缓存状态(仅适用于 systemd-resolved):
resolvectl statistics 执行后,你会看到类似 “Cache size: 0” 的输出,说明缓存已清空。
对于大多数 Ubuntu 用户来说,只需使用 resolvectl flush-caches 命令即可快速完成 Ubuntu DNS缓存清理。掌握这一技巧,能有效解决因 DNS 缓存导致的网页访问异常问题。
希望这篇关于 Linux清除DNS缓存 的教程对你有帮助!如果你经常需要调试网络或开发 Web 应用,建议将清理命令加入快捷别名,提高效率。
记住关键词:Ubuntu系统DNS刷新 和 清理本地DNS缓存,它们是你排查网络问题的好帮手!
本文由主机测评网于2025-12-18发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025129637.html