没有固定答案,取决于一个参数:TTL。

TTL 是什么

TTL 是这条解析记录允许被缓存多久,单位是秒。

你改了权威服务器上的记录,但各地的递归服务器手里还存着旧答案。它们不会主动来问,而是要等缓存到期,才会重新回源。这段等待时间,就是 TTL。

所以「生效」不是一瞬间的事,而是一个逐步扩散的过程。

实际要等多久

TTL 设的 600 秒,那最多十分钟,全国基本都更新了。

TTL 设的 3600 秒,就要等一小时。

TTL 设的 86400 秒(一天),那最坏情况要等一天。

行业里说的「最长 48 小时」,是因为部分运营商的递归服务器不严格遵守 TTL,会人为延长缓存时间。这种情况没法控制,只能等。

为什么你本地已经生效了

因为你可能刚好碰上了缓存过期,或者你用的 DNS 没有缓存这条记录。

但这只代表你这一条线路。别的地区、别的运营商,缓存时间点不一样,所以会出现「我这里好了,客户那边还打不开」的情况。

用多节点 DNS 查询一看,就能知道全国铺开到什么程度了。

怎么让切换更快

标准做法是提前调低 TTL。

计划明天换 IP,今天先把 TTL 从 3600 改成 300,等旧缓存都过期(大约一小时),再改记录值。这样切换窗口能压缩到五分钟级别。

换完之后,再把 TTL 调回正常值,减少查询压力。

几个注意点

调低 TTL 要提前做,改完记录再调低是没用的,因为旧缓存已经按老 TTL 存下了。

浏览器和操作系统也有自己的 DNS 缓存,验证时可以先清一下,或者换个网络试。

如果超过 48 小时还没生效,那就不是缓存问题了,去查 NS 有没有指对、记录有没有保存成功。