dig 命令

用途

域名系统 (DNS) 查找工具。

语法

dig [@ 服务器] [-b 地址] [-c ] [-f 文件] [-k 密钥文件] [-m] [-p 端口#] [-q 名字] [-t 类型] [-v] [-x 地址] [-y [hmac:] 密钥名称:秘密] [-4] [-6] [名字] [类型] [] [查询...]

dig [-h]

dig [global-queryopt...] [询问...]

描述

Domain Information Groper (dig) 命令是查询域名系统 (DNS) 名称服务器的灵活工具。 它执行 DNS 查找并显示从查询的名称服务器返回的答案。 大多数 DNS 管理员使用 "dig命令来排除 DNS 问题,因为该命令灵活、易用,而且输出结果清晰。

虽然 "dig命令通常使用命令行参数,但它也有批处理模式,可以从文件中读取查找请求。 使用 "-h标志时,将打印命令行参数和选项的摘要。 BIND9的 "dig命令允许从命令行发出多个查询。 除非命令它查询特定的名称服务器,否则 "dig命令会尝试 "/etc/resolv.conf文件中列出的每个服务器。 如果找不到可用的服务器地址,"dig命令会将查询发送到本地主机。 如果不指定命令行参数或选项,"dig命令将对根执行 "NS查询。

可以通过 ${HOME}/.digrc 文件为 dig 命令设置每个用户的默认值。 dig命令会读取该文件,并应用命令行参数前的所有选项。 对于需要可预测行为的脚本,"-r选项会禁用这一功能。

IN和 "CH"类名称与 "IN和 "CH顶级域名称重叠。 查找这些高级域时,可以使用 "-t和 "-c选项指定类型和类别,使用 "-q选项指定域名,或者使用 "IN和 "CH名称。

标志

表 1. 标志
描述
-4 允许 "dig命令仅使用IPv4查询传输。
-6 允许 "dig命令仅使用IPv6查询传输。
-b 地址[#端口] 设置查询的源 IP 地址。 指定的地址必须是主机或 "0.0.0.0或 "::网络接口上的有效地址。 您可以通过添加#port参数值来指定一个可选端口。
-c Class 设置查询类别。 参数值可以是任何有效的类,如 "HESIOD记录的 "HS或 "CHAOSNET记录的 "CH
-f File 通过从指定文件名读取要处理的查询请求列表,使 dig 命令在批处理方式下运行。 文件中每个条目的组织方式必须与使用命令行界面向 "dig命令查询时的组织方式相同。
-h 显示命令行参数和选项的简短总结。
-k KeyFile 使用 "-k选项指定事务签名(TSIG)或 SIG(0) 密钥文件,以签署 "dig命令发送的 DNS 查询。 您可以使用 tsig-keygen 命令生成密钥文件。 使用 "dig命令进行 TSIG 验证时,被查询的 "name服务器必须识别所使用的密钥和算法。 在 BIND 中,执行此操作的方法是在 TSIG 的 "named.conf文件中指定适当的 "key和 "server"语句,并检查区域数据中的 KEY 记录是否为 SIG(0)。
-m 启用内存使用和调试。
-p port# 查询服务器上的非标准端口号。 port# 参数值是 dig 命令将其查询发送至的端口号而不是标准 DNS 端口号 53。 您可以使用该选项测试被配置为通过非标准端口号监听查询的名称服务器。
-q 名称 将该名称与其他参数区分开。 将查询名称设置为指定的名称参数值。
-t Type 将查询类型设置为类型参数值。 它可以是 BIND 9 支持的任何有效查询类型,并由类型助记符(如 "NS或 "AAAA)指定。 缺省查询类型是 A,除非提供 -x 选项来指示一个逆向查询。 区段转移的类型为 "AXFR。 需要进行增量区段转移 (IXFR) 时,类型参数值将设置为 "ixfr=N。 增量区转移包含对区所做的更改,因为区记录 SOA 中的序列号为 "N

所有资源记录类型都可以表示为nn 类型,其中nn类型的数量。 如果 BIND 9 不支持资源记录类型,则结果显示为 "RFC3597

-u 表示必须以微秒而不是毫秒为单位指定打印查询时间。
-v 打印版本号并退出。
-x addr 简化反向查找(将地址映射到名称)。 addr参数值是以点分十进制表示的IPv4地址,或以冒号分隔的IPv6地址。 使用该选项时,无需提供名称 类型参数。 dig命令会自动查找 "11.12.13.10.in-addr.arpa这样的名称,并将查询类型和类别设置为 "PTR和 "IN"。 IPv6地址使用 "IP6.ARPA域下的 nibble 格式查找。
-y[hmac:] 密钥名称:秘密 指定一个事务签名 (TSIG) 密钥文件,用于对 "dig命令发送的 DNS 查询进行签名。 keyname表示密钥的名称,secret是base64-encoded的共享密钥,hmac是密钥算法的名称。 下列选项是hmac 的有效选项:
  • hmac-md5
  • hmac-sha1
  • hmac-sha224
  • hmac-sha256
  • hmac-sha384
  • hmac-sha512
如果未指定hmac,默认值为 "hmac-md5。 如果禁用MD5,默认值为 "hmac-sha256

参数

描述
global-queryopt... 全局查询选项。 有关多重查询的更多信息,请参阅多重查询
查询 查询选项。 有关查询选项的更多信息,请参阅查询选项

IDN 支持

如果 "dig命令支持国际化域名 (IDN),则可以接受并显示非 ASCII 域名。 dig命令在向 DNS 服务器发送请求或显示服务器的回复之前转换域名的字符编码。 要关闭 IDN 支持,请使用 +idnin+idnout 参数,或定义 IDN DISABLE 环境变量。

退出状态

表 2. 退出状态
描述
重大安全事件数量 表示收到 DNS 响应,包括 "NXDOMAIN状态。
第 1 年 表示使用错误。
8 周 无法打开批处理文件。
9 表示服务器没有回复
10 表示内部错误。

示例

下面的命令显示了 "dig命令的用法:
dig @server name type
其中:
服务器
待查询名称服务器的名称或 IP 地址。 服务器可以是以点分十进制表示的IPv4地址,也可以是以冒号分隔表示的IPv6地址。 如果提供的服务器参数是主机名,"dig命令会在查询名称服务器之前解析该名称。 如果没有提供服务器参数,"dig命令将查询 "/etc/resolv.conf文件。 如果找到地址,"dig命令就会查询该地址的名称服务器。 如果使用了 "-4或 "-6选项,则只尝试相应传输的地址。 如果没有找到可用地址,"dig命令会将查询发送到本地主机。 显示来自域名服务器的应答。
名称
要查询的资源记录名称。
TYPE
表示所需的查询类型。 例如,"ANY、"A"、"MX"、"SIG等。 type 参数值可以是任意有效查询类型。 如果没有提供类型参数,"dig命令将执行 "A记录的查询。

文件

/etc/resolv.conf

${HOME}/.digrc