0

0

Linux怎么刷新DNS缓存_Linux systemd-resolved操作【网络】

裘德小鎮的故事

裘德小鎮的故事

发布时间:2026-03-01 12:17:15

|

644人浏览过

|

来源于php中文网

原创

systemd-resolved未启用时resolvectl flush-caches会报错;需先systemctl enable --now systemd-resolved并确认/etc/resolv.conf软链正确,再执行刷新;其仅清除内存中未过期的正向缓存记录,ttl由上游决定。

linux怎么刷新dns缓存_linux systemd-resolved操作【网络】

systemd-resolved 服务没启用,resolvectl flush-caches 直接报错

很多 Linux 发行版(比如 Ubuntu 22.04+、Fedora、Debian 12)默认用 systemd-resolved 管 DNS,但它不是总在运行。如果服务压根没启动,执行 resolvectl flush-caches 会提示 No such file or directory 或直接报 Failed to flush caches: Unit dbus-org.freedesktop.resolve1.service not found

先确认状态:
systemctl is-active systemd-resolved —— 返回 active 才能继续;如果是 inactivefailed,得先启用:

  • sudo systemctl enable --now systemd-resolved
  • 检查 /etc/resolv.conf 是否软链到 /run/systemd/resolve/stub-resolv.conf(否则应用可能绕过它)
  • 若之前手动改过 /etc/resolv.conf,记得还原,否则 resolvectl 刷的缓存对 curlping 无效

resolvectl flush-caches 刷新后,dignslookup 还走旧记录

这是因为 dignslookup 默认不走系统解析器,而是直连 /etc/resolv.conf 里写的 nameserver(比如 127.0.0.53)。如果该地址确实是 systemd-resolved 的 stub listener,那缓存已清;但如果你看到结果没变,大概率是应用自己缓存了,或者 DNS 查询被中间设备(如路由器、ISP)缓存了。

HaloTool
HaloTool

AI工具在线集合网站

下载
  • 验证是否真清了:运行 resolvectl statistics,看 Cache current: 行是否归零或明显下降
  • 测试真实解析行为:用 getent hosts example.com(走 libc 的 getaddrinfo,受 systemd-resolved 影响)
  • 别依赖 ping example.com 测缓存——glibc 有自己的一层 host 缓存,重启进程或改 /etc/nsswitch.conf 才能清

非 systemd-resolved 系统怎么处理(比如 CentOS 7、Alpine)

老系统或精简发行版压根没 systemd-resolved,DNS 缓存不在系统层,而在应用或 libc 层。没有统一命令可刷,得按场景来:

  • Chrome / Firefox:它们自己维护 DNS 缓存,需进 chrome://net-internals/#dnsabout:networking#dns 手动清除
  • Java 应用:JVM 有 networkaddress.cache.ttl,默认缓存 30 秒,改 -Dsun.net.inetaddr.ttl=0 才禁用
  • Alpine + musl:libc 不缓存 DNS,每次查都是新请求;但如果你用了 dnsmasqunbound,就得重启对应服务(如 sudo rc-service dnsmasq restart
  • CentOS 7 常配 NetworkManager + dnsmasq,此时清缓存要 sudo systemctl restart dnsmasq,不是 systemd-resolved

resolvectl 刷的是什么缓存?和 TTL 有什么关系

resolvectl flush-caches 只清 systemd-resolved 内存里的正向缓存(A/AAAA 记录),不碰反向、不重载配置、也不影响 DNSSEC 验证状态。关键点是:它不会让未过期的记录提前失效 —— 如果某条记录 TTL 是 300 秒,你刚刷完,5 秒后又查同一域名,它仍可能从缓存返回,只要还没到 TTL 截止时间。

  • 真正“强制刷新”的做法是:先 resolvectl flush-caches,再等至少 1 秒,再发一次查询(触发重新递归)
  • 想看某条记录的剩余 TTL:用 resolvectl query example.com,输出里有 cache: yes, ttl 298 这类信息
  • 注意:TTL 是上游 DNS 设定的,systemd-resolved 不会擅自缩短或延长,刷缓存只是删掉当前已存的条目

容易被忽略的是:systemd-resolved 的缓存行为依赖于上游响应是否带 AD(Authenticated Data)标志和本地 DNSSEC 配置,关了 DNSSEC(sudo resolvectl dnssec example.com off)有时反而让缓存更“听话”,但这属于权衡安全与调试便利性的事。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1010

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

812

2023.11.06

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

452

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

183

2023.10.30

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1542

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

715

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

300

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

796

2023.07.05

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

24

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.9万人学习

Git 教程
Git 教程

共21课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号