📜  dig 命令示例 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:40:43.766000             🧑  作者: Mango

介绍

dig是一个用于查询DNS(Domain Name System)服务器的命令行工具。它能够查询DNS服务器的各种记录类型,如A记录、MX记录、CNAME记录、NS记录等,并返回相应的结果,可以方便地测试和诊断DNS服务器配置。本文将详细介绍dig命令的使用。

命令格式

dig命令的基本格式为:

dig [选项] [名称] [类型]
选项说明

dig命令支持以下选项:

  • -b address:指定本地网络接口的地址。
  • -c class:指定查询的记录类别。
  • -f filename:从文件中读取查询信息而非命令行。
  • -k filename:指定TSIG秘钥文件。
  • -p port:指定要连接的DNS服务器的端口。
  • -q type:指定查询的记录类型。
  • -t type:指定查询的记录类型。
  • -x addr:反向查询域名。
  • -y name:key[:alg]:指定TSIG秘钥的名称、密钥和加密算法。
名称与类型

dig命令中的名称和类型可以有以下的组合方式:

  • @server name type:查询指定DNS服务器上的指定主机名的指定类型的记录。
  • name type:查询系统配置的默认的DNS服务器上的指定主机名的指定类型的记录。
  • addr:反向查询指定IP地址处的主机名。
  • addr.arpa:反向查询指定IP地址处的主机名,与addr方式等价。
  • +trace addr:查询指定主机名的DNS服务器列表。
示例

以下是dig命令的一些示例:

查询指定主机的A记录
$ dig example.com

输出:

; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58611
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            3786    IN      A       93.184.216.34

;; Query time: 4 msec
;; SERVER: 10.10.10.1#53(10.10.10.1)
;; WHEN: Wed Dec 22 17:16:15 CST 2021
;; MSG SIZE  rcvd: 56

上述例子查询了example.com的A记录,输出结果包括查询状态、响应头、问题区、答案区等信息。其中,ANSWER SECTION节给出了查询结果,A记录对应的IP为93.184.216.34。

查询指定主机的MX记录
$ dig example.com MX

输出:

; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> example.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52365
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com.                   IN      MX

;; ANSWER SECTION:
example.com.            86145   IN      MX      10 mail.example.com.

;; Query time: 4 msec
;; SERVER: 10.10.10.1#53(10.10.10.1)
;; WHEN: Wed Dec 22 17:23:18 CST 2021
;; MSG SIZE  rcvd: 63

上述例子查询了example.com的MX记录,输出结果包括A记录对应的响应头、问题、答案等信息。其中,ANSWER SECTION节给出了查询结果,MX记录对应的邮件服务器为mail.example.com

查询指定主机的CNAME记录
$ dig www.example.com CNAME

输出:

; <<>> DiG 9.11.3-1ubuntu1.15-Ubuntu <<>> www.example.com CNAME
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38676
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.example.com.                   IN      CNAME

;; ANSWER SECTION:
www.example.com.        21779   IN      CNAME   example.com.

;; Query time: 4 msec
;; SERVER: 10.10.10.1#53(10.10.10.1)
;; WHEN: Wed Dec 22 17:27:34 CST 2021
;; MSG SIZE  rcvd: 64

上述例子查询了www.example.com的CNAME记录,输出结果包括响应头、问题、答案等信息。其中,ANSWER SECTION节给出了查询结果,CNAME记录对应的主机名为example.com

总结

dig命令是一个方便且功能强大的DNS查询工具,可以用来测试和诊断DNS服务器的配置。本文介绍了dig命令的基本格式、选项、名称与类型以及一些示例。在实际使用中,您可以根据需要自行组合命令行参数来进行查询。