dig命令是Linux和macOS系统中常用的DNS查询工具,相比nslookup功能更丰富、输出更详细,常用于排查域名解析问题、验证DNS配置等,下面从基础语法、常用参数、实际场景等方面详细介绍其使用方法。

基础语法与核心参数
dig命令的基本语法为:dig [选项] [域名] [查询类型] [DNS服务器],其中各部分含义如下:
- 域名:要查询的目标域名,如
example.com,不指定时默认查询本机域名。 - 查询类型:DNS记录类型,如
A(IPv4地址)、AAAA(IPv6地址)、MX(邮件服务器)、NS(权威服务器)、TXT(文本记录)等,默认为A。 - DNS服务器:指定查询的DNS服务器,如
@8.8.8.8(谷歌DNS),不指定时使用系统默认的DNS服务器。
常用选项参数包括:
+short:简化输出,仅显示查询结果的核心信息(如IP地址)。+trace:跟踪DNS解析路径,从根域名服务器逐级查询到目标域名的权威服务器。+noall:隐藏默认输出中的指定部分,需结合+answer(显示答案)、+authority(显示权威服务器)、+additional(显示附加信息)使用。-x:反向查询,通过IP地址查询对应的域名。
常见使用场景与示例
查询域名的A记录(默认)
直接输入域名,dig会返回完整的DNS解析信息,包括查询请求、答案、权威服务器、附加信息等部分。
dig example.com
输出包含:
- 头信息:查询的参数(如
IN A表示查询IPv4地址)。 - 答案部分:域名对应的IP地址(如
184.216.34)。 - 权威部分:域名的权威DNS服务器(如
a.iana-servers.net.)。 - 附加部分:权威服务器的IP地址(如
0.43.8)。
若仅需IP地址,可加+short:
dig example.com +short
输出:184.216.34
查询不同类型的DNS记录
通过指定查询类型,可获取域名的其他记录信息。

-
查询MX记录(邮件服务器):
dig example.com MX
输出中会显示邮件服务器的优先级和主机名(如
10 mail.example.com.)。 -
查询NS记录(权威服务器):
dig example.com NS
输出域名的权威DNS服务器列表(如
a.iana-servers.net.、b.iana-servers.net.)。 -
查询TXT记录(文本记录,常用于SPF、DKIM验证):
dig example.com TXT
跟踪DNS解析路径(+trace)
当域名解析异常时,可用+trace查看从根服务器到目标域名的完整查询链,定位问题节点。
dig example.com +trace
输出会依次显示:

- 根域名服务器的响应(
. 3600000 IN NS a.root-servers.net.)。 - 顶级域(TLD)服务器(如
.com 172800 IN NS b.gtld-servers.net.)。 - 目标域名的权威服务器(如
example.com 3600 IN NS ns1.example.com.)。 - 最终的A记录解析结果。
指定DNS服务器查询
若需使用特定DNS服务器(如谷歌DNS8.8.8、Cloudflare DNS1.1.1),可通过符号指定:
dig @8.8.8.8 example.com
若本机DNS配置异常,此方法可绕过本地DNS直接查询。
反向查询(-x)
通过IP地址查询对应的域名,常用于验证IP归属:
dig -x 93.184.216.34
输出会显示该IP对应的域名(如example.com.)。
常见DNS记录类型说明
| 记录类型 | 作用 | 示例查询命令 |
|---|---|---|
| A | 解析IPv4地址 | dig example.com A |
| AAAA | 解析IPv6地址 | dig example.com AAAA |
| MX | 指定邮件服务器 | dig example.com MX |
| NS | 指定权威DNS服务器 | dig example.com NS |
| CNAME | 域名别名(如www指向主域名) | dig www.example.com CNAME |
| TXT | 存储文本信息(如SPF记录) | dig example.com TXT |
实际应用场景
- 排查网站无法访问:检查域名的A记录是否正确解析到服务器IP,或MX记录是否配置错误(邮件服务异常)。
- 验证DNS传播:修改DNS记录后,通过不同地区的DNS服务器(如
@8.8.8.8、@1.1.1.1)查询,确认记录是否生效。 - 测试CDN加速效果:查询域名的CNAME记录,确认是否指向CDN服务商的域名(如
www.example.com CNAME cdn.example.com.)。
FAQs
Q1:dig和nslookup有什么区别?
A:dig功能更强大,输出结构化更清晰(如分区域显示答案、权威服务器等),支持+trace等高级选项;nslookup是交互式工具,适合简单查询,但在复杂场景下(如跟踪解析路径)不如dig直观,dig默认返回更详细的DNS协议信息(如TTL、响应码),适合深度排查。
Q2:dig命令中+trace为什么能帮助排查DNS问题?
A:+trace会模拟DNS递归解析过程,从根域名服务器()开始,逐级查询顶级域(如.com)、二级域(如example.com)的权威服务器,最终返回目标域名的解析结果,通过观察中间环节的响应(如超时、无记录),可快速定位是本地DNS配置问题、上级服务器故障,还是目标域名权威服务器异常。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/14443.html