在配置路由器或管理域名解析时,经常会遇到 DNS TTL 这个参数。很多人看到这个数值不知道该怎么设,干脆就用默认值。其实,TTL 的合理设置对网站访问速度和变更生效时间都有直接影响。
什么是 DNS TTL
TTL 全称是 Time To Live,中文意思是“生存时间”。它指的是 DNS 记录在本地缓存中保存的时间长度,单位是秒。比如设置为 300,就意味着这条记录会在用户的电脑、手机或运营商 DNS 服务器上缓存 5 分钟,期间不会重新查询。
常见 TTL 数值对比
不同的场景适合不同的 TTL 值:
- 60(1分钟):适合正在做域名切换、IP 变更的临时调整,能快速让全球用户看到最新结果。
- 300(5分钟):常用于 CDN 切换或负载均衡调整,平衡了更新速度和查询压力。
- 3600(1小时):适用于比较稳定的网站,不频繁更换服务器 IP。
- 86400(24小时):很多注册商默认值,适合长期不变的静态服务,减少 DNS 查询次数,提升访问效率。
什么时候该调低 TTL
如果你打算迁移网站服务器、更换云主机 IP 或者切换 CDN 厂商,建议提前把 TTL 改成 60 或 300。这样等真正切换时,用户能更快获取新地址,避免因为缓存导致打不开网站。等切换完成后再改回较高的值,减轻 DNS 服务器负担。
什么时候用高 TTL
对于长期稳定运行的网站,比如企业官网、博客或电商站点,IP 地址几年都不变,完全可以把 TTL 设成 86400。这样一来,用户的设备和运营商 DNS 都会缓存更久,减少重复查询,打开页面也更快一点。
实际配置示例
以某云平台 DNS 设置为例:
A @ 1.2.3.4 TTL: 3600
CNAME www example.com. TTL: 86400
这里主域名 A 记录设为 1 小时,便于后续可能的调整;而 www 的 CNAME 指向稳定域名,所以用了 24 小时缓存。
别忽视本地测试的影响
有时候你改了 DNS,自己却还是访问旧地址,不是服务商没生效,而是你的电脑或路由器还存着旧记录。Windows 上可以命令行执行 ipconfig /flushdns,Mac 和 Linux 用 sudo dscacheutil -flushcache 或 systemd-resolve --flush-caches 清除缓存,才能看到最新效果。