Windows与Linux本地DNS缓存刷新方法
概述
DNS缓存是操作系统或网络服务为了提高域名解析速度而临时存储的DNS查询结果。当域名指向的IP地址发生变更时,本地缓存的陈旧记录会导致无法正确访问目标服务器。手动刷新DNS缓存是常见的排错手段。本文介绍Windows和Linux系统下刷新本地DNS缓存的标准方法。
Windows系统
命令提示符刷新DNS缓存
Windows系统通过内置的ipconfig命令管理DNS客户端缓存。操作步骤如下:
- 以管理员身份打开命令提示符(CMD)或PowerShell;
- 执行命令:
ipconfig /flushdns; - 系统提示“已成功刷新DNS解析缓存”即完成。
适用于Windows 7、8、10、11及Windows Server操作系统。该命令仅清除本地DNS客户端缓存,不影响路由器或ISP侧缓存。
浏览器DNS缓存
部分浏览器(如Chrome)有独立DNS缓存,可在地址栏输入chrome://net-internals/#dns,点击“Clear host cache”按钮清除。
Linux系统
Linux发行版因DNS解析服务不同,刷新命令存在差异。常见场景如下:
使用 systemd-resolved
大多数现代发行版(如Ubuntu 18.04+、Fedora、Debian 10+)默认使用systemd-resolved管理DNS。执行:
sudo resolvectl flush-caches或旧版命令:
sudo systemd-resolve --flush-caches验证是否成功可查看缓存统计:sudo resolvectl statistics,观察“Current Cache Size”是否归零。
使用 nscd
部分发行版及旧版系统使用nscd(Name Service Cache Daemon)。重新启动nscd服务以清除缓存:
sudo systemctl restart nscd或使用init脚本:
sudo /etc/init.d/nscd restart使用 dnsmasq
若本地运行dnsmasq作为DNS缓存服务,重启该服务:
sudo systemctl restart dnsmasq或发送SIGHUP信号刷新:
sudo killall -HUP dnsmasq使用 BIND
对于运行BIND的服务,可使用rndc命令:
sudo rndc flush注意事项
- 执行上述命令需要管理员/root权限(Windows需管理员身份运行CMD,Linux需sudo)。
- 刷新操作只清除本机缓存,不会影响网络设备(如路由器、防火墙)或上游DNS服务器的缓存。若问题未解决,需进一步排查。
- 若不确定系统使用何种DNS缓存服务,可通过
sudo lsof -i :53查看监听53端口的进程。
掌握本地DNS缓存刷新方法,能有效处理因缓存导致的域名解析错误,提高故障排查效率。