DNS信息查询工具dig用法解析

dig是一款用于查询DNS信息的命令行工具。它可以帮助我们获取域名的相关信息,如IP地址、NS记录、MX记录等。本文将介绍dig的基本使用方法以及一些常见参数的意义。

安装 dig

在大多数Linux发行版中,dig是通过安装bind软件包来提供的。在Debian/Ubuntu上,可以使用以下命令进行安装:

apt install dnsutils

在CentOS/RHEL上,可以使用以下命令进行安装:

yum install bind-utils

常见选项

以下是dig命令中常见的一些选项:

  • +trace:跟踪DNS查询的路径。它显示查询经过的所有DNS服务器。
  • +short:仅显示查询结果的关键信息,以简化输出。
  • +nocookie:禁用查询中的cookie。在某些情况下,DNS服务器可能会返回一个cookie,这可能影响到后续的查询。
  • +ignore:忽略查询结果中的授权和附加部分。
  • +stats:显示查询的统计信息,如服务器响应时间、查询时间等。

+nocookie 选项详解

在DNS查询中,+nocookie选项用于禁用服务器在查询中返回cookie。此cookie是用于识别并跟踪用户会话的小文件。然而,在某些情况下,返回的cookie可能会对后续的查询造成影响,因此使用+nocookie选项可以禁用此功能,确保查询的准确性和一致性。

例如,当查询DNS域名时,我们可能只关注域名的解析结果,而不需要考虑会话跟踪。在这种情况下,使用+nocookie选项可以让我们获得更简洁和准确的输出。

要使用+nocookie选项,只需将其添加到dig命令中:

dig example.org +nocookie

截至发文时,知名 Public DNS 119.29.29.29 海外节点仍不支持 cookie,必须使用 +nocookie 选项,否则会超时。腾讯云海外节点CVM/Lighthouse的默认DNS同样受此影响,无法直接使用新版dig命令查询。

基本使用方法

dig 的基本命令格式为:

dig <域名> [查询类型] [@服务器] [+选项]
  • <域名>:要查询的域名。
  • [查询类型]:指定要查询的类型,默认为A记录(IPv4地址)。其他常见的查询类型包括MX(邮件交换服务器)、NS(域名服务器)、TXT(文本记录)等。
  • [@服务器]:指定用于查询的DNS服务器,默认为本地计算机的DNS服务器。
  • +[选项]:指定附加选项。在后面的部分中,我们将详细介绍常见的选项。

查询A记录

要查询域名的A记录(IPv4地址),可以运行以下命令:

dig example.org

输出示例:

; <<>> DiG 9.16.1-Ubuntu <<>> example.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5197
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

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

;; ANSWER SECTION:
example.org.  299 IN A 93.184.216.34

;; ADDITIONAL SECTION:

输出中的ANSWER SECTION部分包含了查询结果。本例中,域名example.org的A记录为93.184.216.34

查询MX记录

要查询域名的MX记录(邮件交换服务器),可以使用以下命令:

dig example.org MX

输出示例:

; <<>> DiG 9.16.1-Ubuntu <<>> example.org MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15734
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;example.org.   IN MX

;; ANSWER SECTION:
example.org.  21768 IN MX 0 .
example.org.  21768 IN MX 10 mail.example.org.
example.org.  21768 IN MX 20 mx.example.org.
example.org.  21768 IN MX 30 mx2.example.org.
example.org.  21768 IN MX 40 mx3.example.org.

;; ADDITIONAL SECTION:

在输出的ANSWER SECTION中,可以看到域名example.org的MX记录。可见,在这个例子中,该域名有5个MX记录。

查询NS记录

要查询域名的NS记录(域名服务器),可以运行以下命令:

dig example.org NS

输出示例:

; <<>> DiG 9.16.1-Ubuntu <<>> example.org NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46256
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;example.org.   IN NS

;; ANSWER SECTION:
example.org.  86400 IN NS a.iana-servers.net.
example.org.  86400 IN NS b.iana-servers.net.

;; ADDITIONAL SECTION:

在输出的ANSWER SECTION中,可以看到域名example.org的两个NS记录。

总结

本教程介绍了dig命令的基本使用方法和一些常见选项的意义。通过使用dig,我们可以方便地查询DNS信息,并获取域名的相关记录。在实际使用中,我们可以根据需要选择不同的查询类型和选项来获得所需的信息。

文章作者: 若海; 原文链接: https://www.rehiy.com/post/517/; 转载需声明来自技术写真 - 若海

添加新评论