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. C#/.NET/.NET Core优秀项目和框架2024年6月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍.功能特点.使用方式以及部分功能截图 ...

  2. sqlCel查询一个表中部分字段的数据后插入到另一个表中

    问题: 部门每天需要从后台系统将物流总表数据导出,Excel中整理出订单的物流发货渠道和发货时间,再手动导入到数据库中,整个过程不麻烦,但在Excel中比较繁琐. 需求: 将这个繁琐的过程变得更简单, ...

  3. Konva 内容重叠无法触发点击事件的解决方法

    写在前面: 环境:Vue3 + Konva + vite 在绘制界面时踩坑,主要是关于 listening 属性的使用 在绘制界面时,不免出现有内容重叠的情况,这会影响事件的触发 使用设置listen ...

  4. SpringBoot整合EasyPoi 封装Excel导出通用工具类,行高自适应,导出图片

    导读 下午抽空封装一个通用导出Excel工具类.之前还写过一篇EasyPoi导入参数校验,批注导出,点我直达 添加依赖 <!-- easy poi --> <dependency&g ...

  5. Spring的IOC容器类别概述

    Spring的IOC该如何理解呢? 平常在一个方法当中,若要用到外部另一个类里的非静态方法,首先,需要先通过new一个对象,再根据这个对象去调用其方法.若只需要一两个对象还好,一旦涉及的外部对象多了, ...

  6. MES 与 PLC 的几种交互方式

    在 MES 开发领域,想要从 PLC 获取数据就必须要和 PLC 有信号交互.高效准确的获取 PLC 数据一直是优秀 MES 系统开发的目标之一.初涉相关系统开发的工程师往往不能很好的理解 PLC 和 ...

  7. golang 实现的零依赖、高性能、并发 mysqldump 工具。

    mysqldump golang 中实现的零依赖.高性能.并发 mysqldump 工具. 项目地址: https://github.com/dengjiawen8955/mysqldump/blob ...

  8. SpringBoot2.7 霸王硬上弓 Logback1.3 → 不甜但解渴

    开心一刻 一大早,她就发消息质问我 她:你给我老实交代,昨晚去哪鬼混了? 我:没有,就哥几个喝了点酒 她:那我给你打了那么多视频,为什么不接? 我:不太方便呀 她:我不信,和你哥们儿喝酒有啥不方便接视 ...

  9. 在Ubuntu 18.04 Desktop图形中配置静态和动态IP

    在Ubuntu 18.04 图形界面中配置静态和动态IP 设置静态ip 设置为dhcp动态获取ip

  10. 【RabbitMQ】12 日志监控 & 消息追踪

    一.日志和监控 RabbitMQ日志存放目录 [root@localhost ~]# ll /var/log/rabbitmq/ 总用量 176 -rw-r-----. 1 rabbitmq rabb ...