百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

linux 命令dig

haoteby 2025-01-18 19:58 1 浏览

Linux下解析域名除了使用nslookup之外,可以使用dig命令来解析域名,dig命令可以得到更多的域名信息。

dig的全称是 (domain information groper)。它是一个用来灵活探测DNS的工具。它会打印出DNS name server的回应。

一、dig命令用法

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 查询。

二、dig命令选项

-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 中的服务器声明实现。

三、查询选项

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 选项)可以被下面的查询特别选项重设。例如:

[root@RHEL6 ~]#dig +qr www.lampbo.org any -x 127.0.0.1 isc.org ns +noqr

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

五、dig典型用法

dig 调用类似:

[root@RHEL6 ~]#dig @server name type

其中:

server 待查询名称服务器的名称或 IP 地址。可以是用点分隔的 IPv4 地址或用冒号分隔的 IPv6 地址。当由主机提供服务器参数时,dig 在查询域名服务器前先解析那个名称。如果没有服务器参数可以提供,dig 参考 /etc/resolv.conf,然后查询列举在那里的域名服务器。显示来自域名服务器的应答。

name 将要查询的资源记录的名称。

type 显示所需的查询类型 - ANY、A、MX、SIG,以及任何有效查询类型等。如果不提供任何类型参数,dig 将对纪录 A 执行查询。

6、示例

(1)、显示13个根域服务器

internet上有13个根域服务器,使用不加参数的dig命令显示这些服务器信息

[root@RHEL6 ~]#dig ; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63379 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 126666 IN NS m.root-servers.net. . 126666 IN NS f.root-servers.net. . 126666 IN NS b.root-servers.net. . 126666 IN NS j.root-servers.net. . 126666 IN NS c.root-servers.net. . 126666 IN NS k.root-servers.net. . 126666 IN NS e.root-servers.net. . 126666 IN NS g.root-servers.net.

. 126666 IN NS i.root-servers.net. . 126666 IN NS h.root-servers.net. . 126666 IN NS l.root-servers.net. . 126666 IN NS d.root-servers.net. . 126666 IN NS a.root-servers.net.

;; ADDITIONAL SECTION: a.root-servers.net. 557725 IN A 198.41.0.4 b.root-servers.net. 490757 IN A 192.228.79.201 c.root-servers.net. 494796 IN A 192.33.4.12 d.root-servers.net. 604214 IN A 128.8.10.90 e.root-servers.net. 491068 IN A 192.203.230.10 f.root-servers.net. 492932 IN A 192.5.5.241 g.root-servers.net. 400973 IN A 192.112.36.4 h.root-servers.net. 492311 IN A 128.63.2.53 i.root-servers.net. 349084 IN A 192.36.148.17 j.root-servers.net. 492099 IN A 192.58.128.30 k.root-servers.net. 4k.root-servers.net. 403770 IN A 193.0.14.129 l.root-servers.net. 308080 IN A 199.7.83.42 m.root-servers.net. 217613 IN A 202.12.27.33 ;; Query time: 12 msec ;; SERVER: 202.96.69.38#53(202.96.69.38) ;; WHEN: Fri May 25 22:45:50 2012 ;; MSG SIZE rcvd: 436


解析过程说明:

· DNS客户端发包到DNS服务端请求www.baidu.com的IP地址,由于有一条CNAME记录;

· DNS客户端会访问www.a.shifen.com的域名服务器(相当于是访问www.baidu.com的域名服务器);

· 在这里www.a.shifen.com的域名服务器是一个负责DNS查询流量均衡的调度器,负责把DNS请求调度到ns5.a.shifen.com、ns6.a.shifen.com等域名服务器上

· 最后这些标记了NS的域名服务器会把百度的IP返回给DNS客户端

· 然后我们就得到了www.baidu.com的IP地址

(3)使用 +[no]short 运行简短输出

[root@RHEL6 ~]#dig sohu.com @202.102.134.68 -p 53 -t MX +short 10 sohumx.h.a.sohu.com. 5 sohumx1.sohu.com.


查找PTR记录?

可以用 -x的选项查找IP地址的主机名。

$ dig -x 204.152.184.167 +short

mx-1.isc.org.

查询一个不同的命名服务器?

查询命令如下:

dig @ns1.google.com www.google.com

我们可以查询什么?

Dig可以让你有效地查询DNS,最常用的查询是A记录,TXT(文本注释),MX记录,NS记录,或者任意综合查询。

查找yahoo.com的A记录:(此处一定是域而不是主机,如我公司为xinpindao.com)

dig yahoo.com A +noall +answer


查找yahoo.com MX记录的列表:

dig yahoo.com MX +noall +answer


查找yahoo.com的权威DNS:

dig yahoo.com NS +noall +answer

查询上面所有的记录:

dig yahoo.com ANY +noall +answer

