什么是 DNS TTL 以及它如何影响 DNS 传播?

- 26 September 2024
DNS TTL(生存时间)是所有 DNS 记录中都存在的特殊值。它是 DNS 上下文中的一个重要值,因为它对 DNS 传播具有深远的影响。
在这篇文章中,我们将进一步了解 TTL 是什么、它在 DNS 记录中的作用以及它如何影响 DNS 传播过程。
什么是 TTL?
TTL 代表生存时间。它是配置 DNS 记录和其他形式的网络/计算(包括数据库、缓存等)时常用的术语。
在 DNS 记录上下文中:
“TTL 表示特定 DNS 记录在刷新之前必须在缓存中保留的时间。例如,如果有一个名为“X”的记录, TTL 为 100 秒,这意味着每 100 秒 DNS 缓存中会刷新一次记录。(DNS 缓存是 DNS 记录的临时存储位置,以便快速获取。)”
同时拥有短 TTL和长 TTL 各有优缺点。您必须根据所管理的域、所需的性能级别等来决定持续时间。
要了解有关长 TTL 和短 TTL 的优缺点的更多信息,请导航至标题“TTL 应该长还是短?”。
TTL 如何影响 DNS 传播?
TTL 与 DNS 传播有直接关系。 DNS 传播是将对 DNS 记录所做的更改全局应用于所有不同的 DNS 服务器的过程。(通常可以使用在线 DNS 传播检查器 检查域的 DNS 传播状态。)
DNS 记录的 TTL 决定了它们(记录)的缓存时间。如果 TTL 较短,对记录所做的更改将更快地全局应用。这是因为递归解析器和本地 DNS 缓存将在较短的时间内查找更新。
因此,我们可以如下描述 TTL 和 DNS 传播之间的关系:
较长的 TTL = 较慢的 DNS 传播
较短的 TTL = 较快的 DNS 传播
考虑到这种简单的关系,较短的 TTL 可能看起来更好、更有利。虽然较短的 TTL 确实可以加快 DNS 传播,但也有一些缺点。但稍后会详细介绍。我们先来讨论一下……
还有哪些因素会影响 DNS 传播?
除了 TTL(在 DNS 记录中声明)之外,还有一些其他因素也会影响 DNS 传播。
例如,
- 设备和浏览器等上的本地缓存有时会保留旧的 DNS 记录,即使超过了声明的 TTL。这会影响更改传播到特定设备的时间。
- 如果您更改 DNS 设置(例如名称服务器),DNS 注册商会将 TTL 设置为默认值。此默认值约为 24 到 48 小时。对于这些类型的更改,您无法设置自定义 TTL。
- CDN 也是影响 DNS 传播时间的一个因素。如果您通过 CDN 访问网站,则存储在 CDN 中的数据可能需要一些时间才能被替换。
TTL 应该短还是长?
上面,我们简要讨论了较长和较短 TTL 的优缺点。现在,让我们详细了解一下它们。
需要注意的是,较长 TTL 的优点是较短 TTL 的缺点,反之亦然。 换句话说,较长的生存时间可能有益,而较短的生存时间可能有害。
较长的 TTL |
较短的 TTL |
当 DNS 记录的生存时间设置得较长时,DNS 服务器不必处理大量流量,因为查询会由缓存数据预先回答。 |
当 TTL 较短时,缓存会频繁向 DNS 服务器发送请求以更新数据。流量增加会减慢服务器的处理速度,导致性能下降。 |
如果 TTL 较长,即使权威服务器存在一些问题,DNS 缓存也可以自行响应查询。在解决实际服务器的问题时,可以使用缓存数据来响应用户。 |
如果 TTL 较短,一切都取决于权威服务器。如果服务器出现问题,问题也会很快出现在缓存数据中。 |
较长 TTL 的缺点是,对权威服务器中的 DNS 记录所做的更改需要更长时间才能应用于缓存。换句话说,DNS 传播需要更长时间。 |
TTL 越短,DNS 传播所需的时间越短。这意味着对记录的任何更新都会快速传送到缓存。这样,用户就可以访问最新信息。 |
如何查找 DNS 记录的 TTL
现在,让我们讨论如何查找所有不同 DNS 记录的 TTL。
有两种主要方法可以做到这一点。您可以访问您网站的托管服务提供商或使用在线第三方工具。访问您网站的托管服务提供商通常需要经过一个漫长的登录过程。此外,这只适用于您自己拥有的网站或域名。
另一方面,使用第三方在线工具更快捷,而且它可以用来查找互联网上任何域名或网站的 TTL,而不仅仅是您自己的域名或网站。
您可以按照以下步骤使用在线第三方工具查找 DNS 记录的 TTL。 (我们将使用我们自己的 DNS 查找工具指导您完成该过程。)
- 首先,单击此 URL 导航到 DNS 查找工具:https://whatsmydns.me/zh/dns-lookup

