银河麒麟V10系统调整systemd-resolved缓存有效期需修改/etc/systemd/resolved.conf中Cache=yes和CacheMaxAgeSec=300(单位秒),保存后执行sudo systemctl daemon-reload && sudo systemctl restart systemd-resolved,并用systemd-resolve --statistics验证。

银河麒麟V10系统默认使用 systemd-resolved 作为本地DNS解析代理,其缓存行为由配置文件控制;若需调整缓存有效期(TTL),必须修改 resolved.conf 中的 Cache 和 DNSStubListener 设置,并重启服务,否则缓存时间将沿用 systemd-resolved 的默认策略(通常为最大TTL值,即响应中原始记录的TTL,最长不超过3600秒)。
修改 systemd-resolved 缓存有效期
该方法直接作用于系统级DNS解析器,适用于麒麟V10 SP1及后续默认启用 systemd-resolved 的所有桌面与服务器环境,修改后持久生效且优先级最高。
第一步:以管理员权限编辑 resolved 主配置文件:
sudo vim /etc/systemd/resolved.conf
第二步:定位到 [Resolve] 段落,确认已启用缓存功能——取消 Cache=yes 行前的注释符号 #;若该行被注释或不存在,需手动添加这一行。注意:若设为 Cache=no,则完全禁用缓存,所有查询均直连上游DNS,会显著增加解析延迟和上游负载。
第三步:添加或修改 CacheMaxAgeSec= 行(单位为秒),例如设置为300秒(5分钟):
CacheMaxAgeSec=300
该参数限制缓存条目的最长存活时间,即使原始DNS响应中TTL更长,也会在此时限后强制过期。不写此行则采用默认上限(3600秒)。
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
第四步:保存退出(vim 中按 ESC → 输入 :wq → 回车),然后重载并重启服务:
sudo systemctl daemon-reload && sudo systemctl restart systemd-resolved
验证缓存时间是否生效
执行命令查看当前缓存统计与配置状态:
systemd-resolve --statistics | grep -E "(Cache|MaxAge)"
输出中应包含类似 Cache maximum age: 300s 的字段;若显示为 3600s 或未出现该行,说明配置未加载成功或语法有误。
运行 systemd-resolve --flush-caches 清空旧缓存后,再解析一个域名(如 ping -c1 baidu.com),随后立即执行 systemd-resolve --statistics,观察 Cache size 是否增长、Cache hit rate 是否上升,可间接验证新缓存策略已运行。

















