DIG命令的使用
1 直接查询
基本格式:dig [@server] host
例子:
$ dig www.nju.edu.cn
; <<>> DiG 9.16.12-Debian <<>> www.nju.edu.cn
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36607
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.nju.edu.cn. IN A
;; ANSWER SECTION:
www.nju.edu.cn. 3600 IN A 202.119.32.7
;; Query time: 36 msec
;; SERVER: 10.211.55.1#53(10.211.55.1)
;; WHEN: 五 10月 01 13:11:46 CST 2021
;; MSG SIZE rcvd: 59
下面对dig的返回信息做一个简单的说明:
标头(header)部分:
; <<>> DiG 9.16.12-Debian <<>> www.nju.edu.cn # dig版本和要查询的域
;; global options: +cmd # 全局选项,dig可以查询多个域,这里显示应用于所有查询的选项,默认为+cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36607
# 操作码可以是:QUERY查询,IQUERY反查询,STATUS监测状态等等。
# 状态:NOERROR表示请求已正常解决
# id是一个随机的将请求与响应绑定在一起的数字
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
# 各标志位含义:
# qr = query, rd = recursion desired, ra = recursion avaliable
# aa = authoritative answer 代表权威域名服务器作出了响应
# 递归和迭代是DNS查询的两种形式
# QUERY代表查询数量,ANSWER代表结果数量,
# AURHORITY表示来自权威域名服务器的结果数量
# 为0说明该响应是从DNS前体服务器的缓存返回的,答复中将没有权威部分
# ADDITIONAL表示附加信息,当其值大于1的时候才会看到额外信息
选择伪切片 (Opt Pseudosection):
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
# EDNS(EDNS = Extended DNS)通过扩展用户数据报协议(UDP = User Data Protocol)数据包的大小来传输扩展的数据和标志
# flags这里为空,udp数据包大小为4096
问题部分(Question Section)
;; QUESTION SECTION:
;www.nju.edu.cn. IN A
# www.nju.edu.cn是正在查询的域名
# IN = Internet 表示互联网查询
# A = Address 除非我们另外指定,否则dig将向DNS服务器请求A(地址)记录。
答案部分(Answer Section)
;; ANSWER SECTION:
www.nju.edu.cn. 3600 IN A 202.119.32.7
# 3600是TTL = Time To Live,32位有符号整数,包含可以缓存记录的时间间隔
统计科(Statistics Section)
;; Query time: 36 msec
;; SERVER: 10.211.55.1#53(10.211.55.1)
;; WHEN: 五 10月 01 13:11:46 CST 2021
;; MSG SIZE rcvd: 59
# Message Size Received from Server
2 选择显示
基本格式:dig [@server] host [+options]
常用选项:
选项 | 含义 |
---|---|
+[no]comments | (不)显示评论行 |
+[no]authority | (不)显示权威部分 |
+[no]additional | (不)显示其他部分 |
+[no]stats | (不)显示统计信息 |
+[no]answer | (不)显示答案部分 |
+[no]all | (不)显示所有内容 |
我们可以通过上述命令的组合来控制显示特定内容,注意参数先后顺序代表生效次序。
例子:
$ dig @114.114.114.114 www.nju.edu.cn +noall +answer
# 只显示答案
www.nju.edu.cn. 2561 IN A 202.119.32.7
3 查询指定内容
基本格式:dig [@server] host record [+options]
常用的DNS记录:
记录 | 内容 |
---|---|
A = Address | IPv4地址 |
MX = Mail Exchange | 将发送到域的直接电子邮件记录到正确的服务器 |
NS = Name Server | 将域(或子域)委托给一组DNS服务器 |
TXT = Text | 储存有关域的基于文本的信息 |
SOA = Start Of Authority | 保存有关该域的许多信息,包括主要名称服务器、负责方、更改的时间戳记以及重试和放弃的一系时间限制。 |
TTL = Time To Live | 指定允许DNS前体服务器缓存每个DNS查询多长时间 |
ANY | 返回任何类型的可以找到的信息 |
例子:
$ dig nju.edu.cn mx +noall +answer
nju.edu.cn. 3600 IN MX 5 mxbiz1.qq.com.
nju.edu.cn. 3600 IN MX 10 mxbiz2.qq.com.
$ dig nju.edu.cn ns +noall +answer
nju.edu.cn. 3600 IN NS dns.nju.edu.cn.
nju.edu.cn. 3600 IN NS ns.nju.edu.cn.
$ dig nju.edu.cn soa +noall +answer
nju.edu.cn. 3600 IN SOA ns.nju.edu.cn. mail.nju.edu.cn. 3487 28800 3600 604800 1800
$ dig +noall +answer nju.edu.cn txt
nju.edu.cn. 3600 IN TXT "v=spf1 include:spf.mail.qq.com ~all"
4 查询多个域
基本格式: dig host
例子:
$ dig www.nju.edu.cn www.baidu.com www.google.com
; <<>> DiG 9.16.12-Debian <<>> www.nju.edu.cn www.baidu.com www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41758
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.nju.edu.cn. IN A
;; ANSWER SECTION:
www.nju.edu.cn. 3600 IN A 202.119.32.7
;; Query time: 12 msec
;; SERVER: 10.211.55.1#53(10.211.55.1)
;; WHEN: 五 10月 01 15:25:34 CST 2021
;; MSG SIZE rcvd: 59
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26886
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 947 IN CNAME www.a.shifen.com.
www.a.shifen.com. 47 IN A 36.152.44.95
www.a.shifen.com. 47 IN A 36.152.44.96
;; Query time: 4 msec
;; SERVER: 10.211.55.1#53(10.211.55.1)
;; WHEN: 五 10月 01 15:25:34 CST 2021
;; MSG SIZE rcvd: 101
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55010
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 11 IN A 74.86.17.48
;; Query time: 4 msec
;; SERVER: 10.211.55.1#53(10.211.55.1)
;; WHEN: 五 10月 01 15:25:34 CST 2021
;; MSG SIZE rcvd: 59
也可以将多个域存在文件中,不过此时需要加上参数-f,例如:
$ cat hosts.txt
www.nju.edu.cn
www.baidu.com
www.google.com
$ dig -f hosts.txt +noall +answer
www.nju.edu.cn. 3600 IN A 202.119.32.7
www.baidu.com. 1094 IN CNAME www.a.shifen.com.
www.a.shifen.com. 42 IN A 36.152.44.96
www.a.shifen.com. 42 IN A 36.152.44.95
www.google.com. 21 IN A 199.59.149.136
5 反向查询
添加参数-x
可以查询对应地址的域名,其他选项和参数同上。
$ dig -x 202.119.32.7 +noall +answer
7.32.119.202.in-addr.arpa. 3600 IN PTR mpacc.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR dawww.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR capds.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR sfs.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR blockchainfintech.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR cydgw.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR obeyond.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR logic.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR nic.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR bksy.nju.edu.cn.119.202.in-addr.arpa.
7.32.119.202.in-addr.arpa. 3600 IN PTR hnchome.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR lmswe.nju.edu.cn.119.202.in-addr.arpa.
7.32.119.202.in-addr.arpa. 3600 IN PTR life.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR molpharm.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR critical-elements.nju.edu.cn.119.202.in-addr.arpa.
7.32.119.202.in-addr.arpa. 3600 IN PTR ius.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR kcsz.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR phylab.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR ensklpcrr.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR ndsc.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR ccmp.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR macrolinguistics.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR orgchem.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR ascs.nju.edu.cn.119.202.in-addr.arpa.
7.32.119.202.in-addr.arpa. 3600 IN PTR dii.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR yjzz.nju.edu.cn.119.202.in-addr.arpa.
7.32.119.202.in-addr.arpa. 3600 IN PTR jsasacd.nju.edu.cn.119.202.in-addr.arpa.
7.32.119.202.in-addr.arpa. 3600 IN PTR aiblockchainfintech.nju.edu.cn.
7.32.119.202.in-addr.arpa. 3600 IN PTR sklcc.nju.edu.cn.