渗透测试专家-dig渗透测试

hacker|
183

dig这个命令到底怎吗用

呃...linux系统咱不懂...

从别的地方V了下

dig是一个linux/unix下用于查看域名详情的小工具,类似于 nslookup ,但比 nslookup 的功能更强大,显示的信息更全面。而 windows 系统下只带有 nslookup 这个命令,下面是在 windows 系统下安装 dig 命令的方法。

首先下载 dig 包,下载地址是:

将此压缩包解压至例如 c:\dig 目录

检查 %WINDOWS%\system32 下有没有 msvcr70.dll ,如果有则删除 c:\dig\msvcr70.dll 。

接下来编辑 c:\dig\resolv.conf 文件,需要将你所用的DNS服务器在此文件中指定,格式跟linux下的 /etc/resolv.conf 相同,例如:

nameserver 61.144.56.101

nameserver 202.96.128.68

编辑保存后将此文件拷贝至 %WINDOWS%\system32\drivers\etc 目录下

接下来你可以将 c:\dig 目录加到系统环境变量 path 中。

安装完毕,可以试试了,使用命令如下:

dig --help

dig -h

dig sina.com.cn 运行结果如下:

;; Got answer:

;; -HEADER- opcode: QUERY, status: NOERROR, id: 291

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3

;; QUESTION SECTION:

;sina.com.cn. IN A

;; ANSWER SECTION:

sina.com.cn. 349 IN A 202.108.33.32

;; AUTHORITY SECTION:

sina.com.cn. 17227 IN NS ns1.sina.com.cn.

sina.com.cn. 17227 IN NS ns3.sina.com.cn.

sina.com.cn. 17227 IN NS ns2.sina.com.cn.

;; ADDITIONAL SECTION:

ns1.sina.com.cn. 82579 IN A 202.106.184.166

ns2.sina.com.cn. 82579 IN A 61.172.201.254

ns3.sina.com.cn. 82579 IN A 202.108.44.55

;; Query time: 40 msec

;; SERVER: 61.144.56.101#53(61.144.56.101)

;; WHEN: Sat Sep 29 14:20:12 2007

;; MSG SIZE rcvd: 147

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

dig命令使用详解2007-06-08 15:27

用途

DNS 查询实用程序。

语法

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

标志

-b address 设置所要询问地址的源 IP 地址。这必须是主机网络接口上的某一合法的地址。

-c class 缺省查询类(IN for internet)由选项 -c 重设。class 可以是任何合法类,比如查询 Hesiod 记录的 HS 类或查询 CHAOSNET 记录的 CH 类。

-f filename 使 dig 在批处理模式下运行,通过从文件 filename 读取一系列搜索请求加以处理。文件包含许多查询;每行一个。文件中的每一项都应该以和使用命令行接口对 dig 的查询相同的方法来组织。

-h 当使用选项 -h 时,显示一个简短的命令行参数和选项摘要。

-k filename 要签署由 dig 发送的 DNS 查询以及对它们使用事务签名(TSIG)的响应,用选项 -k 指定 TSIG 密钥文件。

-n 缺省情况下,使用 IP6.ARPA 域和 RFC2874 定义的二进制标号搜索 IPv6 地址。为了使用更早的、使用 IP6.INT 域和 nibble 标签的 RFC1886 方法,指定选项 -n(nibble)。

-p port# 如果需要查询一个非标准的端口号,则使用选项 -p。port# 是 dig 将发送其查询的端口号,而不是标准的 DNS 端口号 53。该选项可用于测试已在非标准端口号上配置成侦听查询的域名服务器。

-t type 设置查询类型为 type。可以是 BIND9 支持的任意有效查询类型。缺省查询类型是 A,除非提供 -x 选项来指示一个逆向查询。通过指定 AXFR 的 type 可以请求一个区域传输。当需要增量区域传输(IXFR)时,type 设置为 ixfr=N。增量区域传输将包含自从区域的 SOA 记录中的序列号改为 N 之后对区域所做的更改。

-x addr 逆向查询(将地址映射到名称)可以通过 -x 选项加以简化。 addr 是一个以小数点为界的 IPv4 地址或冒号为界的 IPv6 地址。当使用这个选项时,无需提供 name、class 和 type 参 数。dig 自动运行类似 11.12.13.10.in-addr.arpa 的域名查询,并分别设置查询类型和类为 PTR 和 IN。

