dig 命令由 bind-utils 软件包提供
yum install bind-utils -y
使用dig查询某个域名
dig www.baidu.com
#dig www.baidu.com
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14229
;; 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. 125 IN CNAME www.a.shifen.com.
www.a.shifen.com. 124 IN A 180.101.50.242
www.a.shifen.com. 124 IN A 180.101.50.188
;; Query time: 25 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 二 11月 07 16:23:37 CST 2023
;; MSG SIZE rcvd: 104
dig 命令默认的输出信息比较丰富,大概可以分为 5 个部分。
第一部分显示 dig 命令的版本和输入的参数。
第二部分显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。
第三部分中的 "QUESTION SECTION" 显示我们要查询的域名。
第四部分的 "ANSWER SECTION" 是查询到的结果。
第五部分则是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等。
默认情况下 dig 命令查询 A 记录,上图中显示的 A 即说明查询的记录类型为 A 记录。在尝试查询其它类型的记录前让我们先来了解一下常见的 DNS 记录类型。
常见 DNS 记录的类型
类型 | 作用 |
---|---|
A | 地址记录,用来指定域名的 IPv4 地址,如果需要将域名指向一个 IP 地址,就需要添加 A 记录 |
AAAA | 用来指定主机名或域名对应的 IPv6 地址记录 |
CNAME | 如果需要将域名指向另一个域名,再由另一个域名提供 IP 地址,就需要添加 CNAME 记录 |
MX | 如果需要设置邮箱,让邮箱能够收到邮件,需要添加 MX 记录 |
NS | 域名服务器记录,如果需要把子域名交给其他 DNS 服务器解析,就需要添加 NS 记录 |
SOA | SOA 记录是所有区域性文件中的强制性记录,它必须是一个文件中的第一个记录 |
TXT | 可以写任何东西,长度限制为 255。绝大多数的 TXT 记录是用来做 SPF 记录(反垃圾邮件) |
查询某个类型的记录
dig www.baidu.com CNAME
#dig www.baidu.com CNAME
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> www.baidu.com CNAME
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49689
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN CNAME
;; ANSWER SECTION:
www.baidu.com. 848 IN CNAME www.a.shifen.com.
;; Query time: 20 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 二 11月 07 16:34:54 CST 2023
;; MSG SIZE rcvd: 72
从指定的DNS服务器上查询
dig @223.5.5.5 www.baidu.com
#dig @223.5.5.5 www.baidu.com
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> @223.5.5.5 www.baidu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58549
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1408
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 24 IN CNAME www.a.shifen.com.
www.a.shifen.com. 24 IN A 110.242.68.3
www.a.shifen.com. 24 IN A 110.242.68.4
;; Query time: 4 msec
;; SERVER: 223.5.5.5#53(223.5.5.5)
;; WHEN: 二 11月 07 16:38:09 CST 2023
;; MSG SIZE rcvd: 101
反向解析域名
dig -x 223.5.5.5 +short
# dig -x 223.5.5.5 +short
public1.alidns.com.
详细输出
dig -x 223.5.5.5
# dig -x 223.5.5.5
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> -x 223.5.5.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38486
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;5.5.5.223.in-addr.arpa. IN PTR
;; ANSWER SECTION:
5.5.5.223.in-addr.arpa. 1402 IN PTR public1.alidns.com.
;; Query time: 27 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 二 11月 07 16:44:10 CST 2023
;; MSG SIZE rcvd: 83
跟踪整个DNS查询过程
dig +trace www.baidu.com
# dig +trace www.baidu.com
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> +trace www.baidu.com
;; global options: +cmd
. 364 IN NS i.root-servers.net.
. 364 IN NS h.root-servers.net.
. 364 IN NS a.root-servers.net.
. 364 IN NS l.root-servers.net.
. 364 IN NS e.root-servers.net.
. 364 IN NS b.root-servers.net.
. 364 IN NS d.root-servers.net.
. 364 IN NS f.root-servers.net.
. 364 IN NS g.root-servers.net.
. 364 IN NS c.root-servers.net.
. 364 IN NS k.root-servers.net.
. 364 IN NS j.root-servers.net.
. 364 IN NS m.root-servers.net.
;; Received 251 bytes from 114.114.114.114#53(114.114.114.114) in 22 ms
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
;; Received 1173 bytes from 199.9.14.201#53(b.root-servers.net) in 153 ms
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 ns1.baidu.com.
baidu.com. 172800 IN NS ns7.baidu.com.
;; Received 849 bytes from 192.48.79.30#53(j.gtld-servers.net) in 179 ms
www.baidu.com. 1200 IN CNAME www.a.shifen.com.
;; Received 100 bytes from 36.155.132.78#53(ns3.baidu.com) in 23 ms