linux 本身不自带系统级 dns 缓存,是否需清理取决于是否启用 systemd-resolved、dnsmasq 或 nscd 等服务;应先确认运行中的缓存服务,再执行对应清理命令,无缓存服务则无需清理。

Linux 本身不自带系统级 DNS 缓存,是否需要“清理”,取决于你是否启用了缓存服务。常见的是 systemd-resolved、dnsmasq 或 nscd。直接执行通用命令不一定有效,得先确认当前用的是哪个服务。
确认正在运行的 DNS 缓存服务
多数现代发行版(如 Ubuntu 20.04+、Debian 11+、Fedora)默认启用 systemd-resolved:
- 运行
systemctl is-active systemd-resolved,返回 active 表示它在工作 - 运行
ps aux | grep -E '(dnsmasq|named|nscd)'查看是否有其他缓存进程在运行 - 也可查 DNS 配置:
resolvectl status(systemd-resolved 专用)或cat /etc/resolv.conf看 nameserver 是否指向 127.0.0.53(resolved 默认地址)或 127.0.0.1(常为 dnsmasq)
按服务类型分别清理
匹配你实际使用的缓存服务,选对应操作:
SHOPEX简灰服装商城整站源码下载。 安装方法:1.解压上传程序至网站根目录.. 访问:域名/bak.(用户名:admin 密码:123456)2.进入帝国备份王后,配置数据库数据库信息.选择-www.taomoban.net目录.还原数据库.3.修改FTP目录下的config/config.phpphp 数据库连接信息.4.登陆网站后台--清空缓存..5.删除bak文件夹 后台:shopadm
-
systemd-resolved(最常见):
sudo systemd-resolve --flush-caches
或重启服务:sudo systemctl restart systemd-resolved -
dnsmasq:
sudo systemctl restart dnsmasq -
nscd:
sudo systemctl restart nscd - 若使用 NetworkManager 管理网络(如 CentOS/RHEL/Fedora):
sudo systemctl reload NetworkManager(轻量刷新)
或sudo systemctl restart NetworkManager(更彻底)
验证是否清理成功
清理后可快速检查效果:
- 对 systemd-resolved:运行
resolvectl statistics,观察 “Cache current entries” 是否归零或明显下降 - 执行一次解析测试:
resolvectl query example.com,对比前后响应时间与结果是否更新 - 也可用
dig example.com @127.0.0.53 +short(针对 resolved)或dig example.com @127.0.0.1 +short(针对 dnsmasq)确认缓存已失效
没有缓存服务?那其实无需清理
如果 systemctl is-active systemd-resolved 返回 inactive,且没运行 dnsmasq/nscd,说明你的系统是直连上游 DNS 服务器,无本地缓存。此时所谓“刷新 DNS”本质是让应用重新发起请求,可尝试:
- 重启浏览器或相关网络应用
- 临时修改
/etc/resolv.conf中的 nameserver 后再改回(触发部分程序重读) - 或仅需等待 TTL 过期——DNS 记录本身有生存时间,本地不缓存时由上游控制刷新节奏









