平时做运维、排查域名解析问题,真的离不开 dig 命令。
相比老旧的 nslookup,dig 输出更清晰、参数更灵活,排查 DNS 污染、解析延迟、记录配置错误都超好用。整理一份我日常高频使用的 dig DNS 查询实战范例,没有花里胡哨的内容,全是工作中能直接复制用的,新手也能看懂。
先简单说下基础语法,所有操作都基于这个格式:
dig 域名 [记录类型]
如果不写记录类型,默认就是查询 A 记录(IPv4 地址)。
1、最基础:查域名 IPv4(A 记录)
最常用的解析查询,看域名对应的服务器 IP:
dig google.com
也可以手动指定 A 记录,效果一样,更规范:
dig google.com A
2、查询 IPv6 解析(AAAA 记录)
现在很多服务器都配置了 IPv6,需要单独查 AAAA 记录:
dig google.com AAAA
3、查邮件解析记录(MX 记录)
搭建企业邮箱、排查邮件收不到/发不出问题,必查 MX 记录,能看到邮件服务器地址:
dig google.com MX
4、查看域名 DNS 服务器(NS 记录)
想知道当前域名绑定了哪家的 DNS 解析服务器,用这个命令:
dig google.com NS
5、查询域名别名(CNAME 记录)
很多站点会做域名别名跳转,比如 www 域名跳转到主域名,查 CNAME 就能看清跳转关系:
dig www.google.com CNAME
6、查询 TXT 记录(SPF/DKIM/域名验证专用)
域名备案验证、邮箱防垃圾配置、DKIM 密钥配置,全部靠 TXT 记录查询:
dig google.com TXT
7、IP 反向解析(PTR 记录)
常规是域名查 IP,反向解析就是用 IP 查对应的绑定域名,排查服务器反向解析配置必备:
dig -x 8.8.8.8
8、指定公共 DNS 查询(排查本地 DNS 污染神器)
很多时候解析异常是本地 DNS 缓存/运营商污染导致的,手动指定靠谱的公共 DNS 查询,就能快速定位问题。
用谷歌 DNS 查询:
dig @8.8.8.8 google.com
用 Cloudflare DNS 查询:
dig @1.1.1.1 github.com
9、极简输出(只看结果,适合脚本/快速排查)
默认 dig 输出内容太多,一堆头部注释、状态信息,只想快速看解析结果,加 +short 超级干净:
dig +short google.com
10、只显示解析答案段(精简常规排查输出)
比 short 详细一点,保留解析记录详情,隐藏无关参数,日常排查最常用:
dig google.com +noall +answer
11、追踪完整 DNS 递归解析过程
想搞清楚域名从根服务器、顶级服务器到权威服务器的完整解析链路,用 trace 参数,排查解析卡顿、链路异常超有用:
dig google.com +trace
12、查询域名所有 DNS 记录
不清楚域名配了哪些记录,直接查全部,一次性看完 A、MX、TXT、NS 等所有配置:
dig google.com ANY
13、批量查询多个域名
需要批量检测多个域名解析的话,把域名全部写进 domains.txt,一行一个,直接批量执行:
dig -f domains.txt
14、查看详细 TTL、DNS 标志信息
排查 DNS 缓存生效时间、记录刷新问题,需要看完整的 TTL、状态标识:
dig google.com +multiline
最后分享两个我日常最常用的组合命令
1、指定公共 DNS,干净查看解析结果(排查解析故障首选):
dig @1.1.1.1 taobao.com A +noall +answer
2、快速获取域名 IP(脚本调用/快速核对):
dig +short taobao.com
基本上日常 99% 的 DNS 解析排查、域名配置校验,这些命令都够用了,收藏起来不用每次都去查文档~