DIG命令(Domain Information Groper命令)是一个网络工具,具有基本的命令行接口,用于进行不同的DNS(域名系统)查询。您可以使用DIG命令:
1. dig domain.com
范例:dig www.baidu.com
mirror@Ubuntu22:~$ dig www.baidu.com
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2424
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 1146 IN CNAME www.a.shifen.com.
www.a.shifen.com. 38 IN A 153.3.238.102
www.a.shifen.com. 38 IN A 153.3.238.110
;; Query time: 40 msec
;; SERVER: 114.114.114.114#53(114.114.114.114) (UDP)
;; WHEN: Mon Nov 27 15:13:05 CST 2023
;; MSG SIZE rcvd: 101
mirror@Ubuntu22:~$
2. dig domain.com +short
范例:dig www.baidu.com +short
mirror@Ubuntu22:~$ dig www.baidu.com +short
www.a.shifen.com.
153.3.238.102
153.3.238.110
mirror@Ubuntu22:~$
只显示 IP 地址,而不显示任何其他信息。快速且易于使用的,基本上只有 A 记录。
3. dig domain.com MX
范例:dig google.com MX
测试了百度和163,都没有MX记录,最后找到用Google可以看到有MX记录。
mirror@Ubuntu22:~$ dig google.com MX
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> google.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8524
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com. IN MX
;; ANSWER SECTION:
google.com. 35 IN MX 10 smtp.google.com.
;; Query time: 40 msec
;; SERVER: 114.114.114.114#53(114.114.114.114) (UDP)
;; WHEN: Mon Nov 27 15:19:26 CST 2023
;; MSG SIZE rcvd: 60
mirror@Ubuntu22:~$
可以查询不同类型的记录,例如邮件交换器记录。MX 记录显示负责接受电子邮件的邮件服务器。您可以查看所有服务器是否都正常工作以及响应是否太慢。
4. dig domain.com SOA
范例:dig www.163.com SOA
mirror@Ubuntu22:~$ dig www.163.com SOA
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> www.163.com SOA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47476
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;www.163.com. IN SOA
;; ANSWER SECTION:
www.163.com. 298 IN CNAME www.163.com.163jiasu.com.
www.163.com.163jiasu.com. 572 IN CNAME www.163.com.bsgslb.cn.
www.163.com.bsgslb.cn. 17 IN CNAME z163picipv6.v.bsgslb.cn.
;; AUTHORITY SECTION:
v.bsgslb.cn. 600 IN SOA vns1.bsgslb.cn. gtm.baishan.com. 1669778000 86400 3600 604800 300
;; Query time: 88 msec
;; SERVER: 114.114.114.114#53(114.114.114.114) (UDP)
;; WHEN: Mon Nov 27 15:29:10 CST 2023
;; MSG SIZE rcvd: 180
mirror@Ubuntu22:~$
SOA——权威的开始,显示权威的DNS服务器。在此记录中,您可以看到有关该区域的有价值的信息。每个区域只有一个 SOA。
5. dig domain.com TTL
范例:dig www.163.com TTL
TTL——生存时间。它显示数据应保留多长时间。将TTL值适当的增加,可以降低DNS服务器的负载,也可以为不同的DNS配置不同的TTL。
6. dig domain.com +nocomments +noquestion +noauthority +noadditional +nostats
范例:dig google.com +nocomments +noquestion +noauthority +noadditional +nostats
mirror@Ubuntu22:~$ dig google.com +nocomments +noquestion +noauthority +noadditional +nostats
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> google.com +nocomments +noquestion +noauthority +noadditional +nostats
;; global options: +cmd
google.com. 35 IN A 172.217.160.78
mirror@Ubuntu22:~$
只回答查询结果。可以减少很多额外的统计数据。
7. dig -x IPaddress
范例:dig -x 114.114.114.114
反向查找。如果DNS记录有PTR记录,那么可以用这个指令查找IP对应的域名信息。通过反向查找114.114.114.114 的域名为:public1.114dns.com
8. dig @dnsserver domain.com
范例1:dig @8.8.8.8 www.baidu.com
范例2:dig @114.114.114.114 www.baidu.com
指定DNS服务器对相同的域名解析。这个方法可以帮助判断一些网络缓慢或者访问异常的问题。
9. dig +trace domain.com
范例:dig +trace baidu.com
跟踪DNS路径。将显示 DNS 查询所采用的整个路由。可以帮助查找DNS解析失败的位置。
10. dig -p 5300 www.baidu.com
mirror@Ubuntu22:~$ dig -p 5300 baidu.com
;; communications error to 114.114.114.114#5300: timed out
;; communications error to 114.114.114.114#5300: timed out
;; communications error to 114.114.114.114#5300: timed out
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> -p 5300 baidu.com
;; global options: +cmd
;; no servers could be reached
mirror@Ubuntu22:~$
指定端口号。如果您已将DNS服务标准端口 53 更改为另一个自定义端口以提高安全性,则可以使用 dig 命令来检查这个端口是否正常工作。
11. dig _sip._udp.yourdomain.com SRV
范例:dig _sip._udp.baidu.com SRV
mirror@Ubuntu22:~$ dig _sip._udp.baidu.com SRV
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> _sip._udp.baidu.com SRV
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 50392
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_sip._udp.baidu.com. IN SRV
;; AUTHORITY SECTION:
baidu.com. 3544 IN SOA dns.baidu.com. sa.baidu.com. 2012147583 300 300 2592000 7200
;; Query time: 37 msec
;; SERVER: 114.114.114.114#53(114.114.114.114) (UDP)
;; WHEN: Mon Nov 27 15:49:06 CST 2023
;; MSG SIZE rcvd: 91
mirror@Ubuntu22:~$
使用此命令可以检查SRV记录。SRV记录经常用于 VoIP。在此示例中,表示我们正在使用 UDP 协议检查SIP服务是否正常。答案将显示响应时间以及负责 SIP 服务的服务器的 IP。
12. dig domain.com TXT
范例:dig google.com TXT
测试的时候,用baidu没有TXT记录,应该是么有开放查询,改用了Google。
mirror@Ubuntu22:~$ dig google.com TXT
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> google.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33409
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;google.com. IN TXT
;; ANSWER SECTION:
google.com. 280 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 280 IN TXT "apple-domain-verification=30afIBcvSuDV2PLX"
google.com. 280 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com. 280 IN TXT "google-site-verification=TV9-DBe4R80X4v0M4U_bd_J9cpOJM0nikft0jAgjmsQ"
google.com. 280 IN TXT "docusign=1b0a6754-49b1-4db5-8540-d2c12664b289"
google.com. 280 IN TXT "webexdomainverification.8YX6G=6e6922db-e3e6-4a36-904e-a805c28087fa"
;; Query time: 43 msec
;; SERVER: 114.114.114.114#53(114.114.114.114) (UDP)
;; WHEN: Mon Nov 27 15:50:42 CST 2023
;; MSG SIZE rcvd: 442
mirror@Ubuntu22:~$
查看所有 TXT 记录,TXT 记录可用于验证,并且可以有不同的变体。
13. dig _dmarc.domain.com TXT
范例:dig _dmarc.google.com TXT
mirror@Ubuntu22:~$ dig _dmarc.google.com TXT
; <<>> DiG 9.18.12-0ubuntu0.22.04.1-Ubuntu <<>> _dmarc.google.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37953
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;_dmarc.google.com. IN TXT
;; ANSWER SECTION:
_dmarc.google.com. 300 IN TXT "v=DMARC1; p=reject; rua=mailto:mailauth-reports@google.com"
;; Query time: 90 msec
;; SERVER: 114.114.114.114#53(114.114.114.114) (UDP)
;; WHEN: Mon Nov 27 15:52:21 CST 2023
;; MSG SIZE rcvd: 106
mirror@Ubuntu22:~$