Dig命令简介:
Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。除了Dig,还有nslookup工具域名对应的IP地址。
Dig命令安装(CentOS):
yum install bind-utils
最简单的用法:
[root@x360 ~]# dig ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55297 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 10845 IN NS c.root-servers.net. . 10845 IN NS h.root-servers.net. . 10845 IN NS m.root-servers.net. . 10845 IN NS i.root-servers.net. . 10845 IN NS a.root-servers.net. . 10845 IN NS l.root-servers.net. . 10845 IN NS b.root-servers.net. . 10845 IN NS j.root-servers.net. . 10845 IN NS e.root-servers.net. . 10845 IN NS g.root-servers.net. . 10845 IN NS k.root-servers.net. . 10845 IN NS d.root-servers.net. . 10845 IN NS f.root-servers.net. ;; Query time: 30 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sat Oct 12 00:46:09 2013 ;; MSG SIZE rcvd: 228
用DNS查看某域名下所有A记录:
[root@x360 ~]# dig -t A @8.8.8.8 www.chnlanker.com ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> -t A @8.8.8.8 www.chnlanker.com ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25575 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.chnlanker.com. IN A ;; ANSWER SECTION: www.chnlanker.com. 120 IN CNAME www.chnlanker.com.h1.aqb.so. www.chnlanker.com.h1.aqb.so. 60 IN A 220.181.135.218 ;; Query time: 618 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sat Oct 12 00:56:14 2013 ;; MSG SIZE rcvd: 92
命令格式:
dig @dnsserver name querytype
如果你设置的dnsserver是一个域名,那么dig会首先通过默认的上连DNS服务器去查询对应的IP地址,然后再以设置的dnsserver为上连DNS服务器。
如果你没有设置@dnsserver,那么dig就会依次使用/etc/resolv.conf里的地址作为上连DNS服务器。
而对于querytype可以设置A/AAAA/PTR/MX/ANY等类型,默认是查询A记录。
一些常用的选项:
-t选项,用来设置查询类型,默认情况下是A,也可以设置MX等类型。
-c选项,可以设置协议类型(class),包括IN(默认)、CH和HS。
-f选项,dig支持从一个文件里读取内容进行批量查询,文件内容一行为一个查询请求。
-4和-6选项,用于设置仅适用哪一种作为查询包传输协议(IPv4和IPv6)。
-q选项,可以显式设置你要查询的域名,这样可以避免和其他众多的参数、选项相混淆,提高了命令的可读性。
-x选项,是逆向查询选项。可以查询IP地址到域名的映射关系。
dig特有的查询选项(query option)
dig还有一批“查询选项”,这批选项的使用与否,会影响到dig的查询方式或输出的结果信息,因此对于这批选项,dig要求显式的在其前面统一的加上一个“+”(加号),这样dig识别起来会更方便,同时命令的可读性也会更强。
dig总共有42个查询选项,涉及到DNS信息的方方面面,如此多的查询选项,本文不一一赘述,在些只挑出常用的几个来讲解:
TCP代替UDP
众所周知,DNS查询过程中的交互是采用UDP的。如果你希望采用TCP方式,需要这样:
[root@x360 ~]# dig +tcp www.chnlanker.com ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> +tcp www.chnlanker.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59430 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.chnlanker.com. IN A ;; ANSWER SECTION: www.chnlanker.com. 120 IN CNAME www.chnlanker.com.h1.aqb.so. www.chnlanker.com.h1.aqb.so. 60 IN A 220.181.135.218 ;; Query time: 626 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sat Oct 12 01:02:09 2013 ;; MSG SIZE rcvd: 92
默认追加域
[root@x360 ~]# dig +domain=chnlanker.com club ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> +domain=chnlanker.com club ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30868 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;club.chnlanker.com. IN A ;; ANSWER SECTION: club.chnlanker.com. 600 IN CNAME club.chnlanker.com.h1.aqb.so. club.chnlanker.com.h1.aqb.so. 60 IN A 220.181.135.218 ;; Query time: 721 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Sat Oct 12 01:04:59 2013 ;; MSG SIZE rcvd: 94
跟踪dig全过程
dig非常著名的一个查询选项就是+trace,当使用这个查询选项后,dig会从根域查询一直跟踪直到查询到最终结果,并将整个过程信息输出出来。
[root@x360 ~]# dig +trace chnlanker.com ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> +trace chnlanker.com ;; global options: printcmd . 9611 IN NS c.root-servers.net. . 9611 IN NS h.root-servers.net. . 9611 IN NS m.root-servers.net. . 9611 IN NS i.root-servers.net. . 9611 IN NS a.root-servers.net. . 9611 IN NS l.root-servers.net. . 9611 IN NS b.root-servers.net. . 9611 IN NS j.root-servers.net. . 9611 IN NS e.root-servers.net. . 9611 IN NS g.root-servers.net. . 9611 IN NS k.root-servers.net. . 9611 IN NS d.root-servers.net. . 9611 IN NS f.root-servers.net. ;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 32 ms com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. ;; Received 503 bytes from 192.33.4.12#53(c.root-servers.net) in 60 ms chnlanker.com. 172800 IN NS f1g1ns1.dnspod.net. chnlanker.com. 172800 IN NS f1g1ns2.dnspod.net. ;; Received 325 bytes from 192.26.92.30#53(c.gtld-servers.net) in 4430 ms chnlanker.com. 600 IN SOA f1g1ns1.dnspod.net. freednsadmin.dnspod.com. 0 3600 180 1209600 180 ;; Received 108 bytes from 180.153.10.150#53(f1g1ns1.dnspod.net) in 162 ms
精简dig输出
1 使用+nocmd的话,可以节省输出dig版本信息。
2 使用+short的话,仅会输出最精简的CNAME信息和A记录,其他都不会输出。
3 使用+nocomment的话,可以节省输出dig的详情注释信息。
4 使用+nostat的话,最后的统计信息也不会输出。
转载请注明:jinglingshu的博客 » dig:深入挖掘网站域名下隐藏的秘密