dig 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,聚焦
dig——网络基础命令族(见网络基础与远程访问命令族)。网站打不开、怀疑解析问题时,dig是定位"DNS 哪一步出错"的利器。
dig(Domain Information Groper)向 DNS 服务器发查询并展示完整应答,功能比 nslookup/host 全,是排 DNS 故障的标准工具。
一、基本用法
dig example.com # 默认查 A 记录(IPv4 地址)
dig example.com A # 显式查 A 记录
dig example.com AAAA # 查 IPv6 地址
dig example.com MX # 查邮件交换记录
dig example.com CNAME # 查别名最常见的就是查 A/AAAA 看域名解析到哪个 IP。指定记录类型(A/AAAA/MX/CNAME/TXT/NS)能精准拿到想要的信息,排"邮件发不出"查 MX、排"CDN 别名"查 CNAME。
二、指定 DNS 服务器与精简输出
dig @8.8.8.8 example.com # @ 指定用哪个 DNS 服务器查(绕过本机配置)
dig +short example.com # +short 只输出结果 IP,脚本友好
dig example.com NS +short # 查权威 NS 并精简输出
@8.8.8.8很关键:当你怀疑"本机 DNS 配置有问题"时,换公共 DNS(如 8.8.8.8、1.1.1.1)查一下对比,能判断是远端解析问题还是本地 resolver 问题。+short在脚本里取结果最方便。
三、跟踪完整解析链:+trace
dig +trace example.com # 从根服务器开始一级级跟踪,看解析走的哪条链
+trace从.根域一路查到目标,展示完整授权链。当你想知道"为什么解析到了错误的 IP"或"哪一级 DNS 给错了答案",它把每一层返回都摊开,定位极其精准(但输出较长)。
四、dig vs nslookup vs host
| 工具 | 特点 |
|---|---|
dig | 信息最全、输出最规范,排障首选 |
| nslookup | 交互式,老牌但功能弱于 dig |
host | 输出最简洁,快速看结果 |
严肃排障用 dig(尤其
+trace、@server);只想快速看个 IP 用host也行。nslookup 渐渐被边缘化。
五、踩坑:看 ANSWER SECTION 而非输出全信
dig example.com
# 关注 ;; ANSWER SECTION: 下的真实记录
# 注意 ;; SERVER: 显示的是实际应答的 DNS 服务器dig 输出里分多段:
QUESTION(问了啥)、ANSWER(真正答案)、AUTHORITY(权威服务器)、ADDITIONAL。别只盯最后一行,要看 ANSWER SECTION 才知解析结果;SERVER 行告诉你这答案是谁给的。
六、实战:对比本机与公共 DNS
dig example.com +short # 走本机 resolver
dig @8.8.8.8 example.com +short # 走谷歌 DNS,对比是否一致相关命令
端到端连通看 ping;路由逐跳看 traceroute。
一句话总结
dig = DNS 排障首选工具:查 A/AAAA/MX/CNAME 等记录,@server 指定 DNS 对比本机配置、+short 精简输出、+trace 跟踪完整解析链;比 nslookup/host 信息全。看 ANSWER SECTION 拿真答案,看 SERVER 行知谁应答。