Dig 命令讲解

Linux常用命令之dig命令详解 `dig` 是一个非常灵活且强大的DNS查询工具,适用于各种复杂的查询需求。 阅读详情
原文地址:https://www.jianshu.com/p/71f61652ec23
DNS 命令输出格式

输入 dig rss.newyingyong.cn 命令,通常返回

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49814
  ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2,     ADDITIONAL: 17

  ;; QUESTION SECTION:
;rss.newyingyong.cn.            IN      A

;; ANSWER SECTION:
rss.newyingyong.cn.     600     IN      A       139.129.23.162

;; AUTHORITY SECTION:
newyingyong.cn.         86398   IN      NS      dns10.hichina.com.
newyingyong.cn.         86398   IN      NS      dns9.hichina.com.

;; ADDITIONAL SECTION:
dns9.hichina.com.       3490    IN      A       140.205.81.15
dns9.hichina.com.       3490    IN      A       140.205.81.25

;; Query time: 5 msec
;; SERVER: 10.202.72.116#53(10.202.72.116)
;; WHEN: Sat Jul 01 11:00:38 CST 2017
;; MSG SIZE  rcvd: 369

各个返回参数说明下:

  1. status: NOERROR 表示查询没有什么错误,Query time 表示查询完成时间
  2. SERVER: 10.202.72.116#53(10.202.72.116),表示本地 DNS 服务器地址和端口号
  3. QUESTION SECTION 表示需要查询的内容,这里需要查询域名的 A 记录
  4. ANSWER SECTION 表示查询结果,返回 A 记录的 IP 地址。600 表示本次查询缓存时间,在 600 秒本地 DNS 服务器可以直接从缓存返回结果
  5. AUTHORITY SECTION 表示从那台 DNS 服务器获取到具体的 A 记录信息。记住本地 DNS 服务器只是查询,而 AUTHORITY SECTION 返回的服务器是权威 DNS 服务器,由它来维护 rss.newyingyong.cn 的域名信息。返回的 DNS 记录类型是 NS,对应的名称是 dns10.hichina.com.,dns9.hichina.com.。
  6. ADDITIONAL SECTION 表示 NS 服务器对应的 IP 地址,这些 IP 地址对应的服务器安装了 BIND 软件。
DNS 服务器记录类型

默认 dig rss.newyingyong.cn 返回的是 A 记录类型,其他类型还包括 MX、NS、SOA 等,我们可以使用 dig -t a/mx/soa/mx rss.newyingyong.cn 进行查询。

  1. dig -t a www.weibo.com +noall +answer
;; global options: +cmd
www.weibo.com.          21      IN      A       180.149.134.142
www.weibo.com.          21      IN      A       180.149.134.141

其中 +noall +answer 表示返回简短信息,这里表示查询 A 记录。
注意,这里返回 2 个 A 记录,这相当于 DNS 均衡,比如浏览器客户端查询 www.weibo.com 域名得到两个 A 记录,然后连接其中的一个 IP 地址对应的 WEB 服务器,假如发现连接不上,可以使用另外一个地址连接。
比如在万网域名管理后台,可以给同一个域名添加两条 A 记录,相当于实现了域名负载均衡。

  1. dig -t ns weibo.com

注意假如用户输入 dig -t ns www.weibo.com 是查询不出 NS 任何记录的,原因在于只有一级域名(或者顶级域名)才有 NS 记录,通过 FQDN 是查询不出 NS 信息的,所以要输入 dig -t ns weibo.com ,返回:

;; ANSWER SECTION:
weibo.com.              9962    IN      NS      ns3.sina.com.cn.
weibo.com.              9962    IN      NS      ns2.sina.com.cn.
weibo.com.              9962    IN      NS      ns1.sina.com.cn.
weibo.com.              9962    IN      NS      ns4.sina.com.
weibo.com.              9962    IN      NS      ns4.sina.com.cn.
weibo.com.              9962    IN      NS      ns3.sina.com.

;; ADDITIONAL SECTION:
ns1.sina.com.cn.        14162   IN      A       202.106.184.166
ns2.sina.com.cn.        14906   IN      A       61.172.201.254
ns3.sina.com.           26496   IN      A       61.172.201.254
ns3.sina.com.cn.        9714    IN      A       123.125.29.99
ns4.sina.com.           24154   IN      A       123.125.29.99
ns4.sina.com.cn.        9733    IN      A       121.14.1.22

微博的权威服务器是微博自己建立的,有 6 个名称和 IP 地址:

有这么多地址,主要是防止单点问题,比如某个 NS 服务器连接不上,可以连接其他 NS 服务器
上述的 NS IP 地址属于不同的运营商,不同的运营商可能会查询对应的 NS 服务器,原因就是加速查询。

  1. dig -t a www.baidu.com
