dig

dig(Domain Information Groper)是一个用于 DNS 查询的命令行工具,广泛用于查看域名系统的相关信息。

基本用法

# 查询域名的 A 记录(IPv4 地址):
dig example.com # 查询指定 DNS 服务器的 A 记录:
dig @dns-server-ip example.com # 指定查询记录类型(例如,查询 MX 记录):
dig example.com MX # 递归查询:
dig +recurse example.com # 反向 DNS 查找,也称为 PTR 记录查询(查询 IP 对应的域名):
dig -x 192.168.1.1

输出控制

# 只显示回答部分(不显示头部和其他信息):
dig +short example.com # 以人类可读的格式显示结果:
dig +noall +answer example.com

其他选项

# 指定端口号:
dig example.com -p 53 # 显示更详细的信息(调试模式):
dig +trace example.com # 显示详细的通信信息:
dig +stats example.com

使用示例

$ dig @114.114.114.114 registry-1.docker.io

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @114.114.114.114 registry-1.docker.io
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17709
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;registry-1.docker.io. IN A ;; ANSWER SECTION:
registry-1.docker.io. 54 IN A 54.242.59.189
registry-1.docker.io. 54 IN A 3.215.51.67
registry-1.docker.io. 54 IN A 54.83.42.45 ;; Query time: 16 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Mon Aug 29 14:20:08 CST 2022
;; MSG SIZE rcvd: 97
  1. 命令头部信息:

    ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> @114.114.114.114 registry-1.docker.io
    • DiG 9.9.4-RedHat-9.9.4-38.el7_3.2:指明了使用的 dig 版本。
    • @114.114.114.114:指定了查询的 DNS 服务器地址为 114.114.114.114。
    • registry-1.docker.io:指定了查询的域名。
  2. 全局选项和服务器信息:

    ; (1 server found)
    ;; global options: +cmd
    • (1 server found):表示找到了 1 个 DNS 服务器。
    • global options: +cmd:指明使用了全局选项 +cmd,该选项表示显示执行命令的指令。
  3. 回答头部信息:

    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17709
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
    • opcode: QUERY:表示查询操作。
    • status: NOERROR:表示查询状态为没有错误。
    • id: 17709:表示查询的唯一标识符。
    • flags: qr rd ra:表示一般查询、递归查询、和响应可用的标志。
    • QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1:表示查询包含 1 个问题、3 个回答,没有权威和附加信息。
  4. OPT PSEUDOSECTION(可选部分):

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    • EDNS: version: 0, flags:; udp: 512:表示使用 EDNS(Extension Mechanisms for DNS),版本为 0,无特殊标志,最大传输单元(udp)为 512 字节。
  5. 问题部分:

    ;; QUESTION SECTION:
    ;registry-1.docker.io. IN A
    • registry-1.docker.io. IN A:表示查询了 registry-1.docker.io 的A记录。
  6. 回答部分:

    ;; ANSWER SECTION:
    registry-1.docker.io. 54 IN A 54.242.59.189
    registry-1.docker.io. 54 IN A 3.215.51.67
    registry-1.docker.io. 54 IN A 54.83.42.45
    • registry-1.docker.io.:表示回答的域名。
    • 54 IN A:表示记录的生存时间(TTL)为 54 秒,记录类型为 A,即 IPv4 地址。
    • 54.242.59.1893.215.51.6754.83.42.45:表示 registry-1.docker.io 的 IPv4 地址。
  7. 其他信息:

    ;; Query time: 16 msec
    ;; SERVER: 114.114.114.114#53(114.114.114.114)
    ;; WHEN: Mon Aug 29 14:20:08 CST 2022
    ;; MSG SIZE rcvd: 97
    • Query time: 16 msec:表示查询耗时 16 毫秒。
    • SERVER: 114.114.114.114#53(114.114.114.114):表示使用的 DNS 服务器及其地址。
    • WHEN: Mon Aug 29 14:20:08 CST 2022:表示查询的时间。
    • MSG SIZE rcvd: 97:表示接收到的消息大小为 97 字节。

