如何在Linux中使用Dig命令(10个示例)

时间:2020-03-05 15:30:05  来源:igfitidea点击:

Dig执行DNS查找,并显示从查询的名称服务器返回的答案。
Dig是“域信息收集器”的缩写。

该工具是替代的DNS查找工具nslookup。
除非被告知要查询特定的名称服务器,否则dig将尝试'/etc/resolv.conf'中列出的每个服务器。

在本教程中,我将通过示例解释如何在Linux中使用dig命令。

dig命令

不带任何选项运行dig(默认情况下)

没有任何选择,dig将对NS执行“.”查询。
(根)。

这是一个示例输出。

$dig
; <> DiG 9.9.2-P1 <> linux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21655
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;linux.com. IN A
;; ANSWER SECTION:
linux.com. 1786 IN A 140.211.167.51
linux.com. 1786 IN A 140.211.167.50
;; AUTHORITY SECTION:
linux.com. 86386 IN NS ns1.linux-foundation.org.
linux.com. 86386 IN NS ns2.linux-foundation.org.
;; ADDITIONAL SECTION:
ns1.linux-foundation.org. 261 IN A 140.211.169.10
ns2.linux-foundation.org. 262 IN A 140.211.169.11
;; Query time: 258 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Nov 8 21:35:35 2014
;; MSG SIZE rcvd: 158

现在我们将读取输出:

; <> DiG 9.9.2-P1 <> linux.com
;; global options: +cmd

本节介绍挖掘本身。
我们知道我们使用的挖掘版本是9.9.2,而我们使用的全局选项是+ cmd。

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21655
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

本节将告诉我们有关DNS的技术解答。

;; QUESTION SECTION:
;linux.com. IN A

本部分告诉我们有关我们要挖掘的查询的信息

.;; ANSWER SECTION:
linux.com. 1786 IN A 140.211.167.51
linux.com. 1786 IN A 140.211.167.50

本节介绍了我们所做的查询的答案。
“ Linux.com”有两个地址。
IP 140.211.167.51和140.211.167.50。

;; AUTHORITY SECTION:
linux.com. 86386 IN NS ns1.linux-foundation.org.
linux.com. 86386 IN NS ns2.linux-foundation.org.

本部分告诉我们哪些DNS(或者谁)有权回答“ Linux.com的IP地址是什么?”问题。

;; ADDITIONAL SECTION:
ns1.linux-foundation.org. 261 IN A 140.211.169.10
ns2.linux-foundation.org. 262 IN A 140.211.169.11

本节介绍上述权威DNS的IP地址。
我们可以通过+ [no]添加选项来禁用此信息。

;; Query time: 258 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Nov 8 21:35:35 2014
;; MSG SIZE rcvd: 158

本节介绍一些统计信息。
我们可以使用+ [’no] stats选项禁用此信息。

Dig命令查询(最常见)

挖掘手册页将为我们显示许多有效的查询。
但实际上,有5个常见查询。

1)查询NS

NS是名称服务器的缩写。
这将显示负责linux.com域的服务器的名称

$dig linux.com NS

2)查询MX

MX是Mail Exchanger的缩写。
查询MX将显示linux.com的SMTP名称

$dig linux.com MX

3)查询地址

要显示linux.com的IP地址,我们可以使用A关键字。
A是地址的缩写

$dig linux.com A

4)查询TXT

TXT是文本注释。

$dig linux.com TXT

5)查询一切

如果不确定要查找的内容,可以使用ANY关键字。

Dig命令查询的选项

运行查询时,请挖掘提供选项以自定义输出。
这是每天的一些热门案例。

6)仅显示查询答案

$dig linux.com +noall +answer

7)显示答案和问题

$dig ubuntu.com MX +noall +answer +question

8)短模式显示

如果我们想快速回答,将使用此选项

$dig linux.com +short

9)仅显示答案和权限

为此,我们可以结合以下选项:

$dig ubuntu.com MX +noall +answer +authority

10)显示多行查询

这个+ multiline选项将以冗长的多行格式向我们显示类似于SOA记录的记录,并带有易于阅读的注释。
这是一个示例。

$dig ibm.com +multiline +noall +answer

进行反向查找

Dig不仅用于将名称查询到IP地址。
Dig可以进行反向查询,将IP地址查询为一个名称。
为此,请使用-x选项。

$dig -x 140.211.167.51 +noall +answer

输出结果显示IP'140.211.167.51'属于'load2d.linux-foundation.org'

使用特定的DNS进行查询

默认情况下,dig将使用/etc/resolv.conf中定义的DNS服务器
如果要使用其他DNS服务器执行查询,则可以使用@name_of_DNS_server关键字。
这是一个示例。

$dig @ns2.google.com gmail.com +nostat

进行批量查找

为此,我们可以通过两种方式来实现。
首先,是使用命令行。

$dig linux.com +noall +answer ubuntu.com +noall +answer

其次,我们可以将主机名或者域放入文本文件中。
然后使用-f选项包含文件。

$dig -f hostnames.txt +noall +answer

hostnames.txt文件包含以下行:

linux.com
ubuntu.com

如果ubuntu.com之后存在空白行,则dig也将在NS中查询“.” (根)。