解析不生效怎么查
按顺序排查:记录是否已保存且状态正常 → 直接查询权威服务器是否返回新值 → 本地与公共递归缓存是否仍是旧值 → 域名 NS 是否指向当前解析服务 → 域名实名或备案等前置条件是否影响解析。逐级定位比反复刷新和反复改配置有效得多,也能避免把缓存等待误判成故障。
基本信息
| 第一步 | 确认解析记录存在且状态正常(未被暂停或审核中) |
|---|---|
| 第二步 | 直接查询权威服务器,核对返回值与预期是否一致 |
| 第三步 | 检查递归缓存中的旧值,确认 TTL 是否已过期 |
| 第四步 | 确认域名 NS 指向当前使用的解析服务 |
| 第五步 | 核对域名实名、备案等前置条件 |
| 判断口径 | 权威已更新而递归仍旧值属于正常缓存现象 |
典型使用场景
- 新增记录后本地查不到:先分清是配置问题还是缓存问题
- 更换 IP 后部分用户仍访问旧服务:确认各地缓存收敛情况
- 域名整体无法访问:优先检查 NS 与域名状态
- 子域突然解析失败:检查是否存在同名记录冲突或泛解析影响
- 证书或第三方验证失败:核对 TXT 记录内容是否完整
两级查询对照
两级查询对照
dig +short www.example.com @<权威NS> # 权威侧是否已返回新值
dig +short www.example.com @8.8.8.8 # 递归侧是否已收敛
dig +short NS example.com # 确认权威服务器指向
dig www.example.com | grep -E 'status|IN' # 查看状态码与 TTL排查结论对照
| 权威返回 | 递归返回 | 结论 |
|---|---|---|
| 新值 | 旧值 | 正常缓存现象,等待 TTL 过期 |
| 新值 | 新值 | 解析已生效,问题可能在客户端或应用 |
| 旧值 | 旧值 | 配置未生效或未提交,检查记录状态 |
| 查不到记录 | —— | 检查 NS 托管、域名状态与记录类型 |
权威已更新而递归仍旧是正常缓存现象,等待 TTL 过期即可;只有权威未更新才是配置问题,这时才需要检查记录本身。
把缓存等待当成故障而反复改动配置,容易在收敛过程中把状态搞乱,最终连「本来生效的是哪一版」都难以判断。