什么是 A 记录

A记录(Address Record)是 DNS(Domain Name System)中的一种资源记录类型,用于将主机名映射到 IPv4 地址。每个 A 记录包含一个主机名和对应的 IPv4 地址。当你在浏览器中输入一个域名(比如 www.example.com)时,系统首先会向 DNS 服务器发送一个 A 记录查询,以获取与该域名关联的 IPv4 地址。

例如,以下是一个 A 记录的简单示例:

example.com.    IN    A    192.168.1.1
  • example.com. 是主机名。
  • IN 表示 Internet。
  • A 表示 A 记录类型。
  • 192.168.1.1 是与主机名相关联的 IPv4 地址。

当系统收到类似 www.example.com 的请求时,它会查询 DNS 服务器以获取相应的 A 记录,然后将解析得到的 IPv4 地址用于建立连接。

需要注意的是,A 记录只能映射到 IPv4 地址。对于 IPv6 地址的映射,可以使用 AAAA 记录。


example.com.    IN    A    192.168.1.1
  1. 第二列的内容是IN,表示 Internet。除了IN外,第二列还可能是其他一些区域(Zone)或者特定网络环境的标识,例如:
  • CH:表示 CHAOS 类。
  • HS:表示 Hesiod 类。
  • 其他一些特定用途的标识。

但在实际应用中,IN 是最常见的,也是默认的区域标识,用于指定 Internet。

  1. 第三列的内容是 A,表示 A 记录类型。除了 A 外,DNS 还支持其他类型的记录,每种记录类型都有特定的用途。一些常见的 DNS 记录类型包括:
  • AAAA:IPv6 地址记录,类似于 A 记录,但用于映射主机名到 IPv6 地址。
  • CNAME:规范名称记录,用于创建别名,将一个主机名映射到另一个主机名。
  • MX:邮件交换记录,指定邮件服务器的优先级和域名。
  • NS:域名服务器记录,指定域名的权威 DNS 服务器。
  • PTR:指针记录,用于反向 DNS 查找,将 IP 地址映射到主机名。
  • SOA:起始授权机构记录,包含有关域的重要信息,如域的管理者、域的刷新时间等。

在查询结果中,A记录指定了主机名与 IPv4 地址之间的映射关系。不同的记录类型用于支持不同的网络服务和功能。

kdig

kdig 相比 dig,增加了 DoH、DoT、DoQ 等功能。

安装:

brew install knot

add-apt-repository ppa:cz.nic-labs/knot-dns-latest
apt update
apt install knot-dnsutils

例:

kdig @dns.google example.com +tls
kdig @dns.google example.com +https
kdig @dns.google example.com +quic

man kdig