-y name: key 您可以通过命令行上的 -y 选项指定 TSIG 密钥;name 是 TSIG 密码的名称,key 是实际的密码。密码是 64 位加密字符 串,通常由 dnssec-keygen(8)生成。当在多用户系统上使用选项 -y 时应该谨慎,因为密码在 ps(1)的输出或 shell 的历史 文件中可能是可见的。当同时使用 dig 和 TSCG 认证时,被查询的名称服务器需要知道密码和解码规则。在 BIND 中,通过提供正确的密码和 named.conf 中的服务器声明实现。

参数

global-queryopt... 全局查询选项

query 查询选项

查询选项

dig 提供查询选项号,它影响搜索方式和结果显示。一些在查询请求报头设置或复位标志位,一部分决定显示哪些回复信息,其他的确定超时和重试战略。每个查询选项 被带前缀(+)的关键字标识。一些关键字设置或复位一个选项。通常前缀是求反关键字含义的字符串 no。其他关键字分配各选项的值,比如超时时间间隔。它 们的格式形如 +keyword=value。查询选项是:

+[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 any -x 127.0.0.1 isc.org ns +noqr

显 示 dig 如何从命令行出发进行三个查询:一个针对 的任意查询、一个 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 的一些比较常用的命令:

# dig 最基本的用法

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

Linux下常用的DNS服务软件是什么,常用的DNS记录有?

Linux下常用的DNS服务软件是 BIND

以下是一个配置DNS服务的实例:

………………………………………………DNS的配置步骤:……………………………………………………

一、配置静态IP地址:

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.198.0.5

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

#/etc/init.d/network restart

#ifconfig eth0

二、使用BIND构建DNS服务器

1、BIND服务器安装

RHEL4中包括了BIND服务相关的软件包

bind-libs-9.2.4-2

提供了实现域名解析功能必备的库文件 ,系统默认安装

bind-utils-9.2.4-2

提供了对DNS服务器的测试工具程序 ,系统默认安装

bind-9.2.4-2 安装文件位于第4张安装光盘中

# rpm -ivh bind-9.2.4-2.i386.rpm

BIND服务器的服务程序脚本名称是named,默认没有启动,需手动设置。

#rpm -ql bind | grep init.d

/etc/rc.c/init.d/named

#chkconfig --level 35 named on

#chkconfig --list named

三、主域名服务器的配置

1、在named.conf文件中设置域

全局配置

options {

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

};

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

建立正向解析域

zone "." IN { (指定根域)

type hint;

file "named.ca";

};

zone "benet.com" { (指定本地域)

type master;

file "benet.com.zone";

};

建立反向解析域

zone "0.168.192.in-addr.arpa" { (指定反向域)

type master;

file "192.168.0.rev";

};

2、建立正向区域文件 (该文件需要用vi编辑器手动建立在/var/named中,并写其内容)

#cat /var/named/benet.com.zone

$TTL 86400 (秒)

@ IN SOA benet.com. hostmaster.benet.com. (

42 ; serial (d. adams) (序列号)

3H ; refresh (3小时更新)

15M ; retry (15分钟重试)

1W ; expiry (1周)

1D ) ; minimum (1天)

@ IN NS ns1.benet.com.

@ IN NS ns2.benet.com.

ns1 IN A 192.168.0.5

ns2 IN A 192.168.0.6

host1 IN A 192.168.0.7

host2 IN A 192.168.0.8

mail IN CNAME host1.benet.com.

www IN CNAME host2.benet.com.

@ IN MX 5 mail.benet.com.

3、建立反向区域文件 (该文件需要用vi编辑器手动建立在/var/named中,并写其内容)

# cat /var/named/192.168.0.rev

$TTL 86400

@ IN SOA ns1.ltest.com. hostmaster.ltest.com. (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

@ IN NS ns1.ltest.com.

@ IN NS ns2.ltest.com.

2 IN PTR ns1.ltest.com. (PTR可用IP省略方法,1.168.192.in-addr.rapa表192.168.1.2可写为2)

3 IN PTR ns2.ltest.com.

11 IN PTR host1.ltest.com.

12 IN PTR host2.ltest.com.

4、配置文件和区域文件的测试

A、测试named.conf主配置文件

# named-checkconf (如果不显示任何信息表示语法正确 )

B、测试区域文件

# named-checkzone benet.com /var/named/benet.com.zone

# named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev

(named-checkzone命令对正向区域文件和反向区域文件进行检查语法是否错误,第一个参数指定区域名称,第二个参数指定区域文件名称,如果语法正确将显示OK)

5、重启named服务

#service named restart

四、从域名服务器 的配置

(它做为主域名服务器的辅助和备份服务器,自身不建立区域文件,而是从主域名服务器中查询并保存,它可以与主域名服务器提供相同的域名解析服务,它需要在与主域名服务器不同的主机中构建)

1、在named.conf文件中设置域

建立正向解析域

zone "benet.com" {

type slave; (type设置为“slave”,表示当前DNS服务器是该域的从域名服务器类型 )

file "slaves/benet.com.zone" (从域名服务器中的区域文件应设置保存在 “slaves”子目录中,区域文件将从主 域名服务器中获取并保存在该目录中,为了便于管理,尽量使用与主服务器相 同的区域文件名称)

masters { 192.168.0.5; }; ( 使用masters设置主域名服务器的IP地址 )

};

建立反向解析域

zone "0.168.192.in-addr.arpa" {

type slave;

file " slaves/192.168.0.rev";

masters { 192.168.0.5; };

};

2、检测配置文件和启动named服务

从域名服务器只需要检测配置文件的语法

# named-checkconf

启动从域名服务器

# service named start

查看区域文件

从服务器启动后将从主域名服务器中获得区域文件并保存在指定的目录中

# ls /var/named/slaves/

192.168.0.rev benet.com.zone

(如果/var/named/slaves/目录中没有发现区域文件,说明从域名服务器和主域名服务器之间传输区域文件不成功,需要排错。)

五、缓存域名服务器的配置

(它应保证能够与互联网中的其他DNS服务器进行连接,它的主要作用是提高域名解析速度和节约出口带宽)

1、安装caching-nameserver软件包

(RHEL4系统为配置缓存域名服务器专门提供了名为“caching-nameserver”的软件包,该软件包保存在第1张安装光盘中,默认没有安装。)

# rpm -ivh caching-nameserver-7.3-3.noarch.rpm

(caching-nameserver软件包安装时将对BIND服务器的配置文件named.conf的内容进行更改,原文件中的内容保存在/etc/named.conf.rpmorig中。)

2、named.conf中的全局设置 (其中以//开头的行是无效行)

options {

directory "/var/named"; (directory用于设置BIND服务器的工作目录,即域名区域文件保存的目录 )

dump-file "/var/named/data/cache_dump.db"; (dump-file用于设置域名缓存文件的保存位置和文件名 )

statistics-file "/var/named/data/named_stats.txt";

};

3、根区域设置

named.conf中的根区域设置

zone "." IN {

type hint; (type设置为hint表示该区域的类型是根区域)

file "named.ca"; (file用于设置区域文件,根区域文件的名称是“named.ca” )

};

(named.ca是根区域文件,位于“/var/named/ ”目录中,named.ca中包含全球DNS根服务器的地址信息请不要更改)

4、localhost正向解析

(localhost区域的作用是对主机名称“localhost”和环回地址“127.0.0.1” 进行解析,总是代表本机)

zone "localhost" IN {

type master; ( type设置为master表示区域的类型为主服务器 )

file "localhost.zone"; (file设置区域文件名的名字 ,localhost.zone在/var/named中,是安装caching- nameserver时自动安装的,用cat /var/named/localhost.zone查看内容)

};

5、localhost反向解析

zone "0.0.127.in-addr.arpa" IN {

type master; ( type设置为master表示区域的类型为主服务器 )

file "named.local"; (file设置区域文件名的名字,named.local在/var/named中,是安装caching-nameserver时 自动安装的,用cat /var/named/named.local查看内容)

};

6、缓存域名服务器在安装caching-nameserver软件包后不需要任何其他配置就可以启动运行,并实现域名查询和缓存功能,但它必须能够访问互联网。可以使用nslookup命令进行测试。

六、DNS服务器的测试

1、DNS测试原理

DNS服务器的主要测试方法

使用nslookup、dig和host等专用工具可以对DNS服务器进行较全面的测试

nslookup命令在Linux和Windows系统中都默认安装,是比较常用的测试工具

2、使用nslookup测试DNS服务器

进入nslookup命令交换环境

# nslookup

设置使用指定的DNS服务器

server 192.168.0.5

测试localhost主机域名的正向解析

localhost

测试localhost主机域名的反向解析

127.0.0.1

测试互联网中的域名解析

测试benet.com域中的A记录

host1.benet.com

测试benet.com域中的PTR记录

192.168.0.7

测试benet.com域中的CNAME记录

测试benet.com域中的NS记录

set type=ns (设置域名查询类型为NS即域名记录)

benet.com

测试benet.com域中的MX记录

set type=mx (设置域名查询类型为MX即邮件交换记录)

benet.com

设置进行A记录的测试

set type=a (设置域名查询类型为A即地址记录)

mail.benet.com

3、使用dig测试DNS服务器 (dig只运行在liunx平台,是domain information grep的缩写)

1)#dig --help

dig命令的格式

Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt}

{global-d-opt} host [@local-server] {local-d-opt}

[ host [@local-server] {local-d-opt} [...]]

Use "dig -h" (or "dig -h | more") for complete list of options

2)dig命令可以比nslookup命令显示更多的DNS服务器信息