;; ANSWER SECTION:
www.baidu.com.          691     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       271     IN      A       115.239.211.112
www.a.shifen.com.       271     IN      A       115.239.210.27

这里返回的 CNAME 表示查询 www.baidu.com 的信息其实是 www.a.shifen.com 返回的 A 记录。
CNAME 的存在原因:

某个域名(A)可能会下线,但是这些域名可能还是被访问到,为了避免不友好的提示,可以将这个域名 cname 到另外个域名(B),这样访问 B 相当于返回 A。
很多公司项目可能有很多个域名,但是指定的 IP 地址可能每几个,一旦 IP 地址变化,可能要修改每个域名的 DNS 信息。假如这些域名 cname 到某个特定的域名,那么修改域名信息的时候就会非常方便。

  1. dig -t mx newyingyong.cn
;; QUESTION SECTION:
;newyingyong.cn.                        IN      MX

;; ANSWER SECTION:
newyingyong.cn.         600     IN      MX      10 mx.sina.net.

返回 MX 记录,注意这里不能输入 dig -t mx rss.newyingyong.cn ,因为 MX 记录一般配置在一级域名下。
DNS 迭代查询的具体流程
对于客户端(比如浏览器)查询本地域名 DNS 信息的时候,是递归查询的方式。而本地 DNS 服务器为了获取到某个域名的 DNS 信息,会使用迭代的方式(一步步询问)。通过 dig +trace blog.newyingyong.cn 来进行了解

;; global options: +cmd
.                       18535   IN      NS      h.root-servers.net.
.                       18535   IN      NS      m.root-servers.net.
.                       18535   IN      NS      i.root-servers.net.
.                       18535   IN      NS      d.root-servers.net.
.                       18535   IN      NS      a.root-servers.net.
.                       18535   IN      NS      b.root-servers.net.
;; Received 1097 bytes from 10.202.72.118#53(10.202.72.118) in 53 msec

cn.                     172800  IN      NS      d.dns.cn.
cn.                     172800  IN      NS      e.dns.cn.
cn.                     172800  IN      NS      b.dns.cn.
cn.                     172800  IN      NS      a.dns.cn.
cn.                     172800  IN      NS      c.dns.cn.
;; Received 646 bytes from 192.36.148.17#53(i.root-servers.net) in 150 msec

newyingyong.cn.         86400   IN      NS      dns10.hichina.com.
newyingyong.cn.         86400   IN      NS      dns9.hichina.com.
;; Received 589 bytes from 203.119.29.1#53(e.dns.cn) in 37 msec

blog.newyingyong.cn.    600     IN      A       139.129.23.162
;; Received 64 bytes from 106.11.211.55#53(dns9.hichina.com) in 19 ms

本地 DNS 服务器首先查询根域名服务器(10.202.72.118),得到 13 组根域名服务器中的一个,并返回对应某个根域名的 NS 服务器。
根域名NS 服务器(192.36.148.17)说并不知道 blog.newyingyong.cn 顶级域名的具体信息,你去问 .cn 顶级域名服务器去把,并返回 .cn 域名服务器的 NS 记录。
.cn 域名服务器(203.119.29.1)说,我也不知道 blog.newyingyong.cn 的信息,但是我知道是阿里云管理的,并返回阿里云服务器的 NS 地址。
阿里云 DNS 服务器(106.11.211.55)说,这个域名确实是我管理的,最终返回 blog.rss.newyingyong.cn 的 A 记录(139.129.23.162)。

DNS 缓存

假如 DNS 服务器每次都需要迭代或递归查询上一级的 DNS 服务器,那么 DNS 可能就不堪重负,考虑到域名的 DNS 信息不会频繁的修改,所以每一级中的 DNS 服务器都会缓存结果(包括浏览器这样的客户端也会缓存 DNS 结果)。
缓存带来的弊端可能就是 DNS 信息可能不是最新的,比如某个域名管理员修改了某个域名的 A 记录,由于每一级的 DNS 服务器都有缓存,所以最后客户端拿到的结果不是最新的,为了获取到最新的结果,可以直接向权威域名服务器进行信息查询。
比如 blog.rss.newyingyong.cn 的域名是由 dns9.hichina.com.(106.11.211.55)管理的,可以直接通过 dig @106.11.211.55 -t a newyingyong.cn 或者 dig @dns9.hichina.com -t a newyingyong.cn 获取最新 A 记录。
另外你也可以不查询本地 DNS 服务器获取信息,比如可以使用 8.8.8.8 Google Public DNS 进行查询,dig @8.8.8.8 -t a newyingyong.cn 。