- 接下来,在提供的空间中输入域名

- 点击下拉菜单选择 DNS 服务器

- 点击“DNS 查找”按钮

- 这将向您显示域的所有 DNS 记录的结果。如果您想查找特定记录,可以在开始该过程之前选择它
就是这样。
当提供有关 DNS 记录的详细信息时,您将能够看到记录本身的值以及 TTL。
各种记录的常见 TTL 值
以下是一些常见 DNS 记录的推荐 TTL 值。
这是更新后的表格,其中包含 TTL 值 和 以小时为单位 列:
DNS 记录类型 |
目的 |
TTL 值(秒) |
以小时为单位 |
A / AAAA |
将域映射到 IPv4/IPv6 地址 |
3600 - 14400 |
1 - 4 |
CNAME |
另一个域的别名 |
3600 - 86400 |
1 - 24 |
MX |
邮件服务器记录 |
43200 - 86400 |
12 - 24 |
TXT(SPF、DKIM、DMARC 等) |
验证和安全 |
3600 - 43200 |
1 - 12 |
NS |
名称服务器委派 |
86400 |
24 |
SOA |
授权开始(区域控制) |
3600 |
1 |
PTR |
反向 DNS 查找 |
86400 |
24 |
如何更改 DNS 记录的 TTL
更改 DNS 记录的 TTL 所需的具体步骤可能因域名注册商及其使用的默认控制面板而异。但是,我们将在下面列出一般步骤:
- 首先,登录到您的域名注册商帐户。例如,如果您使用的是 Namecheap 或 GoDaddy,请登录到您的托管帐户。
- 转到您要编辑其记录的域并打开控制面板。(例如,如果您使用的是 Namecheap,按钮将显示“转到 Cpanel”。)
- 之后,找到 DNS 记录设置。(要继续 Cpanel 的示例,可以通过单击“区域编辑器”选项找到这些设置。)
- 找到您要更改的 DNS 记录并单击编辑。
- 以您想要的方式重新输入 TTLke,以秒为单位指定。
加快 DNS 传播速度的方法?
加快 DNS 传播速度的主要方法之一是设置更短的 TTL。但是,您还可以执行其他一些操作,例如:
- 定期刷新本地 DNS 缓存:由于数据存储在本地缓存中,DNS 传播可能会延迟。如果定期刷新本地缓存,则可以加快传播过程。您可以在命令提示符中使用命令 ipconfig /flushdns 刷新本地缓存。
- 使用快速 DNS 服务提供商:使用快速 DNS 服务器提供商也会影响传播更改的速度。您应该使用以速度著称的 DNS 服务器,例如 Cloudflare。
- 偶尔进行更改:偶尔更改 DNS 而不是集体更改也会对传播速度产生影响。如果您进行了大量更改,则所有更改都可能需要一些时间才能实施。
结论
DNS 记录的 TTL 用于指示在解析器向权威服务器请求更新之前数据在本地缓存中保留的时间。较长的 TTL 有利于冗余;换句话说,即使权威服务器中的数据出现问题,它也会导致缓存向用户提供数据。
另一方面,拥有较短的 TTL 是有益的,因为缓存可以定期更新更新信息。
如果您的网站是静态网站,例如博客或不定期更改的作品集,则保留较长的 TTL 可能是一个明智的想法。另一方面,如果您的网站依赖于快速更新,例如新闻网站或电子商务商店,那么最好使用较短的 TTL。
我们的文章到此结束。在继续阅读下一篇文章之前,请务必查看我们在下面提供的常见问题解答。您可能会在下面找到与 TTL 相关的问题的答案。
常见问题
我可以为 DNS 记录设置的最低 TTL 是多少?
您可以为 DNS 记录设置的最低生存时间为 1 秒。您不能在字段中输入 0,因为这样将不予考虑。
但是,虽然最低生存时间为 1 秒,但某些 DNS 服务提供商可能会有最低限制,例如 30 秒或 60 秒,因为每隔 1 秒传播一次通常不可行。
不同的 DNS 记录是否应该具有不同的 TTL 值?
是的,不同的 DNS 记录应该具有不同的生存时间。这取决于 DNS 记录的更改频率。
例如,域的 A 记录或 AAAA 记录包含 IPv4/IPv6 地址,因此不必一次又一次地传播。对于这些记录,可以设置更长的 TTL。
另一方面,MX 记录不仅包含邮件服务器的名称,还包含每个服务器的优先级。此信息可以定期更改,这就是 MX 记录应该具有较短 TTL 的原因。
如果 TTL 字段中未输入任何内容会发生什么?
如果 TTL 字段中未输入任何内容,则解析器将考虑 DNS 服务器默认定义的 TTL。这通常约为 24 到 48 小时。
相关博客

