我目前正在将一个旧网站(从旧托管服务提供商)转移到现代解决方案。由于我的具体要求(包括财务限制),我决定在具有静态 IP 地址的 Digitalocean droplet(虚拟化 Linux 实例)上备份和复制该网站104.131.187.206
。我已经正确配置了所有内容,清理了复制与其系统紧密耦合的 Web 应用程序所产生的各种零散问题等,复制的网站运行良好。
现在我的目标是指出现存的域名mcbc.on.ca
为新复制DO droplet 上的网站。旧版(共享)托管服务提供商的 IP 地址是216.251.32.98
。显然mcbc.on.ca
一直指向这个地址。我想要的是mcbc.on.ca
指向104.131.187.206
。此外,我仍在使用旧版托管服务提供商的 DNS 和名称服务器。
我的任务很简单 - 只需修改 Zone 文件中现有的 A 条目,mcbc.on.ca
使其现在指向104.131.187.206
。现在,我还想保留对原来的网站,因此我添加了一个新的 A 条目,original.mcbc.on.ca
指向216.251.32.98
。
我昨天成功完成了所有这些操作,并且我的 DNS 更改现已成功传播(使用以下方法验证此工具)。仅供参考,自我进行更改以来已经过去了大约 12 个小时。
我的问题:出于某种奇怪的原因,每当我访问 的网站时mcbc.on.ca
,它有时会解析为旧地址216.251.32.98
,而其他时候会正确解析为104.131.187.206
。我认为旧地址的频率约为 40%,新地址的频率约为 60%。这显然是一个问题。
考虑到我已经等待了很长时间(虽然我知道 12 小时肯定少于 48 小时),以及我上面提到的工具显示 DNS 记录已经传播到世界各地,我怀疑我的家庭互联网 ISP 提供商的 DNS 缓存已过时。
我的问题:我说得对吗?如果不对,您认为我的问题是什么?
答案1
严格来说,DNS 不会传播。记录具有 TTL(生存时间),这是其他缓存 DNS 服务器应保留现有查找答案的时间。您需要进行更多的自我教育,而不是遵循“12 小时应该可以”之类的简单规则。
如果权威名称服务器显示正确的结果,那么事情就结束了。由于至少一些(如您所说,大多数)其他名称服务器显示更新后的答案,所以您已经完成了。您已经完成了需要做的事情,事实上几乎完成了所有您可以做的事情。
(在预期的变化发生之前提前降低 TTL 通常是个好主意,但您并没有说您是否这样做了,或者 TTL 一开始是什么。而且由于您没有提供实际的详细信息,我们无法检查。)
/编辑 - 现在我们可以看到您的 TTL,它设置为 1 天。假设 TTL 最近没有更改为该值,这意味着任何拥有旧记录的人在收到该答案后都会将其保留至少 24 小时。请求者(通常是其他 DNS 服务器)不会重新查询以查看您在接下来的 24 小时内所做的任何更改。对于您来说,在更改前至少 24 小时,您应该将 TTL 降至 DNS 提供商允许的较低值。
如果您家用电脑的上游 DNS 提供商不尊重 TTL,请使用其他提供商,并确保已清除本地缓存。
答案2
我知道这是一个非常古老的问题,但是这个答案可能会对那些偶然发现这个问题的人有所帮助,就像我一样:
有时本地存储的 DNS 可能会出现问题,而且很难知道。因此,有两种方法可以检查:
使用 VPN(Opera 浏览器内置了免费的 VPN)检查网站是否加载正确。通过 VPN 访问时,您可以“选择”从哪个位置加载网站。
更改 Windows Hosts 文件以添加要访问的新服务器的 IP 地址。通过更新 Hosts 文件,您可以确保您正在查看的是您想要查看的实际服务器。