linux – dig命令查看域名DNS信息

dig 命令主要用来从 DNS 域名服务器查询主机地址信息。

比如:$ dig baidu.com

dig 命令默认的输出信息比较丰富,大概可以分为 5 个部分。

第一部分:1-2行。显示 dig 命令的版本和输入的参数。

第二部分:”Got answer” 显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。

第三部分:”QUESTION SECTION” 显示我们要查询的域名。

第四部分: “ANSWER SECTION” 是查询到的结果。

第五部分:最后是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等。

默认情况下 dig 命令查询 A 记录,上图中显示的 A 即说明查询的记录类型为 A 记录。在尝试查询其它类型的记录前让我们先来了解一下常见的 DNS 记录类型。

 

常见 DNS 记录的类型

  • A:地址记录,用来指定域名的 IPv4 地址,如果需要将域名指向一个 IP 地址,就需要添加 A 记录。
  • AAAA:用来指定主机名(或域名)对应的 IPv6 地址记录。
  • CNAME:如果需要将域名指向另一个域名,再由另一个域名提供 ip 地址,就需要添加 CNAME 记录。
  • MX:如果需要设置邮箱,让邮箱能够收到邮件,需要添加 MX 记录。
  • NS:域名服务器记录,如果需要把子域名交给其他 DNS 服务器解析,就需要添加 NS 记录。
  • SOA:SOA 这种记录是所有区域性文件中的强制性记录。它必须是一个文件中的第一个记录。
  • TXT:可以写任何东西,长度限制为 255。绝大多数的 TXT记录是用来做 SPF 记录(反垃圾邮件)。

查询 CNAME 类型的记录

除了 A 记录,常见的 DNS 记录还有 CNAME,我们可以在查询时指定要查询的 DNS 记录类型:

$ dig baidu.com CNAME

这样结果中就只有 CNAME 的记录。其实我们可以在查询中指定任何 DNS 记录的类型。

从指定的 DNS 服务器上查询

由于一些原因,希望从指定的 DNS 服务器上进行查询(从默认的 DNS 服务器上获得的结果可能不准确)。指定 DNS 服务器的方式为使用 @ 符号:

$ dig @8.8.8.8 abc.filterinto.com

可以看到本次查询的 DNS 服务器为 8.8.8.8。

如果不指定 DNS 服务器,dig 会依次使用 /etc/resolv.conf 里的地址作为 DNS 服务器:

 

反向查询

在前面的查询中我们指定了查询服务器为 8.8.8.8,这是谁家的 DNS 服务器?其实我们可以使用 dig 的 -x 选项来反向解析 IP 地址对应的域名:

$ dig -x 8.8.8.8 +short

 

跟踪整个查询过程
如果你好奇 dig 命令执行查询时都经历了哪些过程,你可以尝试使用 +trace 选项。它会输出从根域到最终结果的所有信息:

$ dig +trace abc.filterinto.com

 

 

转自:https://www.imooc.com/article/26971?block_id=tuijian_wz


发表评论

电子邮件地址不会被公开。 必填项已用*标注