Dig (Domain Information Groper) 是一个Linux 命令行实用程序,它通过查询名称服务器并向您显示结果来执行 DNS 查找。在本教程中,您将找到在 Linux 操作系统中应该知道的命令的所有基本用法。默认情况下,dig 将DNS查询发送到解析器 (/etc/resolv.conf) 中列出的名称服务器,除非它被要求查询特定的名称服务器。
在 Linux 上安装 Dig
Dig 是 DNS 实用程序包的一部分,通常与 BIND 名称服务器一起安装。您还可以通过SSH访问您的 VPS并在命令行中使用以下命令来单独安装包含 dig 的实用程序包:
Debian 和 Ubuntu:
apt-get 安装 dnsutils
中央操作系统 7:
yum 安装 bind-utils
安装后,检查版本,以确保安装成功完成:
挖-v
挖掘语法
在最简单的形式中,dig 实用程序的语法如下所示:
挖掘 [服务器] [名称] [类型]
[server] – 要查询的名称服务器的 IP 地址或主机名。
如果服务器参数是主机名,那么 dig 将在继续查询名称服务器之前解析主机名。
它是可选的,如果您不提供服务器参数,则 dig 使用/etc/resolv.conf中列出的名称服务器。
[name] – 要查找的资源记录的名称。
[type] – dig 请求的查询类型。例如,它可以是 A 记录、MX 记录、SOA 记录或任何其他类型。如果未指定类型参数,默认情况下 dig 会查找 A 记录。
如何使用挖掘命令
让我们进入命令的基本用法:
挖一个域名
要对域名执行 DNS 查找,只需将名称与 dig 命令一起传递:
挖掘 hostinger.com
默认情况下,当没有指定其他选项时,dig 命令将显示 A 记录。输出还将包含其他信息,如已安装的挖掘版本、有关答案的技术细节、有关查询的统计信息、问题部分以及其他一些信息。
简短的答案
上面的 dig 命令在不同的部分包含很多有用的信息,但有时您可能只需要查询的结果。您可以使用 +short 选项来做到这一点,它将仅显示域名的 IP 地址(A 记录):
挖掘 hostinger.com +short
详细解答
有时您想详细查看答案部分。因此,对于答案部分的详细信息,您可以使用+noall选项停止显示所有部分,并仅通过使用dig 命令的+answer选项查询答案部分。
挖掘 hostinger.com +noall +answer
指定名称服务器
默认情况下,dig 命令将查询/etc/resolv.conf中列出的名称服务器来为您执行 DNS 查找。您可以通过使用 @符号后跟名称服务器的主机名或 IP 地址来更改此默认行为。
以下 dig 命令使用@8.8.8.8选项将 DNS 查询发送到 Google 的名称服务器 (8.8.8.8)。
挖 @8.8.8.8 hostinger.com
查询所有 DNS 记录类型
要查询与域关联的所有可用 DNS 记录类型,请使用ANY选项。ANY选项将在输出中包含所有可用的记录类型:
挖掘 hostinger.com 任何
搜索记录类型
如果要查找特定记录,只需将类型添加到命令末尾即可。
例如,要查询仅获取与域关联的邮件交换-MX-应答部分,您可以使用以下 dig 命令:
挖掘 hostinger.in MX
同样,要查看与域关联的其他记录,请在 dig 命令末尾指定记录类型:
dig hostinger.com txt(查询TXT记录) dig hostinger.com cname(查询CNAME记录) dig hostinger.com ns(查询NS记录) dig hostinger.com A(查询A记录)
跟踪 DNS 路径
Dig 允许使用+trace选项跟踪 DNS 查找路径。该选项进行迭代查询以解析名称查找。它将查询从根开始的名称服务器,然后沿途使用引用之后的迭代查询向下遍历名称空间树:
挖掘 hostinger.com +trace
反向 DNS 查询
反向 DNS 查找可让您查找与 IP 地址关联的域和主机名。要使用 dig 命令执行反向 DNS 查找,请使用 -x选项,后跟您选择的 IP 地址。在以下示例中,dig 将对与 google.com 关联的 IP 地址执行反向 DNS 查找:
挖 +answer -x 172.217.166.46
请记住,如果没有为 IP 地址定义 PTR 记录,则无法进行反向 DNS 查找,因为 PTR 记录指向域或主机名。
批量查询
使用 dig 实用程序,您可以对域列表执行 DNS 查找,而不是对每个域单独执行相同的操作。为此,您需要为 dig 提供一个域名列表——文件中每行一个。文件准备好后,使用 -f 选项指定文件名:
vi 域名.txt 托管商.com 谷歌.com ubuntu.com
dig -f domain_name.txt +short
控制挖掘行为
通过在将随命令自动运行的~/.digrc文件中设置选项,可以永久自定义命令的输出。
假设您只想查看答案部分——在~/.digrc文件中指定所需的选项,这样您就不必在执行查询时键入它们。
echo "+noall +answer" > ~/.digrc
现在执行域的 DNS 服务器查找。输出确认 dig 使用~/.digrc文件中设置的选项运行。
结论
这就是开始在 Linux 中使用 dig 所需的所有基础知识。现在您可以使用各种选项对域执行 DNS 查找。想了解更多?使用 man dig 命令查看手册页,找出所有可能的用途和选项。