# dig @192.168.0.5 benet.com (@后是被查询的DNS服务器的IP地址,benet.com域名做为命令参数)

; DiG 9.2.4 @192.168.0.5 benet.com

;; global options: printcmd

;; Got answer:

;; -HEADER- opcode: QUERY, status: NOERROR, id: 51201

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;benet.com. IN A

;; AUTHORITY SECTION:

benet.com. 86400 IN SOA ns1.benet.com. hostmaster.benet.com. 42 10800 900 604800 86400

以上dns是以benet.com域为实例讲解………………

检查DNS服务器正向解析和反向解析的配置

测试 DNS

要测试设定是否生效﹐能够使用的方法有很多﹐其中最简单的莫过于 ping 命令了。直接 ping 一下您所预期的 dns 名称就知道结果了。

但是﹐ping 毕竟很有限﹐例如﹕您不能查询 MX 和 NS 等记录。实作上﹐最最常使用的 DNS 查询工具是 nslookup

命令。假如我们在测试中失败﹐例如

nslookup 响应说﹕

*** rh71.siyongc.domain can't find XXX.XXXX.XXXX:

Non-existent host/domain

这通常是反解记录没设定好的缘故﹐请确定 DNS 主机本身的反解有设定起来﹐而且能够被 DNS 追查得到。假如反解没有授权下来﹐那就请上游 ISP 帮忙设定。但是﹐发现这个错误信息似乎在新版的 nslookup 中不会出现﹐anyway ﹐请您自己留意吧。

