Linux清除DNS缓存步骤详解
时间:2026-04-09 08:19:32 104浏览 收藏
当Linux系统出现域名解析异常、访问错误或仍指向过期IP地址时,问题往往源于本地DNS缓存未及时更新——虽然Linux内核不自带全局DNS缓存,但nscd、systemd-resolved或dnsmasq等常用服务会主动缓存查询结果,导致解析滞后;本文手把手教你精准识别当前启用的缓存服务,并提供重启服务、执行专用命令(如`systemd-resolve --flush-caches`)、手动清理缓存文件等多套可靠清除方案,最后还教你用`dig`对比权威DNS与本地解析结果,快速验证缓存是否真正刷新成功,让网络故障排查更高效、更彻底。

如果您在 Linux 系统中遇到域名解析结果未及时更新、访问异常或指向旧 IP 的问题,很可能是由于本地 DNS 缓存未同步最新记录。Linux 本身不自带全局 DNS 缓存,但若启用了 nscd、dnsmasq 或 systemd-resolved 等缓存服务,则需针对性清除其缓存。以下是多种可行的清除方法:
一、重启 nscd 服务清除 hosts 和 DNS 缓存
nscd(Name Service Cache Daemon)会缓存 /etc/hosts 解析、用户、组及 DNS 查询结果。重启该服务可强制清空全部缓存条目,包括 hosts 映射与 DNS 记录。
1、检查 nscd 是否正在运行:sudo systemctl status nscd
2、若状态为 active,执行重启命令:sudo systemctl restart nscd
3、如需仅刷新 hosts 缓存而不重启整个服务,可运行:sudo nscd -i hosts
二、使用 systemd-resolved 清除 DNS 缓存
systemd-resolved 是多数现代发行版(如 Ubuntu 18.04+、Fedora、Debian 10+)默认启用的系统级 DNS 缓存服务。它独立管理 DNS 解析并支持 LLMNR/mDNS,清除缓存需调用专用命令。
1、确认 resolved 服务是否启用并运行:sudo systemctl is-active systemd-resolved
2、执行缓存刷新操作:sudo systemd-resolve --flush-caches
3、验证缓存是否已清空,可查看统计信息:sudo systemd-resolve --statistics
三、重启 dnsmasq 服务清空本地 DNS 缓存
dnsmasq 常用于路由器、小型服务器或开发环境,作为轻量级 DNS 转发与缓存服务器。其缓存驻留在内存中,重启服务即可彻底清空。
1、检查 dnsmasq 运行状态:sudo systemctl status dnsmasq
2、停止并重新启动服务:sudo systemctl restart dnsmasq
3、若系统使用传统 SysV init,可改用:sudo /etc/init.d/dnsmasq restart
四、手动删除 nscd 缓存文件目录
当 nscd 缓存文件损坏或服务无法正常重启时,可直接清除其持久化缓存数据。nscd 将缓存内容写入 /var/cache/nscd/ 目录,删除后重启服务可重建干净缓存。
1、终止 nscd 进程以避免写入冲突:sudo systemctl stop nscd
2、清空缓存目录内容:sudo rm -rf /var/cache/nscd/*
3、重新启动 nscd:sudo systemctl start nscd
五、验证 DNS 缓存是否已清除
清除操作完成后,需通过实际查询行为确认缓存是否生效。建议使用不带缓存的诊断工具进行比对,避免依赖浏览器或应用层缓存干扰判断。
1、执行一次权威 DNS 查询以绕过本地缓存:dig example.com @8.8.8.8 +short
2、对比系统默认解析结果:dig example.com +short
3、若两次返回 IP 不一致,说明本地缓存已更新;若一致,表明清除操作已生效且系统正使用最新记录
理论要掌握,实操不能落!以上关于《Linux清除DNS缓存步骤详解》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
117 收藏
-
229 收藏
-
204 收藏
-
276 收藏
-
439 收藏
-
158 收藏
-
151 收藏
-
356 收藏
-
434 收藏
-
474 收藏
-
495 收藏
-
430 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习