V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
echooo0
V2EX  ›  程序员

关于域名 ttl 的问题

  •  
  •   echooo0 · 2023-05-25 15:35:25 +08:00 · 1206 次点击
    这是一个创建于 552 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设 a.com cname==> b.com

    a.com TTL 为 3600

    b.com 为 A 解析,TTL 为 600

    那么理论上,b 域名更改 IP 后, a.com 多久生效?

    第 1 条附言  ·  2023-05-26 11:17:22 +08:00
    下面是 chatgpt 的回复:

    根据给定的情况,a.com 的 DNS 解析已经设置为一个 CNAME 值,指向 b.coma.com 的 TTL ( Time to Live )为 3600 秒,而 b.com 的 A 解析的 TTL 为 600 秒。

    b.com 更改其 IP 地址后,如果你已经在 a.com 上进行了 DNS 解析,并且你的系统或应用程序没有缓存该解析结果,那么 a.com 将在 a.com 的 TTL 时间( 3600 秒)之后生效。

    换句话说,当 b.com 更新了其 IP 地址后,如果在 a.com 的 TTL 过期之前发起的 DNS 查询,a.com 的解析结果将仍然指向旧的 IP 地址,直到 TTL 过期。一旦 a.com 的 TTL 过期,系统或应用程序会重新发起 DNS 查询,并获取到 b.com 的新 IP 地址。

    请注意,这里假设了没有其他因素干扰 DNS 解析的过程,例如中间的 DNS 缓存或者其他 DNS 服务器的缓存。这些缓存可能会对实际的解析时间产生影响,并且实际情况可能因网络环境和配置而有所不同。
    10 条回复    2023-05-25 20:36:51 +08:00
    Hyseen
        1
    Hyseen  
       2023-05-25 15:43:25 +08:00
    理论上最多需要 3600 秒才会生效
    RiverMud
        2
    RiverMud  
       2023-05-25 15:46:23 +08:00
    我认为理论上应该是 4200
    renfei
        3
    renfei  
       2023-05-25 15:53:15 +08:00
    600
    deplivesb
        4
    deplivesb  
       2023-05-25 15:53:35 +08:00
    3600
    makelove
        5
    makelove  
       2023-05-25 15:56:04 +08:00
    600
    而且这个自己也很好测试,你在这里问难道就直接信了?还是得自己测试
    deplivesb
        6
    deplivesb  
       2023-05-25 15:56:09 +08:00
    @renfei
    @deplivesb 哦,看错了应该是 b.com 的 A 记录 TTL 600
    ysc3839
        7
    ysc3839  
       2023-05-25 16:10:04 +08:00 via Android
    600 ,因为 CNAME 是客户端进行解析的,客户端解析 a.com CNAME 只会拿到 b.com ,然后再去解析 b.com ,所以两者的缓存是独立的
    Atsushi
        8
    Atsushi  
       2023-05-25 16:23:56 +08:00
    a.com 的 cname 还是指向 b.com 。没有改动也不存在生效的说法。
    zed1018
        9
    zed1018  
       2023-05-25 16:59:49 +08:00
    这个问题比较复杂,以我渐显的了解,改动是“即时”生效的,比如你改动以后向大型公共 DNS 查询(比如 Alidns )的话很快就会拿到新的结果了。

    客户端如果没有查过,假设不考虑其他因素那么他拿到的就是新的。如果查过那么就是根据 TTL 时间去查新的。

    但是这里面还有就是递归服务器的缓存,这部分是“不可控”的,可能很快也可能很慢。至少等待 24 小时是比较保险的预估。
    yinmin
        10
    yinmin  
       2023-05-25 20:36:51 +08:00
    a.com 生效时间:部分 DNS Server 是 3600 ,部分 DNS Server 是 600 。

    普通的 DNS Server ,CNAME 返回给客户端,然后客户端再做第二次 DNS ,所以 a.com 通常 TTL 是 600 。

    但是,有些 DNS Server(尤其是 PRO 版),为了加快客户端解析,会在服务器端做 CNAME 嵌套解析,直接返回 IP 地址,这种 DNS 下 a.com 的 TTL 是 3600 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3134 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:05 · PVG 22:05 · LAX 06:05 · JFK 09:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.