DNS 改完,为什么有的地方生效有的没有?
你改的只是权威服务器上的记录,各地递归解析器还抱着旧答案,等各自的缓存到期才会来取新的。
直接答案
域名解析是分层的:权威服务器存放真实记录,各地递归解析器替你查询并按 TTL 把结果缓存一段时间。
你改记录后,缓存里还是旧答案,只有等那台解析器的缓存到期重新回源,才会拿到新值,所以生效时间天然不一致。
想确认改没改对,直接问权威服务器而不是问本地解析器;想减少等待,下次提前把 TTL 调低再改。
解析记录改完,自己电脑上已经指向新地址,同事那边还是旧地址,手机用流量又是另一种结果。
这篇讲清楚这套缓存机制怎么运作、怎么判断是「还没生效」还是「真的配错了」。
1一次解析走过的三段路
理解缓存位置,才能理解为什么不同网络看到的结果不一样。
| 环节 | 谁在缓存 | 缓存多久 |
|---|---|---|
| 本机与路由器 | 操作系统、浏览器、路由器 | 按记录 TTL,部分系统有自己的上限 |
| 运营商递归解析器 | 宽带或移动网络提供的 DNS | 按 TTL,且可能不严格遵守 |
| 公共解析服务 | 各类公共 DNS | 按 TTL,全球节点各自到期 |
| 权威服务器 | 不缓存,直接给答案 | 记录改完立即是新值 |
权威服务器永远是最新的,问题永远出在中间那些缓存上。
2TTL 决定了最坏要等多久
TTL 是记录自带的存活秒数,也是这次改动的最长等待时间(前提是解析器守规矩)。
| TTL 设置 | 最长等待 | 适合什么场景 |
|---|---|---|
| 300 秒 | 约五分钟 | 准备迁移前的过渡期 |
| 3600 秒 | 约一小时 | 日常稳定运行 |
| 86400 秒 | 约一天 | 长期不变的基础记录 |
| 不遵守 TTL 的解析器 | 可能远超设定值 | 运营商侧行为,无法从你这端控制 |
迁移前把 TTL 提前一天调到三百秒,切换时等待窗口就从一天缩到几分钟。
3怎么判断是没生效还是配错了
两条查询路径对照,一眼就能分清。
- 查权威服务器
- 直接向该域名登记的权威服务器发起查询
- 查本地解析器
- 用系统默认 DNS 查询
- 看剩余 TTL
- 查询结果里会带剩余秒数
- 换网络再试
- 切到手机流量或其他网络
权威服务器返回新值、本地仍是旧值,就安心等缓存过期,不用反复改配置。
4改之前的三个准备动作
把等待变成可控的时间窗,而不是碰运气。
- 提前降 TTL
- 至少提前一个旧 TTL 周期
- 避开业务高峰
- 选流量低谷切换
- 新旧地址并存一段时间
- 两套记录同时有效
切换完成后不要立刻把 TTL 调回一天,先观察一段时间再恢复。
相关疑问
为什么用手机流量就能访问新地址?
手机流量走的是另一个递归解析器,它的缓存可能已经到期或本来就没查过这条记录。
改了记录需要重启路由器吗?
多数情况不需要,路由器缓存会按 TTL 自然过期;急着验证可以清一下本机 DNS 缓存。
TTL 设成零是不是立刻就生效?
不一定,零只表示不缓存,仍有解析器会短暂保留结果,而且频繁查询会增加权威服务器压力。
为什么权威服务器查出来还是旧值?
那说明改动没有真正保存或未生效,问题在配置侧,不在缓存侧。
继续看:相关问题与资料
全部问题解答 →
内容标识:本页内容由人工智能辅助生成,并经人工核对与编辑。详见 人工智能生成内容标识说明。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-20。若发现错误,欢迎通过页脚反馈入口告知。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-20。若发现错误,欢迎通过页脚反馈入口告知。
速查在线工具箱