dig 是什么
dig 是专业的 DNS 查询工具:可以指定记录类型与目标 DNS 服务器,输出里完整保留答复段、权威段与附加段,还能做反向解析。相比 nslookup,它的输出更结构化、更适合作脚本输入。排查解析问题时,TTL、权威服务器与递归过程这些信息,正是判断「缓存问题还是权威配置问题」的关键。
基本信息
| 适用平台 | Linux、macOS、Unix 通用(由 bind-utils 或 dnsutils 提供) |
|---|---|
| 命令语法 | dig [@服务器] 名称 [类型] [+选项] |
| 记录类型 | A、AAAA、CNAME、MX、TXT、NS、SOA、PTR、CAA |
| 常用选项 | +short 只输出结果 / +noall +answer 只看答复段 / +trace 逐级追踪 / +tcp 强制走 TCP |
典型使用场景
- 核对解析:确认域名是否解析到预期地址
- 对比本地与公共 DNS,判断是不是本地缓存出错
- 邮件排障:查询 MX 与 SPF 相关的 TXT 记录
- 反向解析:把地址反查回主机名
- 权威核对:直接向权威服务器查询,绕开各级缓存看最新记录
常用示例
常用示例
dig +short example.com
dig example.com A +noall +answer
dig @8.8.8.8 example.com A
dig +short MX qiqicto.com
dig +short TXT example.com
dig -x 8.8.8.8 # 反向解析 PTR
dig @ns1.example.com example.com A # 直接问权威服务器
dig +trace example.com # 从根开始逐级追踪输出段落读法
| 段落 | 含义 | 怎么看 |
|---|---|---|
| 头部状态 | NOERROR、NXDOMAIN、SERVFAIL 等 | 决定问题出在解析还是在更上游 |
| QUESTION | 本次查询的问题 | 确认域名与类型符合预期 |
| ANSWER | 答复记录 | 核心结果在这里 |
| AUTHORITY | 权威名称服务器 | 判断谁对该域名负责 |
| ADDITIONAL | 附加信息 | 例如名称服务器对应的地址 |
| TTL | 记录缓存存活时间 | 解释改动为何没有立刻生效 |
排查本地解析不对时,把默认查询结果与指定公共 DNS 的结果对比,能立刻判断是本地解析器的问题还是权威配置的问题。
改了记录却不生效,多数是缓存仍在计时。直接向权威服务器查询可以绕开各级缓存,确认记录到底更新了没有。
解析失败先看返回状态:名字不存在会得到 NXDOMAIN,服务器处理失败多为 SERVFAIL,超时要区分链路不通与服务器不回包。想看是哪一级出问题,用逐级追踪的方式从根域开始查询,能定位到具体断在哪一层委派,比反复问本机解析器有效。