安卓系统

Linux中的Dig命令(DNS查找)

進階查詢創世神伺服器IP - Linux篇

進階查詢創世神伺服器IP - Linux篇

目录:

Anonim

Dig(域信息收集器)是用于查询DNS名称服务器的功能强大的命令行工具。

使用 dig 命令,您可以查询有关各种DNS记录的信息,包括主机地址,邮件交换和名称服务器。 由于它的灵活性和易用性,它是系统管理员中最常用的解决DNS问题的工具。

在本教程中,我们将通过实际示例和最常见的 dig 选项的详细说明,向您展示如何使用 dig 实用程序。

安装 dig

要检查 dig 命令在您的系统上是否可用:

dig -v

输出应如下所示:

DiG 9.11.3-1ubuntu1.1-Ubuntu

如果您的系统上不存在 dig ,则上面的命令将显示“ dig:not found”。 您可以使用发行版的软件包管理器轻松安装 dig 工具。

在Ubuntu和Debian上安装 dig

sudo apt update && sudo apt install dnsutils

在CentOS和Fedora上安装 dig

sudo yum install bind-utils

在Arch Linux上安装 dig

sudo pacman -S bind-tools

了解挖掘输出

以最简单的形式,当用于查询单个主机(域)而没有任何其他参数时,dig命令非常冗长。

在以下示例中,我们将执行查询以检索有关 linux.org 域的信息。

dig linux.org

输出应如下所示:

让我们逐节介绍 dig 命令的输出:

  1. 输出的第一行将显示已安装的dig版本以及已调用的查询。 第二行显示全局选项(默认情况下,仅cmd)。

    ; <<>> DiG 9.13.3 <<>> linux.org;; global options: +cmd

    第一部分包括有关从请求的机构(DNS服务器)收到的答案的技术详细信息。 标题显示操作码(由dig执行的操作)和操作状态。 在此示例中,状态为 NOERROR ,这意味着请求的权限为查询提供了服务,没有任何问题。

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

    可以使用 +nocomments 选项删除此部分,该选项还会禁用其他部分的标题。

    默认情况下,“ OPT”伪段仅在较新版本的dig实用程序中显示。 您可以在此处了解DNS扩展机制(EDNS)。

    ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096

    在“问题”部分中, dig 显示了我们的查询(问题)。 默认情况下, dig 请求A记录。

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

    您可以使用 +noquestion 选项禁用此部分。

    “答案”部分为我们提供了问题的答案。 如前所述,默认情况下, dig 将请求A记录。 在这里,域 104.18.59.123 指向 104.18.59.123 IP地址。

    ;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123

    通常,您不想关闭答案,但是可以使用 +noanswer 选项从输出中删除此部分。

    “权限”部分告诉我们哪些服务器是用于回答有关查询域的DNS查询的权限。

    ;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.

    您可以使用 +noauthority 选项禁用输出的此部分。

    “附加”部分为我们提供了有关权限部分中显示的权威DNS服务器IP地址的信息。

    ;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82

    +noadditional 选项禁用答复的其他部分。

    挖掘输出的最后一部分包括有关查询的统计信息。

    ;; Query time: 58 msec;; SERVER: 192.168.1.1#53(192.168.1.1);; WHEN: Fri Oct 12 11:46:46 CEST 2018;; MSG SIZE rcvd: 212

    您可以使用 +nostats 选项禁用此部分。

仅打印答案

在大多数情况下,您只想快速获得有关挖掘查询的答案。

1.简短回答

要获得查询的简短答案,请使用 +short 选项:

dig linux.org +short

104.18.59.123 104.18.58.123

输出将仅包含A记录的IP地址。

2.获得详细答案

要获得更详细的答案,请使用 +noall 选项关闭所有结果,然后仅打开带有 +answer 选项的答案部分。

dig linux.org +noall +answer

; <<>> DiG 9.13.3 <<>> linux.org +noall +answer;; global options: +cmd linux.org. 67 IN A 104.18.58.123 linux.org. 67 IN A 104.18.59.123

查询特定名称服务器

默认情况下,如果未指定名称服务器,则 dig 使用 /etc/resolv.conf 文件中列出的服务器。

要指定将对其执行查询的名称服务器,请使用 @ @ )符号,后跟名称服务器IP地址或主机名。