有时候 nslookup 会停在某处一动也不动﹐其实他不是当掉了﹐而是在查询没结果之后等 time out 而已。您能够按 Ctrl

+ C 终止查询﹐再打 exit 跳出来。但是﹐假如您在按了 Ctrl + C 之后接着再输入一个无结果的查询﹐那就好可能将 nslookup

当掉。这样您可能要登录进另外一个 terminal ﹐然后用 kill 将 PID 杀掉。同上﹐新版的 nslookup

没有这个困绕﹐但假如按 Ctrl + C 的话﹐则会直接跳离 nslookup 程式。

然而﹐nslookup 似乎在以后的版本中不再维护了﹐取而代之的﹐就是 dig 命令﹐所以﹐当您在 Redhat 7.1 上输入 nslookup﹐您会看到如下这样的信息﹕

Note: nslookup is deprecated and may be removed from future releases.

Consider using the `dig' or `host' programs instead. Run nslookup with

the `-sil[ent]' option to prevent this message from appearing.

这段文字不用解释了吧﹖真的不知道说什么就查字典吧~~ 这里﹐我们不妨学习一下如何用 dig 来查询和测试 DNS 服务。

基本上﹐dig 命令的语法如下﹕

dig [@server] domain [] [] [+]

[-] [%comment]

看起来蛮复杂的﹐恐怕要 man dig 才知道怎么使用。但是﹐我们平时只用他来查询 dns 数据的话﹐要使用到的选项也不会太多啦﹐假如您会得在 nslookup 中设定 type=XXX 的话﹐那您也能够用 dig 来查询不同的记录类别数据。例如﹕

# dig siyongc.domain mx

; DiG 9.1.0 siyongc.domain mx

;; global options: printcmd

;; Got answer:

;; -HEADER DiG 9.1.0 @168.95.1.1 com.tw ns

;; global options: printcmd

;; Got answer:

;; -HEADER

dig命令详解

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

-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秘钥;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

dig +qr any -x 127.0.0.1 isc.org ns +noqr

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

一个典型的 dig 调用类似:

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

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

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

用 dig 查看 zone 数据传输

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

用 dig 查看反向解析

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

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

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

查看 bind 的版本号

0条大神的评论

发表评论