菜鸟科技网

dns dig 命令

dig 命令简介

dig 用于查询 DNS 名称服务器,获取关于域名或 IP 地址的 DNS 记录信息,它可以用来查询各种类型的 DNS 记录,如 A、AAAA、MX、NS、TXT、CNAME 等,并可以显示查询的详细过程,包括从根服务器到权威服务器的完整解析路径。

dns dig 命令-图1
(图片来源网络,侵删)

基本语法

dig 命令的基本语法如下:

dig @<DNS服务器> <域名> [查询类型] [查询选项]
  • @<DNS服务器>: 可选,指定要查询的 DNS 服务器的 IP 地址或域名,如果省略,dig 会使用系统在 /etc/resolv.conf 文件中配置的默认 DNS 服务器。
  • <域名>: 必需,你想要查询的域名,www.google.com
  • [查询类型]: 可选,指定要查询的 DNS 记录类型,默认是 A 记录(IPv4 地址),其他常见类型包括 AAAA (IPv6), MX (邮件交换), NS (名称服务器), TXT (文本), CNAME (别名), SOA (授权记录) 等。
  • [查询选项]: 可选,用于控制 dig 的行为,-x (反向查询), -t (指定查询类型), -p (指定端口) 等。

常用示例

示例 1:查询 A 记录(默认查询)

这是最简单的用法,查询 www.google.com 的 IPv4 地址。

dig www.google.com

输出解读:

  • HEADER: 显示请求和响应的基本信息。
  • QUESTION SECTION: 显示你查询的问题。
  • ANSWER SECTION: 显示服务器返回的答案,这里是 www.google.com 的 A 记录。
  • AUTHORITY SECTION: 显示该域名的权威名称服务器。
  • ADDITIONAL SECTION: 显示一些额外的辅助信息,比如权威服务器的 IP 地址。
  • QUERY TIME: 查询耗时。
  • SERVER: 使用的 DNS 服务器。
  • WHEN: 查询时间。
  • MSG SIZE: 请求和响应消息的大小。

示例 2:查询特定类型的记录

使用 -t 选项或直接在域名后指定记录类型来查询 MX 邮件记录。

dns dig 命令-图2
(图片来源网络,侵删)
# 查询 google.com 的 MX 记录
dig google.com MX
# 或者使用 -t 选项
dig -t MX google.com

示例 3:查询 NS 记录

查询一个域名的权威名称服务器。

dig example.com NS

示例 4:查询 TXT 记录

常用于验证域名所有权、SPF 记录、DKIM 记录等。

dig google.com TXT

示例 5:反向查询(IP 到域名)

使用 -x 选项进行反向 DNS 查询,将 IP 地址解析为域名。

# 查询 8.8.8.8 对应的域名
dig -x 8.8.8.8

示例 6:指定查询的 DNS 服务器

使用 符号后面跟着 DNS 服务器的 IP 地址来指定查询目标,这对于测试特定服务器的响应非常有用。

dns dig 命令-图3
(图片来源网络,侵删)
# 使用 Google 的公共 DNS 服务器查询
@8.8.8.8 www.google.com
# 使用 Cloudflare 的公共 DNS 服务器查询
@1.1.1.1 www.google.com

示例 7:显示更简洁的输出

默认输出非常详细,如果你只想看答案部分,可以使用 +short 选项。

dig www.google.com +short

输出可能如下:

250.196.68
142.250.196.80
142.250.196.72
...

示例 8:跟踪 DNS 解析过程

dig 的一个强大功能是显示完整的解析路径,默认情况下,它会显示从根服务器开始,一直到最终权威服务器的查询过程,你不需要做任何特殊设置,默认输出就包含了这部分信息(ANSWER SECTION 之上)。

如果你想强制显示这个跟踪过程,或者更清晰地查看,可以使用 +trace 选项。

dig google.com +trace

这个命令会首先查询根服务器(),然后根据根服务器的响应查询顶级域服务器(.com),再根据 .com 服务器的响应查询 google.com 的权威服务器,最后获取最终的记录。

示例 9:查询域名的 SOA 记录

SOA (Start of Authority) 记录包含了关于域名的管理信息,如主名称服务器、管理员邮箱、序列号等。

dig example.com SOA

示例 10:显示所有记录

使用 any 查询类型可以尝试从服务器获取所有它能返回的记录类型。

dig google.com ANY

注意: 由于安全和隐私原因,许多 DNS 服务器会拒绝 ANY 查询或返回一个有限的响应。


常用选项总结

选项 描述 示例
+short 以简洁格式显示,只返回答案部分。 dig google.com +short
+trace 跟踪 DNS 解析的完整路径,从根服务器开始。 dig google.com +trace
+noall 禁止显示所有部分,通常与 +[section] 结合使用。 dig google.com +noall +answer
+[section] 只显示指定的部分。+answer (答案), +authority (权威), +additional (附加)。 dig google.com +noall +authority
+time=[秒数] 设置查询超时时间(默认 5 秒)。 dig google.com +time=2
+tries=[次数] 设置查询重试次数(默认 3 次)。 dig google.com +tries=1
-x 执行反向 DNS 查询。 dig -x 8.8.8.8
-t <类型> 指定查询的记录类型。 dig -t MX google.com
-p <端口> 指定 DNS 服务器使用的端口号(默认 53)。 dig @localhost -p 5353 google.com
-4 强制使用 IPv4 进行查询。 dig -4 google.com
-6 强制使用 IPv6 进行查询。 dig -6 google.com

dig vs. nslookup

虽然 nslookup 也是一个常用的 DNS 查询工具,但 dig 通常更受青睐,原因如下:

特性 dig nslookup
输出格式 结构化、清晰、易于脚本解析。 两种模式:交互式和非交互式,输出格式不统一。
功能 功能更强大,选项更丰富(如 +trace, +short)。 功能相对基础,高级功能较少。
默认行为 默认显示完整的、详细的解析过程。 默认只显示最终答案,需要额外操作才能看到解析路径。
社区 在系统管理员和开发者中更流行,文档和社区支持更好。 是一个较老的工具,逐渐被 dighost 取代。

dig 是一个功能极其强大的 DNS 诊断工具,掌握 dig 命令对于网络管理员、开发人员以及任何需要排查 DNS 问题的人来说都至关重要,从简单的 A 记录查询到复杂的 +trace 跟踪,dig 都能提供清晰、准确的信息,建议熟练掌握其基本用法和常用选项,这将极大提高你解决 DNS 相关问题的效率。

分享:
扫描分享到社交APP
上一篇
下一篇