DNS TTL 查询:一次修改要多久才生效?
TTL(生存时间)是 DNS 答案在解析器重新询问之前可以被缓存的秒数,这也是为什么 DNS 修改对有些人几分钟就生效,对另一些人却要一天。请在下方查询域名 A 和 AAAA 记录的 TTL,动手修改之前再看看下面的操作计划。
您在这里看到的 TTL 是一个倒计时
TTL 由管理域名 DNS 的人附加在每条记录上。解析器获取记录后会保存一份副本,并对 TTL 进行倒数。本工具询问的是公共的缓存解析器,所以这个数字是那份副本的剩余时间。它可能比所有者设置的值更小,在缓存刷新后又会回到完整的值。
想估算配置的值,可以间隔几秒钟查询两次。如果数字在下降,说明您看到的就是倒计时,而您见到过的最大值最接近当初的设置。
常见的 TTL 值及适用场景
| TTL | 秒数 | 典型用途 |
|---|---|---|
| 1 分钟 | 60 | 预计会临时变更的记录,例如故障切换地址 |
| 5 分钟 | 300 | 准备迁移或切换时的理想设置 |
| 1 小时 | 3600 | 普通记录常见的默认值 |
| 4 小时 | 14400 | 稳定但偶尔会变更的记录 |
| 1 天 | 86400 | 几乎从不变更的记录,例如长期使用的邮件服务器 |
不让访问者受影响的变更计划
- 查询您打算修改的记录当前的 TTL。
- 在变更前一天或更早,把 TTL 降到 300 秒。至少等待与旧 TTL 一样长的时间,让所有缓存都换成这个较短的值。
- 进行变更。几分钟之内,大多数解析器就会返回新的答案。
- 一切正常后,再把 TTL 调回去。TTL 过短意味着更多的 DNS 流量,以及稍慢的首次访问。
TTL 过高或过低会出什么问题
- 过高:错误或过时的地址会在 TTL 规定的时间内一直可见,而且切换到备用服务器的速度很慢,因为访问者会继续使用旧地址。
- 过低:您的 DNS 服务商要应答多得多的查询,这可能产生费用,还会给来自每个网络的首次访问增加少许延迟。
- 有些解析器会设置自己的下限或上限,并忽略超出范围的值,所以极低的 TTL 并不总是会被遵守。
- 通过 CDN 或负载均衡器提供的记录常常有意使用较短的 TTL,因为服务商会频繁更换这些记录背后的地址。