读懂 DNS TTL:它是什么?到底该设置多少?

咸鱼 发布于 3 天前 74 次阅读


在配置域名解析(DNS)时,你一定见过一个名为 TTL 的参数。很多人对它一头雾水,要么直接使用服务商的默认值(比如 600 或 86400),要么随意填个数字。

但你知道吗?TTL 设置得过长或过短,都可能对网站的访问速度、故障恢复以及服务器迁移带来直接影响。

今天我们就看看DNS 中的 TTL 到底是什么,以及在不同场景下应该如何科学配置。


一、什么是 DNS 中的 TTL?

TTLTime To Live(生存时间) 的缩写,在 DNS 解析中,它的单位通常是秒(Seconds)

简单来说:TTL 决定了解析记录在各个递归 DNS 服务器(如 8.8.8.8、114.114.114.114 或本地运营商 ISP 的 DNS)中被缓存保留的时间。

形象的比喻:

你可以把 DNS 查询理解为向“中介”打听某人的最新住址:

  • 如果 TTL 是 3600 秒(1小时),意味着中介把你的住址记在小本本上,并在接下来的 1 小时内,无论谁来问,都直接按小本本上的地址回答,不再向你本人确认。
  • 1 小时后,这条记录过期;如果有下一个人来问,中介必须重新向你的权威 DNS 服务器核实一次最新地址。

二、TTL 的工作流程

为了更好地理解 TTL,我们来看一次典型的访问过程:

  1. 首次查询:用户访问 example.com,本地 DNS 缓存没有记录,于是向权威 DNS 请求解析,得到 IP 地址 1.2.3.4,同时收到该记录的 TTL(例如 3600 秒)。
  2. 缓存生效:本地 DNS 将 example.com -> 1.2.3.4 存入缓存。在接下来的 3600 秒内,其他用户通过同一个本地 DNS 查询该域名时,直接从缓存返回结果,耗时极短(通常 < 5ms)
  3. 缓存过期:3600 秒结束后,缓存失效。下一次请求将重新走完整的 DNS 解析流程。

三、长 TTL vs 短 TTL:没有绝对的好坏

TTL 的设置本质上是访问性能/成本灵活性/容灾能力之间的权衡。

对比维度长 TTL(如 12~24 小时)短 TTL(如 1~5 分钟)
访问响应速度🚀 极快(绝大多数走本地缓存)🐢 稍慢(频繁发起跨网递归查询)
权威 DNS 负载📉 极低,解析请求少📈 较高,解析请求频繁(可能增加 DNS 费用)
修改生效时间⏳ 极慢(需要等缓存完全过期)⚡ 极快(几分钟内全球生效)
故障转移/容灾❌ 切换慢,故障窗口期长✔️ 切换迅速,能快速切走流量

四、TTL 应该设置成多少?常见场景推荐

不同业务和不同类型的 DNS 记录,适合的 TTL 完全不同:

1. 常规稳定运行的网站/应用(推荐:3600s ~ 86400s / 1~24小时)

  • 场景:服务器 IP 地址长期不变的个人博客、企业官网、稳定业务系统。
  • 推荐值3600(1小时)至 86400(24小时)。
  • 原因:最大化利用全球 DNS 缓存,降低解析延迟,提升用户打开速度。

2. 即将进行服务器/IP 迁移(推荐:提前设为 300s ~ 600s / 5~10分钟)

  • 场景:更换主机提供商、机房搬迁或更换公网 IP。
  • 策略
    1. 迁移前 24~48 小时:将原记录的 TTL 调低至 300 秒(5分钟);
    2. 正式迁移当天:修改解析至新 IP,全球大部分用户将在 5 分钟内切到新服务器;
    3. 稳定运行 1~2 天后:将 TTL 恢复调高至 3600 或更大。

3. 高可用、动态故障切换(Failover)或 DDNS(推荐:60s ~ 300s / 1~5分钟)

  • 场景:配置了健康检查与自动故障切流的系统、动态公网 IP(家庭宽带 NAS/自建服务器)。
  • 推荐值60300 秒。
  • 原因:节点宕机或 IP 变化时,需要在最短时间内将流量引导到正常节点,避免较长服务中断。

4. 几乎永不变更的基础记录(推荐:43200s ~ 86400s / 12~24小时)

  • 场景:企业邮箱的 MX 记录、域名所有权验证/SPF 记录的 TXT 记录、CAA 记录。
  • 推荐值86400(24小时)或更高。
  • 原因:这些配置很少修改,高 TTL 有助于邮件路由的稳定性和减少查询开销。

5. 新业务上线测试/调试阶段(推荐:60s ~ 300s)

  • 场景:新项目刚上线、正在联调 DNS 路由或 CDN 接入。
  • 推荐值300 秒(5分钟)。
  • 原因:方便在发现配置错误时快速回滚或修正。

五、速查对照表

记录类型 / 使用场景推荐 TTL (秒)对应时间
默认 / 稳定生产环境36001 小时
极少变更的官网 / MX / TXT8640024 小时
服务器准备搬家 / 迁移期3005 分钟
DDNS 动态域名 / 故障切换60 ~ 1201 ~ 2 分钟
新业务调试 / 开发测试3005 分钟

六、总结

DNS TTL 就像给你的解析记录设置的一个保质期

  • 追求极致速度与稳定性,在不经常改动时,大胆设长(1~24小时)
  • 追求灵活性与快速生效,在调试、迁移或做高可用时,果断设短(1~5分钟)

平时的最佳习惯是:日常设为 1 小时(3600s),遇变更提前调低,改完稳定后再调回。

路漫漫其修远兮,吾将上下而求索
最后更新于 2026-08-21