Linux dig命令常见用法 DIG命令(Domain Information Groper命令)是常用的域名查询工具,通过此命令,你可以实现域名查询和域名问题的定位,对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说,它是一个非常常见且有用的工具。 阅读详情

相关推荐

深入了解dig:DNS查询的命令行利器

dig是一个广泛使用的网络管理命令行工具,主要用于查询DNS记录。通过dig,可以获取到域名、邮件交换(MX)、名称服务器(NS)等信息。它提供了一种快速和方便的方式来直接与DNS服务器进行交互,帮助用户诊断DNS问题,或进行DNS相关数据的采集。dig命令提供了许多选项,以便用户能够灵活地控制查询的各个方面。常规选项通常用于调整输出格式或执行简单的查询任务。例如,"+short"选项可以提供简短的查询结果输出,这对于脚本或自动化工具来说非常有用。

weixin_35755188的博客 1374

常用dig命令

检查网络的小技巧 dig常用命令集+noall表示隐藏所有内容+answer 表示显示响应内容+[no]question,+[no]answer,+[no]authority,+[no]stat,+short# 直接查询根DNS dig # 指定解析服务器为8.8.8.8 dig @8.8.8.8 ite.me # 查询DNS记录 dig -t NS ite.me +noall +answer...

jinkun2010的博客 1106

OSMDroid 切换地图不更新的问题

用OSMDroid加载Google地图的时候 需要有按钮切换不同图层的地图,如果发现调用了mMapView.setTileSource(ITileSource aTileSource)方法的时候发现地图View没有更新的话,可能是因为两个实例化TileSource对象其子类BitmapTileSourceBase这个类的aName成员变量值一样导致的地图在setTileSource出现不更新问题,...

godoge的博客 1039

dig命令详解

dig命令

Summer的博客 5159

Altium Concord Pro 的应用范围,安装,和使用范围

Altium Concord Pro 的应用范围,安装,和使用范围。保证满足两者软件的最低安装要求。 Altium Concord Pro 是配合Digapcb,和MCAD,Altium 和相应机械设计软件的基础和交换桥梁

hanzhaos的博客 1120

基于Android平台下的健康管理APP/基于android的健康管理系统

随着网络科技的发展,移动智能终端逐渐走进人们的视线,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。因此,关键应用程序的开发成为影响移动智能终端普及的重要因素,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。Android技术作为当前最流行的操作平台,自然也存在着大量的应用服务需求。 本课题研究的是基于Android技术平台的健康管理APP,开发这款健康管理APP主要是为了帮助用户可以不用约束时间与地点进行所需信息。本文详细讲述了健康管理APP的界面设计及使用,主要包括界面的

m0_73706453的博客 1437

dig命令的介绍与使用

dig: 在Windows或者是Linux系统中自身都没有 dig(domain information group)命令,dig命令是Bind中的一部分,所以我们要想使用dig命令,首先就要安装

ZERONE的博客 2万+

海康SDK实战:如何从PS流中提取H264裸流并实现前端播放(附完整代码)

本文详细介绍了如何利用海康SDK从PS流中提取H264裸流,并构建无插件前端播放的完整链路。通过解析PS流结构、提取H264 ES流,结合WebSocket实时传输与WFS.js前端播放器,实现了低延迟、高可控性的视频流处理方案,为开发者提供了从数据源到前端渲染的实战代码与清晰指南。

weixin_29051811的博客 476

Linux命令之dig命令实例讲解

1.查看域名的A记录 # dig yahoo.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> yahoo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER< 2.查看域名的ip # dig yah...

weixin_33826609的博客 157

Android 车载开发深度解析:CarPropertyManager 核心机制与实践指南

摘要: Android Automotive OS中,CarPropertyManager作为车载信息娱乐系统的核心组件,连接应用层与车辆硬件(如车速、油量等),其架构基于分层设计(App→CarAPI→VHAL→ECU),采用发布-订阅模式实现高效数据通信。通过HIDL/AIDL跨进程交互及共享内存优化,延迟可降至2ms以下。安全机制包括分级权限控制(VISIBLE/PROTECTED/SYSTEM_RESTRICTED)和HMAC防篡改。开发时需注意监听器生命周期管理、事件合并降负载及低功耗适配。

郑伟强dev的专栏 344

24届数字IC设计/验证秋招总结贴——先看这个

为方便快速进行查找该专栏的内容,将所有内容链接均放在此篇博客中整理不易,欢迎订阅~~

qq_42135020的博客 8413

