TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间,数值越小,修改记录各地生效时间越快。
当各地的DNS(LDNS)服务器接受到解析请求时,就会向域名指定的授权DNS服务器发出解析请求从而获得解析记录;该解析记录会在DNS(LDNS)服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向授权DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
增大TTL值,以节约域名解析时间:
通常情况下域名解析记录是很少更改的。我们可以通过增大域名记录的TTL值让记录在各地DNS服务器中缓存的时间加长,这样在更长的时间段内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从本地缓存中返回域名解析记录,从而提高解析效率。
TTL值是以秒为单位的,通常的默认值都是3600,也就是默认缓存1小时。我们可以根据实际需要把TTL值扩大,例如要缓存一天就设置成86400。
减小TTL值,减少更新域名记录时的不可访问时间
因为DNS记录缓存的问题,新的域名记录在有的地方可能生效了,但在有的地方可能等上一两天甚至更久才生效(部分省份运营商调大了TTL值),这样就会就导致部分用户在一段时间内无法访问网站。
减少TTL值,以增加域名刷新时间:
为了尽可能的减小各地的解析时间差,可参考以下步骤执行:
1.先查看当前域名的TTL值。 2.修改TTL值为可设定的最小值,建议为60秒。 3.设置并修改DNS解析到新的记录,这样各地的DNS就能以最快的速度更新到新的记录。 4.确认DNS已经更新完成后,再选择性将TTL值设置成常用值。
常用几家TTL可设置的域名商:
DNSPOD:解析时最低TTL600s,可通过API设置为TTL1s 华为云:解析时可直接设置TTL1 nameslio:解析时最低TTL3600s DNS.COM:解析时最低TTL600s Google:解析时最低TTL600s
参考文章:https://osqa-ask.wireshark.org/questions/22337/ttl-time-to-live