dig命令详解

简介

dig(域信息搜索器)执行DNS搜索,显示从接受请求的域名服务器返回的答复。多数DNS管理员利用dig作为DNS问题的故障诊断,因为它灵活性好,易用、输出清晰。通常情况下dig使用命令行参数,但它也可以按批处理模式从文件读取搜索请求。不同于早期版本,dig的BIND9实现允许从命令行发出多个查询,除非被告知请求特定域名服务器,dig将尝试/etc/resolv.conf中列举的所有服务器。当未指定任何命令行参数或选项时,dig将对“.”执行NS查询。

dig命令用法

dig [@server] [-b address] [-c class] [-f filename] [-k filename] [ -n ][-p port#] [-t type] [-x addr] [-y name:key] [name] [type] [class] [queryopt...]
dig [-h]
dig [global-queryopt...] [query...]

dig命令选项

-b address设置所要询问地址的源IP地址。这必须是主机网络接口上的某一合法的地址
-c class缺省查询类,由选项-c重设。class可以是任何合法类,比如查询Hesiod记录的HS类或查询CHAOSNET记录的CH类;
-f filename使dig在批处理模式下运行,通过从文件filename读取一系列搜索请求加以处理。文件包含许多查询,每行一个。文件中的每一项都应该和使用命令行接口对dig查询相同的方法来组织;-f filename使dig在批处理模式下运行,通过从文件filename读取一系列搜索请求加以处理。文件包含许多查询,每行一个。文件中的每一项都应该和使用命令行接口对dig查询相同的方法来组织;
-h显示一个简短的命令行参数和选项摘要;-h显示一个简短的命令行参数和选项摘要;
-k filename要签署由dig发送的DNS查询以及对他们使用事物签名(TSIG)的响应,用选项-K指定TSIG密钥文件;-k filename要签署由dig发送的DNS查询以及对他们使用事物签名(TSIG)的响应,用选项-K指定TSIG密钥文件;
-n
-p port如果需要查询一个非标准的端口号,则使用选项-p。port是dig将发送其查询的端口号,而不是标准的DNS端口号53。该选项可用于测试已在非标准端口号上配置成侦听查询的域名服务器;-p port如果需要查询一个非标准的端口号,则使用选项-p。port是dig将发送其查询的端口号,而不是标准的DNS端口号53。该选项可用于测试已在非标准端口号上配置成侦听查询的域名服务器;
-t type设置查询的类型为type。可以是BIND9支持的任意有效查询类型。缺省查询类型是A,除非提供-x选项来指示一个逆向查询。通过指定AXFR的type可以请求一个区域传输。当需要增量区域传输(IXFR)时,type设置为ixfr=N,增量区域传输将包含自从区域的SOA记录中的序列号改为N之后对区域所做的更改;-t type设置查询的类型为type。可以是BIND9支持的任意有效查询类型。缺省查询类型是A,除非提供-x选项来指示一个逆向查询。通过指定AXFR的type可以请求一个区域传输。当需要增量区域传输(IXFR)时,type设置为ixfr=N,增量区域传输将包含自从区域的SOA记录中的序列号改为N之后对区域所做的更改;
-x addr 逆向查询(将地址映射到名称);-x addr 逆向查询(将地址映射到名称);
-y name key指定TSIG秘钥;-y name key指定TSIG秘钥;

查询选项

+[no]tcp

查询域名服务器时使用 [不使用] TCP。缺省行为是使用 UDP,除非是 AXFR 或 IXFR 请求,才使用 TCP 连接。

+[no]vc

查询名称服务器时使用 [不使用] TCP。+[no]tcp 的备用语法提供了向下兼容。vc 代表虚电路。

+[no]ignore

忽略 UDP 响应的中断,而不是用 TCP 重试。缺省情况运行 TCP 重试。

+domain=somename

设定包含单个域 somename 的搜索列表,好像被 /etc/resolv.conf 中的域伪指令指定,并且启用搜索列表处理,好像给定了 +search 选项。

+[no]search

使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。

+[no]defname

不建议看作 +[no]search 的同义词。

+[no]aaonly

该选项不做任何事。它用来提供对设置成未实现解析器标志的 dig 的旧版本的兼容性。

+[no]adflag

在查询中设置 [不设置] AD(真实数据)位。目前 AD 位只在响应中有标准含义,而查询中没有,但是出于完整性考虑在查询中这种性能可以设置。

+[no]cdflag

在查询中设置 [不设置] CD(检查禁用)位。它请求服务器不运行响应信息的 DNSSEC 合法性。

+[no]recursive

切换查询中的 RD(要求递归)位设置。在缺省情况下设置该位,也就是说 dig 正常情形下发送递归查询。当使用查询选项 +nssearch 或 +trace 时,递归自动禁用。

+[no]nssearch

这个选项被设置时,dig 试图寻找包含待搜名称的网段的权威域名服务器,并显示网段中每台域名服务器的 SOA 记录。

+[no]trace

切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。

+[no]cmd

设定在输出中显示指出 dig 版本及其所用的查询选项的初始注释。缺省情况下显示注释。

+[no]short

提供简要答复。缺省值是以冗长格式显示答复信息。

+[no]identify

当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。如果请求简短格式应答,缺省情况不显示提供应答的服务器的源地址和端口号。

+[no]comments

切换输出中的注释行显示。缺省值是显示注释。

+[no]stats

该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。

+[no]qr

显示 [不显示] 发送的查询请求。缺省不显示。

+[no]question

当返回应答时,显示 [不显示] 查询请求的问题部分。缺省作为注释显示问题部分。

+[no]answer

显示 [不显示] 应答的回答部分。缺省显示。

+[no]authority

显示 [不显示] 应答的权限部分。缺省显示。

+[no]additional

显示 [不显示] 应答的附加部分。缺省显示。

+[no]all

设置或清除所有显示标志。

+time=T

为查询设置超时时间为 T 秒。缺省是 5 秒。如果将 T 设置为小于 1 的数,则以 1 秒作为查询超时时间。

+tries=A

设置向服务器发送 UDP 查询请求的重试次数为 A,代替缺省的 3 次。如果把 A 小于或等于 0,则采用 1 为重试次数。

+ndots=D

出 于完全考虑,设置必须出现在名称 D 的点数。缺省值是使用在 /etc/resolv.conf 中的 ndots 语句定义的,或者是 1,如果没有 ndots 语句的话。带更少点数的名称被解释为相对名称,并通过搜索列表中的域或文件 /etc/resolv.conf 中的域伪指令进行搜索。

+bufsize=B

设置使用 EDNS0 的 UDP 消息缓冲区大小为 B 字节。缓冲区的最大值和最小值分别为 65535 和 0。超出这个范围的值自动舍入到最近的有效值。

+[no]multiline

以详细的多行格式显示类似 SOA 的记录,并附带可读注释。缺省值是每单个行上显示一条记录,以便于计算机解析 dig 的输出。

多条查询

dig 的 BIND9 支持在命令行上指定多个查询(支持 -f 批处理文件选项的附加功能)。每条查询可以使用自己的标志位、选项和查询选项。

在这种情况下,在上面描述的命令行语法中,每条查询自变量代表一个个别查询。每一条由任意标准选项和标志、待查询名称、可选查询类型和类以及任何适用于该查询的查询选项。

也可以使用对所有查询均有效的查询选项全局集合。全局查询选项必须位于命令行上第一个名称、类、类型、选项、标志和查询选项的元组之前。任何全局查询选项(除了 +[no]cmd 选项)可以被下面的查询特别选项重设。例如:

dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr
显 示 dig 如何从命令行出发进行三个查询:一个针对 www.isc.org的任意查询、一个 127.0.0.1 的逆向查询,以及一个 isc.org 的 NS 记录查询。应用了 +qr 的全局查询选项,以便 dig 显示进行每条查询的初始查询。最后那个查询有一个本地查询选项 +noqr,表示 dig 在搜索 isc.org 的 NS 记录时不显示初始查询。

示例

一个典型的 dig 调用类似:

dig @server name type

其中:

server

待 查询名称服务器的名称或 IP 地址。可以是用点分隔的 IPv4 地址或用冒号分隔的 IPv6 地址。当由主机提供服务器参数时,dig 在查询域名 服务器前先解析那个名称。如果没有服务器参数可以提供,dig 参考 /etc/resolv.conf,然后查询列举在那里的域名服务器。显示来自域名 服务器的应答。

name

将要查询的资源记录的名称。

type

显示所需的查询类型 - ANY、A、MX、SIG,以及任何有效查询类型等。如果不提供任何类型参数,dig 将对纪录 A 执行查询。

常用命令:

dig @server sina.com.cn.

用 dig 查看 zone 数据传输

dig @server zx.xmgd.com. AXFR

用 dig 查看 zone 数据的增量传输

dig @server zx.xmgd.com. IXFR=N

用 dig 查看反向解析

dig -x 210.52.83.228 @server

查找一个域的授权 dns 服务器

dig xmgd.com. +nssearch

从根服务器开始追踪一个域名的解析过程

dig xmgd.com +trace

查看你使用的是哪个 F root dns server

dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT

查看 bind 的版本号

dig @bind_dns_server CHAOS TXT version.bind

你可能感兴趣的:(dig命令详解)