Linux 中的 dig 命令用于 DNS 查找

‘domain information groper’ 的缩写 Dig 命令是 Linux 中的网络命令行工具。 管理员使用 Dig 来执行域名查找和故障排除。 它因其受欢迎程度、易用性和灵活性而广受欢迎。 dig 是 BIND 域名服务器软件套件的一部分。

安装

如果你的 Linux 系统上没有 dig,你可以很容易地安装它。

$ yum install bind-utils      #CentOS $ apt-get install dnsutils    #Debian/Ubuntu 

简单的挖掘命令

如果您在任何网站上执行简单的 dig 命令,就像我们在 linuxfordevices.com 上执行的那样

$ dig linuxfordevices.com  
$挖

它给你一个庞大而复杂的输出。 让我们了解输出的含义:

  • ;; 之后的任何内容应作为评论阅读。 第一行告诉我们正在使用的 dig 版本。 在这种情况下 9.16.1
  • 问题部分告诉我们我们要查询什么。 “IN”代表互联网,“A”代表地址。
  • 答案部分是输出的主要部分。 它为我们的查找提供了互联网地址 45.79.77.230
  • 最后一部分代表我们执行的查找的一些统计信息。

减小输出尺寸

$ dig 命令中作为输出提供的许多信息并没有那么有用。 我们可以通过使用 +short 和 $ dig 命令来避免所有这些。

$ dig linuxfordevices.com +short 
$挖+短

此命令仅显示查找中主机的 IP 地址。 默认的 dig 命令以详细的方式生成输出。 有时一个域可以有多个 IP 地址。

DNS Yahoo.com +short $ dig yahoo.com + 短

查询邮件记录

默认情况下 dig 只输出“A”记录。 我们可以通过将 MX 与 dig 命令一起使用来更改此设置。 它将产生邮件交换记录。

‘A’ 和 ‘MX’ 不是唯一的记录类型。 有几种类型的记录,如“TTL”、“SOA”、“NS”。 稍后我们将看到一起查询所有记录的命令。

$ dig linuxfordevices.com mx  

这将生成负责代表服务器接收邮件的邮件服务器列表。 换句话说,它将列出 SMTP 服务器。 SMTP 代表简单邮件传输协议。

挖 Mx$挖mx

我们可以看到,现在记录类型显示的是“MX”而不是“A”,它代表“Mail Exchange”。 我们可以使用 +short 来获得压缩输出,而不是生成所有额外信息。

$ dig linuxfordevices.com mx +short 
挖 Mx 短挖 mx + 短

查询名称服务器

您可以查询对该特定域具有权威性的服务器的名称。 一个域可以有多个名称服务器,可以指示域的主服务器和备份服务器。

$ dig linuxfordevices.com ns  
挖 Ns 1 1挖掘

对于我们的网站,我们可以看到有两个名称服务器。

跟踪 DNS 路径

此命令可让您以分层方式跟踪查询所采用的路径。 它将显示用于解析查找的所有根服务器的列表。

$ dig +trace linuxfordevices.com 
挖掘痕迹挖掘痕迹

要以更简洁的方式获取输出,请使用 +short

$ dig +short +trace linuxfordevices.com 
挖 + 短 + 跟踪 挖 + 短 + 跟踪

这显示了查询在到达最终地址之前所经过的路径。 在这种情况下为 45.79.77.230。

自定义挖掘输出

+noall 标志通常与 dig 命令一起使用,以清除默认情况下打开的所有显示标志。 与 +noall 标志一起,+answer 标志可用于仅显示答案部分。

$ dig linuxfordevices.com +noall +answer  
挖 - 没有答案 dig +noall +answer

正如我们所看到的,只有查询的答案部分是可见的。 +question 标志可用于显示查询的问题部分。

$ dig linuxfordevices.com +noall +answer +question  
挖诺尔问题 dig +noall +answer +question

第一行是问题部分,第二行是回答部分。 将此与上面简单的 dig 命令的输出进行比较。

+stat 标志可用于打开输出的统计部分。

$ dig linuxfordevices.com +noall +answer +stats 
dig +noall +answer +statsdig +noall +answer +stats

其他可以使用的标志是 +comments、+cmd、+authority 等。

反向 DNS 查找

可以通过提供 IP 地址来执行反向 DNS 查找。 输出给出了域名和其他信息。

$ dig -x [ip-address] 
反向 Dns 查找反向 dns 查找

IP 地址 45.79.77.230 属于 linuxfordevices.com,我们使用它执行了反向 DNS 查找。 我们可以使用 +short 以简洁的方式获得输出

$ dig -x [ip-address] +short 
反向 Dns 查找短反向 dns 查找 +short

从文件查询

可以从文件中批量执行 DNS 查询。 有时,在一个文件中列出所有域以进行查询可以节省大量时间和人工。 为此,我们必须首先创建一个包含一些域名的文件。 Linux cat 命令可用于此目的。

$ cat > example.txt  linuxfordevices.com google.com yahoo.com 
猫使用 cat 创建 example.txt
猫 1检查文件的内容。

可用于对文件运行 DNS 查询的命令是:

$ dig -f example.txt 
挖F挖-f

输出过于庞大,如果我们的文件中有太多域,将难以处理。 为了以简洁的方式获得输出,我们将只获得答案部分。

$ dig -f example.txt +noall +answer 
dig -f +noall +answer$ dig -f example.txt +noall +answer

查询所有DNS记录类型

到目前为止,我们只看到了几种记录类型。 它们是“A”、“MX”、“NS”。 我们已经能够通过明确指定类型来单独查询它们。 使用带有 dig 命令的 ANY 关键字,我们可以在单个查询中查询所有类型的记录。

$ dig linuxfordevices.com ANY 

要以简洁的方式生成输出:

$ dig linuxfordevices.com ANY +noall +answer  

这个命令就像我们之前看到的,只会生成查询的答案部分。

需要注意的一件重要事情是,这些并不是 DNS 下的唯一记录。 dig 命令下还有其他记录类型,如 TTL、SOA。 我们可以通过提及记录类型和 dig 命令来明确查询这些。

TTL 代表生存时间,用于指定执行自动刷新之前的时间。

$ dig linuxfordevices.com TTL 

SOA 代表授权开始,包含管理信息。

$ dig linuxfordevices.com SOA  

结论

Linux 中的 dig 命令对于获取有关服务器的信息和执行 DNS 查找非常有用。 您可以在手册页上阅读有关 dig 命令的更多信息。