dig和上一篇讲的nslookup命令作用有些类似,都是DNS查询工具。
一、基本命令格式
# dig @dnsserver name querytype
PS:如果你设置的dnsserver是一个域名,那么dig会首先通过默认的上连DNS服务器去查询对应的IP地址,然后再以设置的dnsserver为上连DNS服务器。
如果你没有设置@dnsserver,那么dig就会依次使用/etc/resolv.conf里的地址作为上连DNS服务器。
而对于querytype,如果你看过我上一篇有关nslookup命令的讲解,那么你应该对querytype有所了解,你可以设置A/AAAA/PTR/MX/ANY等值,默认是查询A记录。
二、一些常用选项
1、-c选项
可以设置协议类型(class),包括IN(默认)、CH和HS。
2、 -f选项
dig支持从一个文件里读取内容进行批量查询,这个非常方便。文件的内容要求一行为一个查询请求
# vim test.txt [root@localhost opt]# dig -f test.txt -c IN -t A ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> www.baidu.com ;; ->>HEADER<> ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> www.163.com ;; ->>HEADER<>
3、-4和-6两个选项
用于设置仅适用哪一种作为查询包传输协议,分别对应着IPv4和IPv6
4、 -t选项
用来设置查询类型,默认情况下是A,也可以设置MX等类型
# dig 163.com -t mx ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> 163.com -t ->>HEADER<> 163.com. 5903 IN MX 10 163mx01.mxmail.netease.com. 163.com. 5903 IN MX 10 163mx03.mxmail.netease.com. 163.com. 5903 IN MX 10 163mx02.mxmail.netease.com. 163.com. 5903 IN MX 50 163mx00.mxmail.netease.com.
5、-x选项
是逆向查询选项。可以查询IP地址到域名的映射关系
# dig -x 8.8.8.8 ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> -x 8.8.8.8 ->>HEADER<> ;; ANSWER SECTION: 8.8.8.8.in-addr.arpa. 22210 IN PTR google-public-dns-a.google.com.
三、特有查询选项
和刚才的选项不同,dig还有一批所谓的“查询选项”,这批选项的使用与否,会影响到dig的查询方式或输出的结果信息,因此对于这批选项,dig要求显式的在其前面统一的加上一个“+”(加号),这样dig识别起来会更方便,同时命令的可读性也会更强
1、TCP代替UDP
DNS查询过程中的交互是采用UDP的。如果你希望采用TCP方式,可以使用命令
dig +tcp 163.com
# dig +tcp 163.com
2、默认追加域
# dig +domain=baidu.com image
3、跟踪dig全过程
dig非常著名的一个查询选项就是+trace,当使用这个查询选项后,dig会从根域查询一直跟踪直到查询到最终结果,并将整个过程信息输出出来
# dig +trace baidu.com ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> +trace baidu.com ;; global options: printcmd . 186246 IN NS g.root-servers.net. . 186246 IN NS h.root-servers.net. . 186246 IN NS b.root-servers.net. ->>HEADER<> ;; Received 228 bytes from 223.5.5.5#53(223.5.5.5) in 18 ms //从本地DNS查找到根域DNS列表 com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. ->>HEADER<> ;; Received 487 bytes from 192.112.36.4#53(g.root-servers.net) in 1730 ms //选择了g.root-servers.net这台根域DNS来查找cn.域DNS列表 baidu.com. 172800 IN NS dns.baidu.com. baidu.com. 172800 IN NS ns2.baidu.com. baidu.com. 172800 IN NS ns3.baidu.com. baidu.com. 172800 IN NS ns4.baidu.com. baidu.com. 172800 IN NS ns7.baidu.com. ;; Received 197 bytes from 192.12.94.30#53(e.gtld-servers.net) in 567 ms //选择了e.gtld-servers.net这台cn.域DNS服务器来查找baidu.com的DNS列表 baidu.com. 600 IN A 123.125.114.144 baidu.com. 600 IN A 180.149.132.47 baidu.com. 600 IN A 220.181.57.217 baidu.com. 600 IN A 111.13.101.208 baidu.com. 86400 IN NS dns.baidu.com. baidu.com. 86400 IN NS ns2.baidu.com. ->>HEADER<> ;; Received 261 bytes from 202.108.22.220#53(dns.baidu.com) in 3311 ms //最终查找到A记录
4、精简dig输出
a、使用+nocmd的话,可以节省输出dig版本信息
b、使用+short的话,仅会输出最精简的CNAME信息和A记录,其他都不会输出
c、使用+nocomment的话,可以节省输出dig的详情注释信息
d、使用+nostat的话,最后的统计信息也不会输出
e、上面a、c、d都用上的话,现在如下:
# dig +nocmd +nocomment +nostat www.baidu.com ;www.baidu.com. IN A www.baidu.com. 262 IN CNAME www.a.shifen.com. www.a.shifen.com. 262 IN A 115.239.210.27 www.a.shifen.com. 262 IN A 115.239.211.112

您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