例如,要查询Google名称服务器(8.8.8.8)以获得有关 linux.org 域的信息,可以使用:

dig linux.org @8.8.8.8

; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 512;; QUESTION SECTION:;linux.org. IN A;; ANSWER SECTION: linux.org. 299 IN A 104.18.58.123 linux.org. 299 IN A 104.18.59.123;; Query time: 54 msec;; SERVER: 8.8.8.8#53(8.8.8.8);; WHEN: Fri Oct 12 14:28:01 CEST 2018;; MSG SIZE rcvd: 70

查询记录类型

Dig允许您通过将记录类型附加到查询的末尾来执行任何有效的DNS查询。 在以下部分中,我们将向您展示如何搜索最常见的记录的示例,例如A(IP地址),CNAME(规范名称),TXT(文本记录),MX(邮件交换器)和NS(名称服务器)。

1.查询A记录

要获取域名的所有地址的列表,请使用 a 选项:

dig +nocmd google.com a +noall +answer

google.com. 128 IN A 216.58.206.206

如您所知,如果未指定DNS记录类型,则dig将请求A记录。 您也可以在不指定 a 选项的情况下查询A记录。

2.查询CNAME记录

要查找别名域名,请使用 cname 选项:

dig +nocmd mail.google.com cname +noall +answer

mail.google.com. 553482 IN CNAME googlemail.l.google.com.

3.查询TXT记录

使用 txt 选项检索特定域的所有TXT记录:

dig +nocmd google.com txt +noall +answer

google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"

4.查询MX记录

要获取特定域的所有邮件服务器的列表,请使用 mx 选项:

dig +nocmd google.com mx +noall +answer

google.com. 494 IN MX 30 alt2.aspmx.l.google.com. google.com. 494 IN MX 10 aspmx.l.google.com. google.com. 494 IN MX 40 alt3.aspmx.l.google.com. google.com. 494 IN MX 50 alt4.aspmx.l.google.com. google.com. 494 IN MX 20 alt1.aspmx.l.google.com.

5.查询NS记录

要找到我们特定域的权威名称服务器,请使用 ns 选项:

dig +nocmd google.com ns +noall +answer

google.com. 84527 IN NS ns1.google.com. google.com. 84527 IN NS ns2.google.com. google.com. 84527 IN NS ns4.google.com. google.com. 84527 IN NS ns3.google.com.

6.查询所有记录

使用 any 选项获取特定域的所有DNS记录的列表:

dig +nocmd google.com any +noall +answer

google.com. 299 IN A 216.58.212.14 google.com. 299 IN AAAA 2a00:1450:4017:804::200e google.com. 21599 IN NS ns2.google.com. google.com. 21599 IN NS ns1.google.com. google.com. 599 IN MX 30 alt2.aspmx.l.google.com. google.com. 21599 IN NS ns4.google.com. google.com. 599 IN MX 50 alt4.aspmx.l.google.com. google.com. 599 IN MX 20 alt1.aspmx.l.google.com. google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" google.com. 21599 IN CAA 0 issue "pki.goog" google.com. 599 IN MX 40 alt3.aspmx.l.google.com. google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" google.com. 21599 IN NS ns3.google.com. google.com. 599 IN MX 10 aspmx.l.google.com. google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all" google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60

反向DNS查找

要查询与特定IP地址关联的主机名,请使用 -x 选项。

例如,要对 208.118.235.148 执行反向查找,可以使用:

dig -x 208.118.235.148 +noall +answer

从下面的输出中可以看到,IP地址 208.118.235.148 与主机名 wildebeest.gnu.org 关联。

; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer;; global options: +cmd 148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.

批量查询

在以下示例中,我们要查询 domains.txt 文件中列出的 domains.txt

domains.txt

lxer.com linuxtoday.com tuxmachines.org

dig -f domains.txt +short

108.166.170.171 70.42.23.121 204.68.122.43

.digrc文件

可以通过在 ${HOME}/.digrc 文件中设置每个用户的选项来控制dig命令的行为。

如果 .digrc 文件位于用户的主目录中,则在命令行参数之前应用该文件中指定的选项。

例如,如果只想显示答案部分,请打开文本编辑器并创建以下 ~/.digrc 文件:

〜/.digrc

+nocmd +noall +answer

结论

dig 是用于查询DNS信息并对DNS相关问题进行故障排除的命令行工具。

挖掘终端