用心打造
VPS知识分享网站

域名解析已修改,为什么部分地区仍访问旧IP?

域名 A 记录已经改成新服务器 IP,自己电脑访问正常,另一地区的用户却还打开旧站。这时反复修改解析记录通常没有帮助,因为新记录可能早已写入权威 DNS,旧答案只是停留在某个递归 DNS、操作系统或浏览器缓存里。

这类问题不能只靠在线工具给出的一个结果判断。我更习惯把查询链拆开:先问权威 DNS 当前答案,再问几个递归 DNS 返回什么,最后检查客户端真正连接到哪个 IP。

旧IP

先确认权威DNS已经返回新IP

先查询域名的权威名称服务器:

dig NS example.com +short

然后直接指定其中一台权威服务器查询 A 记录:

dig @ns1.example-dns.com www.example.com A +noall +answer

示例域名和名称服务器要替换成自己的。权威服务器返回的新 IP、TTL 和记录类型,是判断控制台修改是否真正发布的第一条证据。BIND 官方文档也把 dig 作为 DNS 排查的主要工具。

若多台权威服务器答案不一致,问题还在 DNS 服务商同步或区域配置层。此时清理本地缓存没有意义,应先确认记录是否修改在正确的域名、正确的主机名和正在使用的 DNS 服务商中。

再比较递归DNS的答案

权威答案正确后,可分别向常用公共递归 DNS 查询:

dig @1.1.1.1 www.example.com A +noall +answer
dig @8.8.8.8 www.example.com A +noall +answer

不同递归 DNS 返回不同 IP,说明旧记录仍在某些缓存中。记录旁边的 TTL 是剩余缓存时间,不是从修改那一刻重新计算的统一倒计时。递归服务器此前在不同时间取过记录,过期时间自然不会完全一致。

权威DNS回答新IP、部分递归DNS回答旧IP,才是缓存尚未过期的完整证据。 只看到某个网站显示旧IP,无法确定它查的是哪个递归服务器,也无法排除检测平台自身缓存。

TTL为什么改小后没有立刻生效

迁移前把 TTL 从 3600 秒调到 300 秒,只有在旧的 3600 秒缓存过期、递归服务器重新获取低 TTL 记录后才真正发挥作用。切换当天才把 TTL 改小,早先缓存的旧记录仍可能按原时长保留。

比较稳妥的做法是在迁移前至少一个旧 TTL 周期降低 TTL,待各处缓存更新后再切换 IP。业务稳定一段时间后再恢复适合日常运行的 TTL,避免长期保持过低数值增加无谓查询。

另一个容易忽略的情况是 CNAME 链。www 可能先指向另一个域名,链条中每一段都有自己的 TTL。只检查最末端 A 记录,会漏掉仍缓存旧目标的 CNAME。

客户端可能根本没有使用你测试的DNS

用户设备可能使用路由器、运营商递归 DNS、浏览器安全 DNS 或企业内网 DNS。电脑上执行 nslookup 得到新 IP,浏览器仍访问旧站,也可能是浏览器连接复用、代理缓存或本机 hosts 文件影响。

可以用以下方式确认实际连接目标:

curl -I -v https://www.example.com/ 2>&1 | grep -E 'Connected to|subject:|HTTP/'

该命令会显示连接信息和响应,但 HTTPS 站点还要注意 SNI 与证书。需要绕过 DNS 验证新服务器时,优先使用:

curl --resolve www.example.com:443:203.0.113.10 https://www.example.com/ -I

--resolve 只影响这次测试,不修改系统 DNS。直接在浏览器访问 HTTPS 的 IP 可能触发证书域名不匹配,因此不能据此判断新服务器配置错误。

不要急着删除旧服务器

解析切换后立即释放旧服务器是风险最大的操作之一。部分递归 DNS 仍可能保留旧 IP,后台任务、Webhook、邮件或 API 客户端也可能没有立刻更新。

迁移阶段更稳妥的方式是让新旧环境并行一段时间,并在旧站加上可识别但不影响用户的响应头或日志标记。需要临时保留验证环境时,可以用 萤光云LightNode 搭建同版本服务器,按地域和运营商做对照测试。服务商只提供运行环境,DNS 是否切换成功仍要以权威查询和实际连接证据为准。

确认旧服务器连续一段时间没有真实业务请求,再执行最终同步、撤销写入并下线。涉及数据库写入的网站还要提前设计只读窗口或双写方案,不能只靠 DNS 完成数据一致性。

怎样算解析问题真正结束

至少验证四件事:所有权威服务器返回新记录,目标递归 DNS 不再返回旧 IP,主要地区的实际连接已到新服务器,新旧站的数据和 HTTPS 配置一致。

日志是最后一条证据。新服务器开始持续收到真实请求,旧服务器请求量降到预期范围,才说明流量迁移基本完成。在线工具全部显示绿色,但旧服务器仍有用户写入,仍不能下线。

以后安排迁移时,提前降低 TTL、记录旧值、保留回滚入口和旧环境观察窗口。这样即使某个地区缓存更新较慢,也能确认它卡在哪一层,而不是反复改记录制造新的变量。

常见问题

DNS缓存最长需要多久才会更新?

主要取决于修改前已缓存记录的原TTL,也可能受到递归DNS策略影响。先查看权威答案和递归查询中的剩余TTL,不要套用固定的24小时结论。

手机网络访问旧IP,Wi-Fi访问新IP怎么办?

两种网络可能使用不同的递归DNS。分别记录查询结果和实际连接IP,等待旧缓存过期;权威答案不一致时则需先处理DNS服务商同步问题。

赞(0)
未经允许不得转载;国外VPS测评网 » 域名解析已修改,为什么部分地区仍访问旧IP?
分享到