DNS 解析、浏览器导航和缓存

DNS 解析、浏览器导航和缓存

我知道 NS 更新可能需要 24 小时以上。然而在此过程中,有些事情让我很感兴趣。

我无法更改 ISP 路由器的 DNS,因此我将 WAN/LAN 设置为使用Google 公共 DNS

流程场景:

  1. 我更换了一个域名 NS
  2. 几分钟后,我转到dnschecker.org,我添加了一个自定义 DNS 服务器来输入 Google 公共名称服务器
  3. dnschecker.org假设它列出了 50% 的 DNS 更新服务器,包括 Google DNS
  4. 我进入 Windows 命令行并输入ipconfing /flushdns
  5. 我清除了所有 chrome 文件缓存(Ctrl+Shift+Del),清除了 chrome 主机(chrome://net-internals/#dns) 缓存并刷新 chrome 套接字池 (chrome://net-internals/#sockets
  6. 最后,我在新的 Chrome(或其他浏览器)窗口选项卡中打开该网站,显示的网站是旧网站。但是,同时,如果我通过一些免费的在线代理访问该域名,例如沃厄尔,网站将加载更新的 DNS 版本。
  7. 仅 24 小时后,我的 chrome 就加载了更新的 DNS 站点版本。

怎么会这样?我是不是忽略了什么?

答案1

您的 ISP 的 DNS 服务器缓存了您的地址,因此会返回旧地址。它会一直这样做,直到 生存时间 (TTL) 您的数据将会过期。

DNS 记录存储在缓存中,主要是为了提高 DNS 查询的性能。每个 DNS 记录都有一个生存时间 (TTL) 值,即 DNS 服务器应将该记录存储在缓存中的时间。即使记录发生更改,DNS 服务器仍将继续使用缓存中的先前值,直到此时间过去。

DNS 传播是指全球 DNS 服务器更新域名缓存信息所需的时间。它受可能已更改的 DNS 记录的 TTL 的影响,但也有其他因素可能发挥作用。

DNS 更改可能需要长达 72 小时才能在全球范围内传播,尽管大多数情况下只需几个小时即可完成。

可以通过将 TTL 设置为较低的数字(不推荐)来加快传播时间,例如 14400(4 小时)。但您应该在 NS 更改之前做好这件事,可能提前 96 小时。

当您查询缓存中没有您的 DNS 的 DNS 服务器时,您可能会发现,如果更改已经传播到那么远,它会返回新的 DNS 记录。

答案2

正如您所说,您正在使用 ISP 的路由器,并且它似乎设置为仅使用 ISP 的 DNS 服务器。

同时,您已使用该网站检查 Google 的 DNS 服务器。实际上,您也可以在本地计算机上执行此操作 -nslookup <domain> 8.8.8.8在命令提示符中查询 8.8.8.8 以获取 的 IP <domain>

您看到的是,网络上的大多数 DNS 服务器都已更新,但您的 ISP 的 DNS 服务器仍返回旧结果,并且会一直这样,直到更新为止。您可以通过不使用 ISP 的 DNS 服务器并在您的计算机上手动设置它们来绕过此问题(但是,这仅在您的 ISP 未阻止外部 DNS 访问时才有效)。

一旦您的 ISP 的 DNS 服务器更新,您就会收到更新的页面,就像网络上的其他人一样。

相关内容