返回目录实战:同一个域名在不同设备上解析不一致
两台设备返回不同地址,并不一定是 DNS 出错。递归缓存、加密 DNS、私有区域、地理调度和 hosts 文件,都可能改变解析路径。
<!-- more -->
## 先写清查询条件
记录域名、查询类型、解析器、时间以及是否处于 VPN 或公司网络。A 和 AAAA 不能混为一谈,浏览器请求也可能使用与系统命令不同的解析器。
## 从权威与递归分别核对
确认权威区域中的记录,再查询递归解析器。缓存 TTL 和负缓存会影响修改后结果。公共 DNS 查不到企业私有域名不一定是异常,切换解析器可能反而破坏内部服务。
## 确认浏览器与系统的差异
浏览器加密 DNS、应用自带缓存和 hosts 都会让结果不同。先观察实际配置,再做一个受控对照;不要为了排查连续更改多个网络设置。
## 用指定地址请求排除 DNS
curl --resolve 能在一次请求中保留域名、SNI 与证书校验,同时指定目标地址。它适合检查新服务器,但不会改变系统 DNS,更不代表所有访客已经解析到新地址。
## 操作参考
```text
nslookup -type=A example.com
nslookup -type=AAAA example.com
# 203.0.113.10 为示例网段,必须替换
curl --resolve example.com:443:203.0.113.10 -I https://example.com/
```
示例占位符需替换为自己的环境。涉及生产服务时先保留备份,阅读命令用途后再执行。
## 参考资料
- [官方说明](https://everything.curl.dev/usingcurl/connections/name.html)
- [专题阅读路线](/topics/)