dig 使用的更多相关文章

  1. 使用dig查询dns解析

    原文地址:使用dig查询dns解析 作者:chenwenming 一般来说linux下查询域名解析有两种选择,nslookup或者dig,而在使用上我觉得dig更加方便顺手. 如果是在debian下的 ...

  2. dig 常用的域名查询工具

    dig 命令是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法: dig (选项) (参数) 选项: @<服务器地址>: 指定进行域名解析的域名服务器: -b: 当主机具有多个 ...

  3. dig的用法

    Dig是linux中的域名解析工具,功能比nslookup强很多,使用也很方便,不用象nslookup总是set不停. Dig是domain information groper的缩写,知道了来源想必 ...

  4. host,nslookup,dig 命令安装

    host,nslookup,dig依赖bind包,所以先看一下系统有没有bind包 命令如下:rpm -qa |grep bind 如果没有或者版本太低请升级安装 命令是:yum install bi ...

  5. linux命令--dig

    dig,和nslookup作用有些类似,都是DNS查询工具,但是却比nslookup强大 dig,其实是一个缩写,即Domain Information Groper. [我想用google-DNS来 ...

  6. Dig out deleted chat messages of App Skype

    Last month Candy was arrested on suspicion of having doing online porn webcam shows, but Candy refus ...

  7. aix DNS 配置以及网络命令traceroute和nslookup 和 dig 命令

    DNS 域名系统 (DNS) 服务器将 IP 地址解释为其他计算机或网站的域名和地址.如果没有 DNS,您需要在 Web 浏览器中输入 IP 地址.例如,如果您未访问 DNS 并希望查看 IBM 的网 ...

  8. dig与dns基本理论——解析和缓存

    DNS(Domain Name System,域名系统)也许是我们在网络中最常用到的服务,它把容易记住的域名,如 www.google.com 翻译成人类不易记住的IP地址,如 173.194.127 ...

  9. dig理解DNS的解析过程 - 阿权的书房

    关于DNS的常识,可以阅读附录的一些参考资料.本文旨在尝试举例用dig命令理解这个过程,并非权威知识,仅供参考.测试域名为阿权的书房的域名 www.aslibra.com 和 www.163.com. ...

  10. dig 命令详解(转载) - 阿权的书房

    在 unix 和 linux 下,建议大家使用 dig 命令来代替 nslookup. dig 命令的功能比 nslookup 强大很多,不像 nslookkup 还得 set 来 set 去的,怪麻 ...

随机推荐

  1. js脚本化css

    脚本化CSS 我们刚讲过如何获取和设置行内样式的值,但是我们开发不会所有样式都写在行内,同时js没法获取内嵌样式表和外部样式表中的值. 事实上DOM提供了可靠的API,得到计算后的样式. 1. 获取计 ...

  2. 化腐朽为神奇!揭开ISP图像处理的神秘面纱,基于瑞芯微RK3568J工业平台!

    ISP图像处理前后图像对比 化腐朽为神奇!经过ISP图像处理的图片前后对比是如此惊人!从下图中可以观察到,未经处理的原始图像偏绿且暗淡,而经ISP图像处理的图像能够清晰地还原现场真实的颜色细节! 图1 ...

  3. 使用Sqlcel操作数据库整理数据视频

    链接:https://pan.baidu.com/s/1G4FJbLbN0oXAu61syWxCOA 提取码:noyz

  4. IdentityServer4 获取发现文档 提示 Keyset is missing

    客户端请求提示 Keyset is missing 解决办法 添加以下代码 services.AddIdentityServer(options => { options.Events.Rais ...

  5. Linux-shell编程入门基础

    目录 前言 Shell编程 bash特性 shell作用域 变量 环境变量 $特殊变量 $特殊状态变量 $特殊符号(很重要) 其他内置shell命令 shell语法的子串截取 统计 指令执行时间 练习 ...

  6. Solo 开发者周刊 (第2期):一站式解决各类办公绘图问题

    这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 重新思 ...

  7. C#委托的2种调用方式

    第一种:直接调用,通过invoke方法: 第二种:这是第二种将委托作为方法的参数的间接调用: 下面举个栗子演示: using System; using System.Collections.Gene ...

  8. 嘿,我使用了mp的自连接+分页查询之后,再使用条件查询居然失效了。

    原因:我想通过自连接查询将一个表的两条数据放在一起,为此我重写了mp的分页查询 IPage<Indi> selectIndiShow(IPage<Indi> page, @Pa ...

  9. lombok到底都用来做什么

    前言:我使用lombok一般都是用在实体类的外面写个@data省得写getsettostring方法,今天详细了解一下关于lombok的有一些实用技巧 @Cleanup //用于IO流的关闭,给局部变 ...

  10. jmeter测试udp广播(jmeter发送udp)

    jmeter测试udp广播(jmeter发送udp) jmeter测试udp广播(jmeter接收udp) 先下载安装第三方插件 下载链接:https://jmeter-plugins.org/ins ...