下面是 dig 的一些比较常用的命令:

# dig 最基本的用法

dig @server qianlong.com

# 用 dig 查看 zone 数据传输

dig @server qianlong.com AXFR

# 用 dig 查看 zone 数据的增量传输

dig @server qianlong.com IXFR=N

# 用 dig 查看反向解析

dig -x 124.42.102.203 @server

# 查找一个域的授权 dns 服务器

dig qianlong.com +nssearch

# 从根服务器开始追踪一个域名的解析过程

dig qianlong.com +trace

# 查看你使用的是哪个 F root dns server

dig +norec @F.ROOT-SERVERS.NET HOSTNAME.BIND CHAOS TXT

# 查看 bind 的版本号

dig @bind_dns_server CHAOS TXT version.bind

dig 查询子网

dig @118.24.9.73 lg-9svy1cyf.gaapqcloud.com +subnet=198.44.1.2/20

相关推荐

简单Labview实操案例

有几位条友私信我说Labview是怎么学的,怎么才能学好Labview,今天给大家简单介绍一下,如果想学上位机,Labview是相对来说比较容易上手的,而且开发速度也比较快,但是运行时候比较吃内存,...

关于LabVIEW用于仪器测控的自动测试程序的程序框架的选择问题!

有很长一段时间没有在公众号平台上输出、总结关于LabVIEW的知识文字内容了!主要是这段时间自己本职工作任务甚为繁重,加上各种家庭事宜的牵绊,耗费了过多的时间和精力,也就无力及时更新了。今天是端午节假...

LabVIEW编程基础:分割条控件的使用

1、分割条控件简介同其它高级编程语言类似,在LabVIEW中分割条控件也是界面设计中常用的一种控件元素,利用分割条控件可以将前面板划分为多个独立的区域,每个区域都是一个单独的窗格,这些窗格具有前面板的...

csgo一直显示正在连接到csgo网络怎么办?三招帮你解决

  CSGO是一款射击类的游戏,它的全名叫反恐精英:全球攻势,是一款由VALVE与HiddenPathEntertainment合作开发、ValveSoftware发行的第一人称射击游戏,相信很...

cs1.6没有bot怎么办

Hi~大家好啊,这里是聚合游戏,每天为你分享游戏相关的内容,喜欢的快来关注哟~...

《反恐精英:全球攻势2》 漏洞暴露玩家的IP地址

#文章首发挑战赛#据报道,在全球知名的电子游戏——CS2(《反恐精英:全球攻势2》)中存在一个HTML注入漏洞,这个漏洞被广泛利用来在游戏中注入图片并获取其他玩家的IP地址。...

《电子宠物》《007黄金眼》《雷神之锤》入选世界电子游戏名人堂

世界电子游戏名人堂5月8日公布了新的四位入选者《防卫者》《电子宠物》《007黄金眼》和《雷神之锤》,以向改变游戏行业规则的经典游戏致敬。世界电子游戏名人堂每年都会表彰那些具有持久热度并对视频游戏行业或...

V社修复《反恐精英2》游戏漏洞:可抓取玩家IP地址、发起XSS攻击

IT之家12月12日消息,Valve旗下《反恐精英2》游戏被曝光新的安全漏洞,攻击者通过注入恶意代码来抓取玩家的IP地址,并能对同一游戏大厅中的所有玩家发起跨站脚本攻击(XSS)。攻击...

粉丝自制《CS》1.6重制版将于2025年登陆Steam

基于Valve官方起源引擎SDK,由多位“CSPromod”粉丝项目前开发人员从头构建的《反恐精英》1.6版本重制版《CS:Legacy》日前宣布将于2025年在Steam发布。开发团...

知名网游源代码泄漏 ,外挂潮将来?

SteamDatabase近日发布消息称Valve旗下游戏《反恐精英:全球攻势》(CS:GO)与《军团要塞2》(TF2)的源代码疑遭泄露。据了解,游戏源代码如果泄露的话,黑客可以更为轻松地开发出外挂,...

Pandas每日函数学习之apply函数

...

求斐波那契数列(Fibonacci Numbers)算法居然有9种,你知道几种?

ByLongLuo斐波那契数列...

三维基因组:Loop结构 差异分析(2)

通过聚合峰分析进行可视化既然已经找出了“WT”和“FS”条件之间的差异loop结构,就可以利用聚合峰分析(APA)来直观地展示loop结构调用的质量。APA是一种以Hi-C数据中的中心loop像...

用Excel制作动态图表(动态名称法)

动态图表也称交互式图表,指图表的内容可以随用户的选择而变化,是图表分析中比较高级的形式。使用动态图表能够突出重点数据,避免被其他不需要的数据干扰,从而提高数据分析效率。一个好的动态图表,可以让人从大量...

Prometheus PromQL语法简介

...