文档首页> 技术教程> 解析不生效时的排查:TTL 与本地缓存

解析不生效时的排查:TTL 与本地缓存

发布时间:2025-11-17 21:42        更新时间:2025-11-18 18:55
解析改完半天不见效,多数情况不是配置错了,而是某一层缓存还没过期。判断标准只有一条:去权威 DNS 服务器上查,记录已经是新值,剩下的就只是等缓存消化,不用反复改配置。 为什么改了不生效? 解析结果从权威服务器到你的浏览器,中间要经过多级缓存:本机、公司路由、运营商的递归服务器(替你逐级查询的服务器)。递归服务器只认 TTL,缓存到期前不会回头问权威。TTL(缓存存活时间)为 600 秒时,旧记录最长还能被引用十分钟;之前若设过 86400,旧值可能存活一整天。动手排查前先确认 TTL 设了多少,心里有数就不会乱改。 怎么逐层查? 以 example.com 为例。第一步拿权威服务器列表: dig example.com NS 第二步指定其中一台权威服务器直接查询(example.com 的权威服务器形如 a.iana-servers.net): dig @a.iana-servers.net www.example.com A +norecurse 这里已经是新 IP,说明配置本身没问题。第三步查公共递归服务器的缓存: dig @223.5.5.5 www.example.com A 两边返回值不一致,就是缓存未过期。Windows 没有自带 dig,等价命令是 nslookup www.example.com 223.5.5.5。本机验证还可以换一个公共 DNS(如 119.29.29.29)再查一次,顺带排除运营商缓存的干扰。 还有哪些容易误判的点? 一是浏览器自己的 DNS 缓存,Chrome 在地址栏打开 chrome://net-internals/#dns 点清除;二是 hosts 文件里的旧映射,位置在 /etc/hosts(Linux 与 macOS)或 C:\Windows\System32\drivers\etc\hosts(Windows),排查前先看一眼有没有手工加过的记录,改过 hosts 做测试的机器最容易踩这个坑;三是部分内网环境有强制 DNS 策略,用手机流量访问做对照最快。 怎么预防? 换 IP 前一天把 TTL 降到 60,切换完成、各节点都返回新值之后再调回 600 以上;改解析避开业务高峰,即使要回退也从容。另外把切换前的旧解析值抄一份留底,回退时照着填,不用凭记忆。 排查思路一句话:从权威往本地逐层比对,找到第一层还在返回旧值的缓存,等它过期或手动清掉即可。