如何在Linux中使用Dig命令(10个示例)
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中查询“.” (根)。