Linux命令:使用dig命令解析域名

Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息。 dig的全称是 (domain information groper)。它是一个用来灵活探测DNS的工具。它会打印出DNS name server的回应。 一、dig命令用法 dig [@server] [-b address] [-c class] [-f file

不以物喜不以己悲 5万+

FC7300 SPI MCAL配置引导

Example - QMI8A01z外设:Example - QMI8A01z外设:

舊梦的博客 257

深入解析DNS查询:从dig命令看域名解析的全过程

在互联网世界中,域名系统(DNS,Domain Name System)扮演着至关重要的角色。它负责将人类可读的域名(如 `example.com`)转换为机器可识别的IP地址(如 `93.184.216.34`),使得网络通信成为可能。 在日常运维和网络故障排查中,`dig`(Domain Information Groper)是一个强大的DNS查询工具,能够提供详细的域名解析信息。本文将通过一个实际的 `dig` 查询案例,深入解析DNS查询的各个部分,帮助读者理解DNS的工作原理,并掌握如何使

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 1941

第3.4章 机器人第三方库实战总结(四):G2O优化库从入门到实战(附SLAM实例代码)

自定义边同样是满足复杂应用需求的重要手段。自定义边时,需要明确边所连接的顶点类型以及边所表示的误差项的计算方式。假设我们要定义一条边,用于约束两个上述自定义顶点之间的相对位姿和传感器偏移量关系。我们可以这样定义边类:public:// 计算误差// 计算雅可比矩阵// 读盘和存盘函数,这里暂不实现。

行知SLAM 358

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

dig 命令

dig命令详解

m0_63797448的博客 2300

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

dig详解

dig是一个linux/unix下用于查看域名详情的小工具,类似于 nslookup ,但比 nslookup 的功能更强大,显示的信息更全面。而 windows 系统下只带有 nslookup 这个命令,下面是在 windows 系统下安装 dig 命令的方法。 首先下载 dig 包,下载地址是:http://members.shaw.ca/nicholas.fong/dig/dig-fi...

ishuang的专栏 762

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

linux下安装使用dig命令

有时候用linux系统会发现没有dig命令,这时候就需要安装一下。 ubuntu系 apt-get install dnsutils centos系 yum install bind-utils dig命令大多时候可以取代nslookup 简明使用,只会输出A记录(写脚本的时候容易获取ip地址) dig cmsky.com +short 只输出mx记录,简明使用 di...

youcijibi的博客 7784

Linux系统之dig命令的基本使用

Linux系统之dig命令的基本使用

jks212454的博客 2859

dig 简明教程

哈喽大家好,我是咸鱼不知道大家在日常学习或者工作当中用dig命令多不多dig是 Domain Information Groper 的缩写,对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说,它是一个非常常见且有用的工具。无论是简单的 DNS 解析查找还是更高级的故障排除和分析,dig都能够胜任那么今天咸鱼将和大家一起了解一下dig命令的一些常见用法以及示例除了dig命令,还有一种跟dig功能是差不多的 命令nslookup。

s_alted的博客 462

java 如何执行dig 命令_如何直接在cmd下执行Dig命令

简介Thedig(域信息搜索器)命令是用于查询DNS名称服务器的灵活工具. 它执行DNS搜索,并显示从请求的名称服务器返回的答复. 由于DNS的灵活性,易用性和清晰的输出,大多数DNS管理员都使用dig来解决DNS问题. 尽管dig通常使用命令行参数,但它也可以以批处理方式从文件读取搜索请求. 与早期版本不同,dig的BIND9实现允许从命令行发出多个查询. 除非被告知请求特定的名称服务器,否则d...

weixin_39733146的博客 563

DNS检测命令dig工具的安装方法

但是这个命令,不是系统自动的,或是说,一般的系统安装,默认是没有安装到该软件包的,也就是没有该命令了。dig命令是bind-utils软件里其中一个命令,所以只要安装该软件包即可,如下。执行完如果没出错,说明安装成功,就可以正常使用了。不过要安装也简单,要用时使用yum安装下即可。关于dig命令的使用方法,可见。

wdlinux的专栏 1156

DNS 简介及 dig 命令详解

dig 用于查询 DNS 名称服务器以获取有关的网络信息。下文首先介绍 DNS 的相关背景知识,随后再讲解 dig 命令的使用方法。 一、DNS 解析过程 DNS(Domain Name System)解析过程是一个将域名解析为 IP 地址的过程。以下是 DNS 完整的解析过程: 1. 本地解析 用户在浏览器中输入一个 URL,如 <www.baidu.com> ,首先,计算机会在本...

weixin_42015351的博客 1157
上一篇: DNS讲解
下一篇: 渗透测试命令系列之 - netdiscover
光速之年
博客等级 码龄12年 31粉丝 97原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值