详细介绍Linux命令dig和nslookup

本文由码云笔记为大家介绍整理两个查询 DNS(域名系统)信息的命令行工具。在 Linux 系统中,这两个工具都非常有用,能够帮助咱们获取域名的解析记录、诊断网络问题等。下面咱们对这两个命令详细介绍下,希望对大家有用。

什么是 DNS?

DNS(英文名:Domain Name System,域名系统)是互联网的一个核心组成部分,用于将人类易于记忆的域名(如 www.mybj123.com)转换为计算机能够理解的 IP 地址。DNS 的主要功能是提供域名与 IP 地址之间的映射关系,从而使用户能够通过输入域名访问网站,而不必记住复杂的数字地址。

dig 命令

dig(Domain Information Groper)是一个强大的命令行工具,用于查询 DNS 相关的信息。它提供了丰富的功能和选项,可以执行各种 DNS 查询操作。

这个命令在大多数 Linux 发行版中,dig 命令已经提前预安装了。如果有小伙伴的系统中没有安装 dig,可以使用以下命令安装它:

在 Debian 或 Ubuntu 系统上使用 apt-get 命令:
sudo apt-get install dnsutils

在 CentOS 或 RHEL 系统上使用 yum 命令:
sudo yum install bind-utils

dig(Domain Information Groper)是一个强大的 DNS 查询工具,常用于域名解析和网络故障排除。以下是 dig 命令的详细用法,包括基本语法、常用选项和示例。

1. 基本语法

dig [@server] [name] [type] [options]

  • @server:可选,指定要查询的 DNS 服务器。如果不指定,将使用系统默认的 DNS 服务器。
  • name:要查询的域名。
  • type:可选,指定记录类型,如 A、AAAA、MX、CNAME 等。默认是 A 记录。
  • options:可选,其他参数和选项。

2. 常用记录类型

  • A:IPv4 地址记录
  • AAAA:IPv6 地址记录
  • CNAME:别名记录
  • MX:邮件交换记录
  • NS:名称服务器记录
  • TXT:文本记录
  • PTR:反向解析记录
  • SOA:授权区域记录

3. 常用选项

+short:以简洁的格式输出结果,只显示答案部分。
dig +short www.mybj123.com

+trace:追踪 DNS 查询过程,显示从根服务器到最终结果的每一步查询。
dig +trace www.mybj123.com

+noall:关闭所有输出(包括 ANSWER、AUTHORITY、ADDITIONAL),可以与其他选项结合使用。
dig www.mybj123.com +noall +answer

+dnssec:查询 DNSSEC(DNS Security Extensions)信息。
dig www.mybj123.com +dnssec

+time=seconds:设置查询超时的时间,单位为秒。例如:
dig www.mybj123.com +time=5

+tries=n:设置重试次数。例如:
dig www.mybj123.com +tries=2

4. 使用示例

4.1 查询 A 记录

dig www.mybj123.com

4.2 查询 MX 记录

dig MX www.mybj123.com

4.3 查询多个记录

可以一次查询多个记录类型,通过空格分隔:

dig www.mybj123.com A MX

4.4 指定 DNS 服务器

使用指定的 DNS 服务器进行查询,例如 mybj123 的公共 DNS 服务器:

dig @8.8.8.8 www.mybj123.com

4.5 反向查找

查询 IP 地址对应的域名(反向 DNS 查找):

dig -x 93.184.216.34

4.6 显示详细输出

不使用+short选项,将显示更详细的查询信息,包括查询时间、服务器信息等:

dig www.mybj123.com

4.7 显示简洁输出

仅显示结果,不包含额外的信息:

dig +short www.mybj123.com

4.8 使用 +trace 追踪 DNS 查询

追踪域名解析的完整路径,从根服务器开始:

dig +trace www.mybj123.com

4.9 查找 NS 记录

查询域名的名称服务器:

dig NS www.mybj123.com

5. 输出解析

