1061 字
5 分钟
DNS 解析全链路与 dig 排错实战

「域名打不开」可能是 DNS 的问题,也可能不是。要快速判断,得先搞清楚一次域名解析到底经过了哪些环节,以及每个环节用什么工具验证。

解析链路的完整顺序#

应用发起解析(如 curl 访问 example.com)时,典型的查找顺序:

  1. 浏览器/应用自身缓存:Chrome 在 chrome://net-internals/#dns 可查看。
  2. 本机 hosts 文件:/etc/hosts,优先级最高。
  3. 系统缓存与本地解析器:Linux 桌面常见 systemd-resolved(监听 127.0.0.53);服务器上也可能直接读 /etc/resolv.conf 里配置的 DNS。
  4. 递归解析器:如运营商 DNS、223.5.5.5(阿里)、119.29.29.29(腾讯)、8.8.8.8(Google)。它代替客户端完成剩下的全部工作。

递归解析器手上没有答案时,执行迭代查询:问根服务器(.)→ 得到 .com 顶级域服务器地址 → 问顶级域 → 得到 example.com 权威服务器地址 → 问权威 → 拿到 A 记录。结果按 TTL 缓存后返回给客户端。

递归 vs 迭代一句话区分:递归是「你给我最终答案」(客户端↔解析器),迭代是「你告诉我下一步问谁」(解析器↔各级服务器)。

dig:逐段验证每一环#

dig(bind-utils / dnsutils 包)是 DNS 排障的标准工具。基础用法:

Terminal window
dig example.com # 用系统默认解析器查 A 记录
dig example.com A +short # 只要答案:IP
dig example.com AAAA +short # IPv6
dig example.com MX # 邮件记录
dig example.com NS # 权威服务器
dig @223.5.5.5 example.com # 指定解析器,绕开本机配置
dig -x 93.184.216.34 # 反解 PTR

输出里先看三个位置:

  • status: NOERROR:查询成功;NXDOMAIN 表示域名不存在;SERVFAIL 通常是解析器或权威故障。
  • ANSWER SECTION:真正的答案和 TTL。
  • SERVER: 127.0.0.53#53:这次是谁回答的——判断是否命中本地缓存的关键。

逐跳追踪:dig example.com +trace 从根开始把迭代过程完整走一遍,可以定位「到底是哪一级给的答案不对」。

四种典型故障的定位套路#

1. 别人能打开,我这台机器打不开。 先 dig example.com 对比 dig @223.5.5.5 example.com。默认解析器答案错、公共解析器答案对 → 本机 DNS 配置或运营商劫持问题,检查 /etc/resolv.conf。两者都错 → 域名本身的问题。

2. 刚改了 DNS 记录,有的生效有的不生效。 TTL 缓存所致。dig example.com 看 ANSWER 里的 TTL 秒数和 SERVER 是谁——不同递归解析器缓存过期时间不同,全球生效需要等到旧记录 TTL 全部到期。变更前把 TTL 临时调低(如 300 秒)是标准操作。

3. 域名能解析,但 IP 不对。 检查 /etc/hosts 是否有人写过静态映射;再确认查的记录类型对不对——把 AAAA 当 A 看会以为「解析异常」。

4. 内网域名解析失败。 内网域名通常只存在于内网 DNS。dig @内网DNS地址 域名 能通而默认不行,说明 /etc/resolv.conf 没指向内网 DNS,或 systemd-resolved 的分流规则没配对。

记录类型最小知识#

类型作用注意点
A / AAAA域名 → IPv4 / IPv6一个域名可有多条,客户端轮询
CNAME域名 → 另一个域名不能与其他记录共存在同名节点;根域名(如 example.com)按标准不应使用 CNAME
MX邮件投递目标指向域名,优先级数字越小越优先
TXT任意文本SPF 反垃圾、域名所有权验证都靠它
NS指定该域的权威服务器改 NS 等于把整个域的解析权移交
PTRIP → 域名(反解)邮件服务器常校验,普通网站可不管

小结#

DNS 排障的核心动作只有三个:对比不同解析器的答案(dig @)、看状态码和 TTL、必要时 +trace 走全程。先确认「解析出来的 IP 对不对」,再去怀疑网络和服务器——顺序反了会浪费大量时间。

延伸阅读#

DNS 解析全链路与 dig 排错实战
https://meow.us.kg/posts/dns-resolution-dig-troubleshooting/
作者
もゆちゃん
发布于
2026-09-19
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取