如果我要对我的域名的 A 记录进行 DNS 更改(从一个 IP 更改为另一个 IP),我需要等待多久才能让用户转到新信息?这只是 <= TTL 吗?我知道以前需要一段时间,但在 2009 年我应该等待多长时间?
答案1
理论上,每个人都应该在即时和相关 TTL 值之间的某个时间看到更新的 A 记录。如果我没记错的话,大多数注册商将 TTL 设置为 24 小时,因此在 24 小时内,有些人会看到旧地址,有些人会看到新地址,而在更改后的 24 小时内,每个人都应该有新地址,而有些人则使用较低的值,例如 4 小时。
如果您有权更改 TTL 值(即您运行自己的 DNS 服务器),那么您可以在进行更改之前将 TTL 减少到小于一天的值,这样传播期就会短得多。
我上面说的是“理论上”,因为总会存在一些错误、故障和配置不当的缓存,这意味着一些用户将长时间看不到更改。如果您使用非常小的 TTL,情况尤其如此,因为仍然有一些 ISP 的 DNS 缓存会忽略低于给定值的 TTL。
另一件需要注意的事情是注册商的 DNS 控制面板和他们的 DNS 服务器之间的延迟。例如,我注意到对 123-reg.co.uk 管理的域名所做的更改可能需要长达一小时才能显示在他们的 DNS 服务器上,这是您必须考虑的 TTL 值之外的额外一小时。
2023 年更新:虽然一般答案并无错误,而且一些注册商仍默认使用 24 小时 TTL 值,但越来越常见的是将 TTL 值设置为 4 小时或更短。无需永久更新 TTL,即可让每个人都获得近乎即时的更改,这种方法仍然适用:在刚好超过 4 小时(或当前 TTL 值)时,将其缩短为更小的值,并在更改后将 TTL 重新设置。如果您担心长时间将 TTL 设置为非常低的值,请逐步将其缩短:在计划更改前 3 小时稍多一点时将其设置为 3 小时,在计划更改前 2 小时稍多一点时将其设置为 2 小时,依此类推,直到更改前几分钟。
答案2
这取决于客户端缓存 DNS 信息的时间,这应该取决于 TTL 值。但是,由于客户端决定缓存信息的时间,因此您无法真正确定(毕竟客户端可以手动解析,从而完全忽略 TTL)。
答案3
当我知道我将要更改 IP 地址时,我通常会提前几天将 TTL 值降低到比我通常使用的更小的值。这样,当我进行更改时,更改会更快地传播。然后,我再次将 TTL 调高。
答案4
同意 Mike 的观点。我们通常会告诉客户 24-48 小时内将消息传播到全球所有 ISP。大多数主要 ISP 都遵守 TTL 并快速更新。一些较偏远的位置需要更长时间。祝你好运!