TTL 决定 DNS 记录能被缓存多久,也决定了切换 nameserver 后新旧配置交接的时间窗口。这篇短文讲清楚 TTL 是什么、为什么迁移前要把 TTL 降到 300、迁移完成后什么时候调回去。

TTL(Time To Live)是一条 DNS 记录的有效期。用户在浏览器输入域名后,本地 DNS 解析器会把查询结果缓存一段时间,这个时间就是 TTL。TTL 设成 86400,代表结果可以缓存一天;设成 300,就只缓存五分钟。
缓存是 DNS 提速的关键,但它也是迁移时的障碍。切换 nameserver 之后,旧解析结果不会立刻消失,而是要等缓存过期。如果 TTL 是一天,那么最长要等 24 小时,不同地区的用户才会陆续访问到新配置。提前把 TTL 降下来,等于把这段不确定的窗口从一天压缩到几分钟。
迁移前降 TTL 的具体做法
在计划迁移的前一到两天,打开当前 DNS 管理面板,把 A、AAAA、CNAME、MX、TXT 这些记录的 TTL 改成 300(甚至 60),保存后等待生效。这段时间足够让旧的递归解析器刷新缓存,让新 TTL 传播出去。
然后按正常流程切换 nameserver。因为 TTL 已经很小,切换后绝大多数用户很快就能解析到新配置。
迁移完成后把 TTL 调回去
等新 nameserver 稳定运行一两天,确认解析、邮件都正常,再把 TTL 调回原来的值(常见的是 3600 或 86400)。TTL 太小会增加查询量,日常没有必要一直保持 300。
降 TTL 不是必须的操作,但它把迁移的风险窗口从一天缩短到几分钟。如果迁移中发现问题需要回滚,小 TTL 也能让回滚更快生效。整个过程只需要在面板里改几个数字,花不了两分钟。如果你正准备把 DNS 迁到 Cloudflare,完整步骤可以看这篇文章。
每周四送达。
主机评测、建站对比、性能优化技巧和插件推荐 — 每周为 WordPress 站长和建站者精选。
