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. 《DNK210使用指南 -CanMV版 V1.0》第三章 CanMV简介

    第三章 CanMV简介 1)实验平台:正点原子DNK210开发板 2) 章节摘自[正点原子]DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.c ...

  2. 【ClickHouse】3:clickhouse基本操作一 用户权限管理

    背景介绍: 有三台CentOS7服务器安装了ClickHouse HostName IP 安装程序 程序端口 centf8118.sharding1.db 192.168.81.18 clickhou ...

  3. Java基础:线程的三种创建方式

    一.继承Thread类 定义一个类继承线程类Thread 重写run()方法 创建线程对象 调用线程对象的start()方法创建线程 Thread类的常用API setName(String name ...

  4. 转: fastapi https 配置

    python3 快速生成 https 所需证书 from OpenSSL import crypto, SSL ​ def generate_certificate( organization=&qu ...

  5. MFC基于对话框工程笔记->新建MFC对话框

    一.前言 最近用MFC做了一个对话框小工具,学到了很多知识,现在做一下总结,以作备忘.(如有不足,后期添加修改) 二.MFC使用->新建MFC对话框 操作环境:VS2010 主要使用语言:C.C ...

  6. Mybatis下划线自动映射驼峰字段

    mybatis-config.xml <!--下划线自动映射驼峰字段--> <settings> <setting name="mapUnderscoreToC ...

  7. 解决方案 | 使用python中的os模块准确获取不带后缀的文件名和扩展名

    1. 问题 如何使用python获取不带后缀的文件名? 2. 解决方法 如下图 import os file_name = "examp.le.pdf" file_name1_wi ...

  8. KubeCube 用户管理与身份认证

    前言 KubeCube (https://kubecube.io) 是由网易数帆近期开源的一个轻量化的企业级容器平台,为企业提供 kubernetes 资源可视化管理以及统一的多集群多租户管理功能.K ...

  9. PHP中substr() mb_substr() mb_struct()的区别和用法

    PHP substr() 函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函 数,mb_substr() /mb_strcut的 ...

  10. CCF 无线网络

    题目原文 问题描述(题目链接登陆账号有问题,要从这个链接登陆,然后点击"模拟考试",进去找本题目) 试题编号: 201403-4 试题名称: 无线网络 时间限制: 1.0s 内存限 ...