热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux命令Dig

一、域名解析记录说明记录类型A:用来指定域名的IPv4地址(如:8.8.8.8),如果需要将域名指向一个IP
一、域名解析记录说明

记录类型
A:用来指定域名的IPv4地址(如:8.8.8.8),如果需要将域名指向一个IP地址,就需要添加A记录
AAAA:用来指定域名对应的IPv6地址
CNAME:如果需要将域名指向另一个域名,再由另一个域名提供IP地址,就需要添加CNAME记录。
MX:如果需要设置邮箱,让邮箱能收到邮件,就需要添加MX记录,记录值可以是IP或域名
TXT:可以填任何东西,长度限制为255。绝大数的TXT记录是用来做SPF记录(反垃圾邮件)
NS:域名服务器记录,如果需要把域名交给其他DNS服务商解析,就需要添加NS记录。默认DNS服务商为DnsPod。记录值可以是IP或域名,以点号结尾。

二、Dig简介

Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。

三、语法

dig [@server] [-b address] [-c class] [-f filename] [-k filename] [ -n ][-p port#] [-t type] [-x addr] [-y name:key] [name] [type] [class] [queryopt...]
dig [-h]
dig [global-queryopt...] [query...]

描述
dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具。它执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为 DNS 问题的故障诊断,因为它灵活性好、易用、输出清晰。虽然通常情况下 dig 使用命令行参数,但它也可以按批处理模式从文件读取搜索请求。不同于早期版本,dig 的 BIND9 实现允许从命令行发出多个查询。除非被告知请求特定域名服务器,dig 将尝试 /etc/resolv.conf 中列举的所有服务器。当未指定任何命令行参数或选项时,dig 将对“.”(根)执行 NS 查询。

标志
-b address 设置所要询问地址的源 IP 地址。这必须是主机网络接口上的某一合法的地址。
-c class 缺省查询类(IN for internet)由选项 -c 重设。class 可以是任何合法类,比如查询 Hesiod 记录的 HS 类或查询 CHAOSNET 记录的 CH 类。
-f filename 使 dig 在批处理模式下运行,通过从文件 filename 读取一系列搜索请求加以处理。文件包含许多查询;每行一个。文件中的每一项都应该以和使用命令行接口对 dig 的查询相同的方法来组织。
-h 当使用选项 -h 时,显示一个简短的命令行参数和选项摘要。
-k filename 要签署由 dig 发送的 DNS 查询以及对它们使用事务签名(TSIG)的响应,用选项 -k 指定 TSIG 密钥文件。
-n 缺省情况下,使用 IP6.ARPA 域和 RFC2874 定义的二进制标号搜索 IPv6 地址。为了使用更早的、使用 IP6.INT 域和 nibble 标签的 RFC1886 方法,指定选项 -n(nibble)。
-p port# 如果需要查询一个非标准的端口号,则使用选项 -p。port# 是 dig 将发送其查询的端口号,而不是标准的 DNS 端口号 53。该选项可用于测试已在非标准端口号上配置成侦听查询的域名服务器。
-t type 设置查询类型为 type。可以是 BIND9 支持的任意有效查询类型。缺省查询类型是 A,除非提供 -x 选项来指示一个逆向查询。通过指定 AXFR 的 type 可以请求一个区域传输。当需要增量区域传输(IXFR)时,type 设置为 ixfr=N。增量区域传输将包含自从区域的 SOA 记录中的序列号改为 N 之后对区域所做的更改。
-x addr 逆向查询(将地址映射到名称)可以通过 -x 选项加以简化。addr 是一个以小数点为界的 IPv4 地址或冒号为界的 IPv6 地址。当使用这个选项时,无需提供 name、class 和 type 参数。dig 自动运行类似 11.12.13.10.in-addr.arpa 的域名查询,并分别设置查询类型和类为 PTR 和 IN。
-y name:key 您可以通过命令行上的 -y 选项指定 TSIG 密钥;name 是 TSIG 密码的名称,key 是实际的密码。密码是 64 位加密字符串,通常由 dnssec-keygen(8)生成。当在多用户系统上使用选项 -y 时应该谨慎,因为密码在 ps(1)的输出或 shell 的历史文件中可能是可见的。当同时使用 dig 和 TSCG 认证时,被查询的名称服务器需要知道密码和解码规则。在 BIND 中,通过提供正确的密码和 named.conf 中的服务器声明实现。

参数
global-queryopt... 全局查询选项(请参阅多个查询)。
查询 查询选项(请参阅查询选项)。
查询选项
dig 提供查询选项号,它影响搜索方式和结果显示。一些在查询请求报头设置或复位标志位,一部分决定显示哪些回复信息,其它的确定超时和重试战略。每个查询选项被带前缀(+)的关键字标识。一些关键字设置或复位一个选项。通常前缀是求反关键字含义的字符串 no。其他关键字分配各选项的值,比如超时时间间隔。它们的格式形如 +keyword=value。查询选项是:
+[no]tcp
查询域名服务器时使用 [不使用] TCP。缺省行为是使用 UDP,除非是 AXFR 或 IXFR 请求,才使用 TCP 连接。
+[no]vc
查询名称服务器时使用 [不使用] TCP。+[no]tcp 的备用语法提供了向下兼容。 vc 代表虚电路。
+[no]ignore
忽略 UDP 响应的中断,而不是用 TCP 重试。缺省情况运行 TCP 重试。
+domain=somename
设定包含单个域 somename 的搜索列表,好像被 /etc/resolv.conf 中的域伪指令指定,并且启用搜索列表处理,好像给定了 +search 选项。
+[no]search
使用 [不使用] 搜索列表或 resolv.conf 中的域伪指令(如果有的话)定义的搜索列表。缺省情况不使用搜索列表。
+[no]defname
不建议看作 +[no]search 的同义词。
+[no]aaonly
该选项不做任何事。它用来提供对设置成未实现解析器标志的 dig 的旧版本的兼容性。
+[no]adflag
在查询中设置 [不设置] AD(真实数据)位。目前 AD 位只在响应中有标准含义,而查询中没有,但是出于完整性考虑在查询中这种性能可以设置。
+[no]cdflag
在查询中设置 [不设置] CD(检查禁用)位。它请求服务器不运行响应信息的 DNSSEC 合法性。
+[no]recursive
切换查询中的 RD(要求递归)位设置。在缺省情况下设置该位,也就是说 dig 正常情形下发送递归查询。当使用查询选项 +nssearch 或 +trace 时,递归自动禁用。
+[no]nssearch
这个选项被设置时,dig 试图寻找包含待搜名称的网段的权威域名服务器,并显示网段中每台域名服务器的 SOA 记录。
+[no]trace
切换为待查询名称从根名称服务器开始的代理路径跟踪。缺省情况不使用跟踪。一旦启用跟踪,dig 使用迭代查询解析待查询名称。它将按照从根服务器的参照,显示来自每台使用解析查询的服务器的应答。
+[no]cmd
设定在输出中显示指出 dig 版本及其所用的查询选项的初始注释。缺省情况下显示注释。
+[no]short
提供简要答复。缺省值是以冗长格式显示答复信息。
+[no]identify
当启用 +short 选项时,显示 [或不显示] 提供应答的 IP 地址和端口号。如果请求简短格式应答,缺省情况不显示提供应答的服务器的源地址和端口号。
+[no]comments
切换输出中的注释行显示。缺省值是显示注释。
+[no]stats
该查询选项设定显示统计信息:查询进行时,应答的大小等等。缺省显示查询统计信息。
+[no]qr
显示 [不显示] 发送的查询请求。缺省不显示。
+[no]question
当返回应答时,显示 [不显示] 查询请求的问题部分。缺省作为注释显示问题部分。
+[no]answer
显示 [不显示] 应答的回答部分。缺省显示。
+[no]authority
显示 [不显示] 应答的权限部分。缺省显示。
+[no]additional
显示 [不显示] 应答的附加部分。缺省显示。
+[no]all
设置或清除所有显示标志。
+time=T
为查询设置超时时间为 T 秒。缺省是5秒。如果将 T 设置为小于1的数,则以1秒作为查询超时时间。
+tries=A
设置向服务器发送 UDP 查询请求的重试次数为 A,代替缺省的 3 次。如果把 A 小于或等于 0,则采用 1 为重试次数。
+ndots=D
出于完全考虑,设置必须出现在名称 D 的点数。缺省值是使用在 /etc/resolv.conf 中的 ndots 语句定义的,或者是 1,如果没有 ndots 语句的话。带更少点数的名称被解释为相对名称,并通过搜索列表中的域或文件 /etc/resolv.conf 中的域伪指令进行搜索。
+bufsize=B
设置使用 EDNS0 的 UDP 消息缓冲区大小为 B 字节。缓冲区的最大值和最小值分别为 65535 和 0。超出这个范围的值自动舍入到最近的有效值。
+[no]multiline
以详细的多行格式显示类似 SOA 的记录,并附带可读注释。缺省值是每单个行上显示一条记录,以便于计算机解析 dig 的输出。
多条查询
dig 的 BIND9 支持在命令行上指定多个查询(支持 -f 批处理文件选项的附加功能)。每条查询可以使用自己的标志位、选项和查询选项。
在这种情况下,在上面描述的命令行语法中,每条查询自变量代表一个个别查询。每一条由任意标准选项和标志、待查询名称、可选查询类型和类以及任何适用于该查询的查询选项。
也可以使用对所有查询均有效的查询选项全局集合。全局查询选项必须位于命令行上第一个名称、类、类型、选项、标志和查询选项的元组之前。任何全局查询选项(除了 +[no]cmd 选项)可以被下面的查询特别选项重设。

例如:

1

dig +qr www.baidu.com any -x 127.0.0.1 isc.org ns +noqr

显示 dig 如何从命令行出发进行三个查询:一个针对 www.baidu.com的任意查询、一个 127.0.0.1 的逆向查询,以及一个 baidu.com 的 NS 记录查询。应用了 +qr 的全局查询选项,以便 dig 显示进行每条查询的初始查询。最后那个查询有一个本地查询选项 +noqr,表示 dig 在搜索 baidu.com 的 NS 记录时不显示初始查询。

 

默认输出

[root&#64;Gin scripts]# dig www.cnblogs.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> www.cnblogs.com
;; global options: &#43;cmd##Dig的部分输出告诉我们一些有关于它的版本信息(version 9.2.3)和全局的设置选项&#xff0c;如果&#43;nocmd在命令行下是第一个参数的话&#xff0c;那么这部分输出可以通过加&#43;nocmd的方式查询出来;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41440
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0##在这里&#xff0c;Dig告诉我们一些从DNS返回的技术信息&#xff0c;这段信息可以用选项 &#43;no]comments来控制显示&#xff0c;但是小心&#xff0c;禁止掉comments也可能关闭一些其它的选项。;; QUESTION SECTION:
;www.cnblogs.com. IN A##在这个查询段中&#xff0c;Dig显示出我们查询的输出&#xff0c;默认的查询是查询A记录&#xff0c;你可以显示或者禁止掉这些用&#43;[no]question选项;; ANSWER SECTION:
www.cnblogs.com. 349 IN A 42.121.252.58##最后&#xff0c;我们得到我们查询的结果。www.isc.org 的地址是204.152.184.8&#xff0c;我不知道为什么你们更喜欢过滤掉这些输出&#xff0c;但是你可以用&#43;[no]answer保留这些选项。;; Query time: 149 msec
;; SERVER: 202.106.0.20#53(202.106.0.20)
;; WHEN: Sat Feb 4 15:26:43 2017
;; MSG SIZE rcvd: 49##最后一段默认输出包含了查询的统计数据&#xff0c;可以用&#43;[no]stats保留。

查找baidu.com的A记录

[root&#64;Gin scripts]# dig baidu.com A &#43;noall &#43;answer; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> baidu.com A &#43;noall &#43;answer
;; global options: &#43;cmd
baidu.com. 555 IN A 180.149.132.47
baidu.com. 555 IN A 123.125.114.144
baidu.com. 555 IN A 111.13.101.208
baidu.com. 555 IN A 220.181.57.217

查找baidu.com MX记录的列表

[root&#64;Gin scripts]# dig baidu.com MX &#43;noall &#43;answer; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> baidu.com MX &#43;noall &#43;answer
;; global options: &#43;cmd
baidu.com. 6481 IN MX 20 mx1.baidu.com.
baidu.com. 6481 IN MX 20 jpmx.baidu.com.
baidu.com. 6481 IN MX 20 mx50.baidu.com.
baidu.com. 6481 IN MX 10 mx.n.shifen.com.

查找baidu.com的权威DNS

[root&#64;Gin scripts]# dig baidu.com NS &#43;noall &#43;answer; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> baidu.com NS &#43;noall &#43;answer
;; global options: &#43;cmd
baidu.com. 66552 IN NS ns4.baidu.com.
baidu.com. 66552 IN NS ns2.baidu.com.
baidu.com. 66552 IN NS ns3.baidu.com.
baidu.com. 66552 IN NS dns.baidu.com.
baidu.com. 66552 IN NS ns7.baidu.com.

 


推荐阅读
author-avatar
神圣的全日制
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有