dig 的输出通常包括以下几个部分:

  • QUESTION SECTION:查询的内容。
  • ANSWER SECTION:域名解析的结果。
  • AUTHORITY SECTION:提供该域名所需信息的权威 DNS 服务器。
  • ADDITIONAL SECTION:附加信息,包括其他相关记录。
  • Query time:查询花费的时间。
  • SERVER:使用的 DNS 服务器。
  • WHEN:查询的时间。
  • MSG SIZE rcvd:接收到的消息大小。

nslookup 命令

1. 基本语法

nslookup [options] [domain] [servername]

  • domain:要查询的域名,例如 www.mybj123.com。
  • servername:可选,指定要使用的 DNS 服务器。如果不指定,将使用系统配置的默认 DNS 服务器。
  • options:可选,其他命令行参数。

2. 基本用法

2.1 查询域名的 A 记录

这是最常见的用法:

nslookup www.mybj123.com

输出将显示与该域名相关的 IP 地址。

2.2 查询特定类型的记录

可以通过-type或-query选项来指定所需的记录类型。例如,查询 MX(邮件交换)记录:

nslookup -type=MX www.mybj123.com

或者: data-lang="nginx">nslookup -query=MX www.mybj123.com

常见的记录类型包括:

  • -- A:IPv4 地址记录;
  • -- AAAA:IPv6 地址记录;
  • -- CNAME:别名记录;
  • -- MX:邮件交换记录;
  • -- NS:名称服务器记录;
  • -- TXT:文本记录。
2.3 指定 DNS 服务器

您可以在命令中指定 DNS 服务器,以便使用不同的 DNS 解析器进行查询。例如,使用 mybj123 的公共 DNS 服务器:

nslookup www.mybj123.com 8.8.8.8

3. 交互模式

nslookup 还支持交互模式,可以在命令行中输入 nslookup 直接进入该模式,然后可以多次查询。

nslookup

在交互模式中,您可以输入以下命令:

查询某个域名:
> www.mybj123.com

指定查找的记录类型:
> set type=MX> www.mybj123.com

查询其他 DNS 服务器:
> server 8.8.8.8> www.mybj123.com

退出交互模式:
> exit

4. 常用选项

  • -type=TYPE 或 -query=TYPE:指定查询的记录类型。
  • -debug:显示调试信息,包括发送的请求和接收的响应。
  • -timeout=SECONDS:设置超时,单位为秒,指定等待响应的最长时间。
  • -port=PORT:指定使用的端口(默认是 53)。
  • -recurse:请求递归查询。

5. 示例

5.1 查询 A 记录

nslookup www.mybj123.com

5.2 查询 MX 记录

nslookup -type=MX www.mybj123.com

5.3 查询 NS 记录

nslookup -type=NS www.mybj123.com

5.4 反向查找

可以查询 IP 地址对应的域名:

nslookup 93.184.216.34

5.5 使用不同的 DNS 服务器

nslookup www.mybj123.com 1.1.1.1

6. 输出解析

nslookup 的输出通常包括以下几个部分:

  • Server:使用的 DNS 服务器的地址。
  • Address:DNS 服务器的 IP 地址。
  • Non-authoritative answer:非权威答案,表示该答案可能不是来自域名的授权 DNS 服务器。
  • Name:查询的域名。
  • Address:返回的 IP 地址或其他记录(如 MX 记录)。
  • Query time:查询花费的时间(毫秒)。
  • https://mybj123.com/28970.html
  • WHEN:查询的时间。
    小编详细介绍了 Linux 上的 dig 和 nslookup 命令,这两个命令都是用于查询 DNS 相关信息的工具。dig 是一个功能强大的命令,提供了丰富的选项和功能,可以执行各种 DNS 查询操作。nslookup 则是一个基本的命令,提供了一些简单的查询选项。
相关推荐
律宏阔11 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔11 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴11 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千11 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei3711 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei3711 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei3711 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh11 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW11 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux
百万蹄蹄向前冲12 小时前
双端同步!云服务器装最新Node.js v26.10全过程追踪
服务器·人工智能·node.js