首页/网络/协议速查/TTL 取值建议
DNS 与域名解析60 条

TTL 取值建议

不同场景下的 TTL 经验值:可用性与变更速度的平衡点。

协议速查网络更新于 2026-10-13

TTL 到底在管什么

TTL 是 DNS 记录里的缓存有效期(秒),告诉递归服务器和客户端「这条答案可以留多久」。TTL 小则变更生效快、查询压力大;TTL 大则解析压力小、但改记录后旧值会在各级缓存里滞留很久。所有变更类故障(迁移、切流量、切 CDN)的时间窗口说到底就是由 TTL 决定的。

基本信息

字段范围32 位整数,但按 RFC 2181 超过 2^31-1 的值一律按 0 处理
谁在缓存递归器、操作系统、浏览器、CDN、运营商缓存层层叠加
负缓存NXDOMAIN/NODATA 的缓存时长取 SOA 的 minimum 值,不看记录 TTL
实际生效值以权威返回的 TTL 为准,部分缓存设备会强设下限或上限

典型使用场景

  • 准备迁移机房或切 CDN:提前把 TTL 降小,缩短回退窗口
  • 做 DNS 故障转移:TTL 越小切换越快,但解析量与抖动也随之上升
  • 排查「改了记录为什么不生效」:先判断是 TTL 未过期,还是新记录本身没生效
  • 配置验证类记录(TXT、CAA):无需频繁变更,用常规 TTL 即可

常见取值参考

场景建议 TTL理由
迁移或切换前60-300 秒让旧记录快速收敛,切换窗口短
稳定生产站点3600 秒(1 小时)回源压力与灵活性平衡
核心 NS 记录86400 秒(1 天)稳定优先,变更需极其谨慎
CDN 动态加速30-300 秒兼顾命中率与回源控制
DNS 故障转移30-60 秒健康检查切换速度依赖小 TTL
静态验证 TXT3600 秒验证类记录无需频繁变更

迁移操作节奏

迁移操作节奏
dig +short example.com A          # 改前先看当前生效值与 TTL
dig @8.8.8.8 example.com A        # 换公共递归看是否已收敛
dig @ns1.example.com example.com A +noall +answer   # 直接问权威,确认源数据
# D-2 把 TTL 降到 300 → 改记录 → 观察 48 小时 → 确认无回退再调回 3600
权威返回小 TTL 不代表客户端会照做:部分运营商缓存与本地 DNS 客户端会强设最小缓存时间(数十秒到几分钟),切流量要留出这段缓冲,别把窗口算得太紧。
把 TTL 设成 0 或 1 秒并不会让变更瞬时全局生效,反而会把查询压力全部压到权威服务器,容易触发限流甚至被判定为攻击流量。

易错点

  • 只在权威侧降 TTL 就立刻改记录:旧 TTL 还残留在各级缓存中,切换会出现「一半用户走新、一半走旧」的拉锯状态
  • 通配符或根域记录被下游显式记录覆盖时,改通配符看不出效果,要逐条确认下级记录是否存在
  • 迁移后忘记把 TTL 调回:长期小 TTL 让递归器缓存价值降低,权威 QPS 与解析延迟同步上升
  • 把负缓存当成 TTL 问题排查:NXDOMAIN 的时长由 SOA minimum 决定,改记录 TTL 无效

数据来源与参考

  • RFC 2181 §8
  • AWS/Cloudflare 等 DNS 最佳实践文档(通用结论)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