10 个 Linux Dig(域信息搜索器)命令来查询 DNS
在我们之前的文章中,我们解释了nslookup 命令示例和用法,这是一个用于查询和获取 DNS(域名系统)信息的网络命令行工具。
在本文中,我们提出了另一个名为dig的命令行工具,它与 Linux nslookup工具非常相似。我们将通过其示例和用法来了解 dig 命令的用法。
[您可能还喜欢:如何在 Linux 中安装和使用 dig 和 nslookup 命令]
Dig代表(域信息搜索器)是一种用于查询域名系统(DNS)名称服务器的网络管理命令行工具。
它对于验证和排除DNS问题以及执行DNS查找并显示从查询的名称服务器返回的答案很有用。
Dig 是BIND域名服务器软件套件的一部分。dig 命令取代了nslookup和host等旧工具。dig 工具在主要的 Linux 发行版中均可用。
1. 查询域名“A”记录
# dig yahoo.com ; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20076 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;yahoo.com. IN A ;; ANSWER SECTION: yahoo.com. 387 IN A 98.137.11.163 yahoo.com. 387 IN A 74.6.143.26 yahoo.com. 387 IN A 74.6.143.25 yahoo.com. 387 IN A 74.6.231.20 yahoo.com. 387 IN A 74.6.231.21 yahoo.com. 387 IN A 98.137.11.164 ;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Fri Dec 10 12:58:13 IST 2021 ;; MSG SIZE rcvd: 134
上述命令使 dig 查找"A"
域名yahoo.com的记录。Dig 命令读取/etc/resolv.conf文件并查询其中列出的DNS服务器。dig显示的就是DNS服务器的响应。
让我们了解命令的输出:
- 以 开头的行
;
是注释,不是信息的一部分。 - 第一行告诉我们 dig ( 9.16.1 ) 命令的版本。
- 接下来,dig 显示它从DNS服务器收到的响应的标头。
- 接下来是问题部分,它只是告诉我们查询,在本例中是针对yahoo.com
"A"
记录的查询。这意味着这是一个 Internet 查找(在 Internet 类中)。IN
- 答案部分告诉我们yahoo.com的IP地址是98.137.11.163。
- 最后,还有一些关于查询的统计数据。您可以使用选项关闭这些统计数据
+nostats
。
2. 使用 +short 查询域“A”记录
默认情况下,dig非常冗长。减少输出的一种方法是使用选项+short
。这将大大减少输出,如下所示。
# dig yahoo.com +short 98.137.11.164 74.6.231.21 74.6.231.20 74.6.143.25 74.6.143.26 98.137.11.163
注意:默认情况下,dig 会查找"A"
指定域的记录,但您也可以指定其他记录。MX
或Mail eXchange记录告诉邮件服务器如何为域路由电子邮件。同样,TTL、SOA等也是如此。
3. 查询域名的MX记录
仅查询不同类型的DNS资源记录。
# dig yahoo.com MX ; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com MX ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60630 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;yahoo.com. IN MX ;; ANSWER SECTION: yahoo.com. 51 IN MX 1 mta6.am0.yahoodns.net. yahoo.com. 51 IN MX 1 mta5.am0.yahoodns.net. yahoo.com. 51 IN MX 1 mta7.am0.yahoodns.net. ;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Fri Dec 10 13:03:32 IST 2021 ;; MSG SIZE rcvd: 117
4. 查询域的 SOA 记录
# dig yahoo.com SOA ; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com SOA ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25140 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;yahoo.com. IN SOA ;; ANSWER SECTION: yahoo.com. 1800 IN SOA ns1.yahoo.com. hostmaster.yahoo-inc.com. 2021121001 3600 300 1814400 600 ;; Query time: 128 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Fri Dec 10 13:04:08 IST 2021 ;; MSG SIZE rcvd: 99
5. 查询域名的TTL记录
# dig yahoo.com TTL ; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com TTL ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64017 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;yahoo.com. IN A ;; ANSWER SECTION: yahoo.com. 1606 IN A 74.6.143.25 yahoo.com. 1606 IN A 74.6.231.21 yahoo.com. 1606 IN A 74.6.143.26 yahoo.com. 1606 IN A 98.137.11.164 yahoo.com. 1606 IN A 98.137.11.163 yahoo.com. 1606 IN A 74.6.231.20 ;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Fri Dec 10 13:04:58 IST 2021 ;; MSG SIZE rcvd: 134 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 27889 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;TTL. IN A ;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Fri Dec 10 13:04:58 IST 2021 ;; MSG SIZE rcvd: 32
6. 仅查询答案部分
# dig yahoo.com +nocomments +noquestion +noauthority +noadditional +nostats ; <<>> DiG 9.16.1-Ubuntu <<>> yahoo.com +nocomments +noquestion +noauthority +noadditional +nostats ;; global options: +cmd yahoo.com. 1556 IN A 74.6.231.20 yahoo.com. 1556 IN A 98.137.11.163 yahoo.com. 1556 IN A 98.137.11.164 yahoo.com. 1556 IN A 74.6.143.26 yahoo.com. 1556 IN A 74.6.231.21 yahoo.com. 1556 IN A 74.6.143.25
7. 查询所有 DNS 记录类型
# dig yahoo.com ANY +noall +answer ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> yahoo.com ANY +noall +answer ;; global options: +cmd yahoo.com. 3509 IN A 72.30.38.140 yahoo.com. 3509 IN A 98.138.253.109 yahoo.com. 3509 IN A 98.139.183.24 yahoo.com. 1709 IN MX 1 mta5.am0.yahoodns.net. yahoo.com. 1709 IN MX 1 mta6.am0.yahoodns.net. yahoo.com. 1709 IN MX 1 mta7.am0.yahoodns.net. yahoo.com. 43109 IN NS ns2.yahoo.com. yahoo.com. 43109 IN NS ns8.yahoo.com. yahoo.com. 43109 IN NS ns3.yahoo.com. yahoo.com. 43109 IN NS ns1.yahoo.com. yahoo.com. 43109 IN NS ns4.yahoo.com. yahoo.com. 43109 IN NS ns5.yahoo.com. yahoo.com. 43109 IN NS ns6.yahoo.com.
8. DNS 反向查找
查询DNS反向查找。仅使用+short显示答案部分。
# dig -x 72.30.38.140 +short ir1.fp.vip.sp2.yahoo.com.
9. 查询多个 DNS 记录
查询多个网站的 DNS 特定查询,即MX、NS等记录。
# dig yahoo.com mx +noall +answer redhat.com ns +noall +answer ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> yahoo.com mx +noall +answer redhat.com ns +noall +answer ;; global options: +cmd yahoo.com. 1740 IN MX 1 mta6.am0.yahoodns.net. yahoo.com. 1740 IN MX 1 mta7.am0.yahoodns.net. yahoo.com. 1740 IN MX 1 mta5.am0.yahoodns.net. redhat.com. 132 IN NS ns1.redhat.com. redhat.com. 132 IN NS ns4.redhat.com. redhat.com. 132 IN NS ns3.redhat.com. redhat.com. 132 IN NS ns2.redhat.com.
10.创建.digrc文件
在$HOME/.digrc下创建.digrc文件来存储默认 dig 选项。
# dig yahoo.com yahoo.com. 3427 IN A 72.30.38.140 yahoo.com. 3427 IN A 98.138.253.109 yahoo.com. 3427 IN A 98.139.183.24
我们已将+noall +answer选项永久存储在用户主目录下的.digrc文件中。现在,无论何时执行 dig 命令,它都只会显示 dig 输出的答案部分。无需每次都输入+noall +answer等选项。
在本文中,我们尝试找出可能有助于您搜索(DNS)域名服务相关信息的 dig 命令。通过评论框分享您的想法。