Linux 中用于 DNS 查找的 dig 命令

‘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”代表地址。
  • 答案部分是输出的主要部分。 它为我们的查找提供了 Internet 地址 45.79.77.230
  • 最后一部分代表我们执行的查找的一些统计数据。

减小输出大小

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

$ dig linuxfordevices.com +short
$挖+短

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

Dns Yahoo.com +short $挖yahoo.com +short

查询邮件记录

默认情况下,dig 仅输出“A”记录。 我们可以通过使用带有 dig 命令的 MX 来改变这一点。 它将产生邮件交换记录。

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

$ dig linuxfordevices.com mx 

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

挖掘 Mx$挖mx

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

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

查询名称服务器

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

$ 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 
挖掘-noall-answer 挖 +noall +answer

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

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

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

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

$ dig linuxfordevices.com +noall +answer +stats
挖掘 +noall +answer +stats挖掘 +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。文本文件
猫 1检查文件的内容。

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

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

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

$ dig -f example.txt +noall +answer
挖 -f +noall +answer$挖-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 代表 Start of Authority,包含管理信息。

$ dig linuxfordevices.com SOA 

结论

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