nslookup 是一个用于查询 DNS(域名系统)信息的网络诊断工具,它的名称是 "Name Server Lookup"(名称服务器查询)的缩写,通过这个命令,你可以轻松地查找域名对应的 IP 地址(正向解析),或者查询 IP 地址对应的域名(反向解析),以及获取更详细的 DNS 记录信息。

基本语法
nslookup 的基本语法非常简单:
nslookup [选项] [域名或IP地址]
- 选项: 可选,用于指定查询类型或其他操作。
- 域名或IP地址: 必选,是你想要查询的目标,你可以查询一个域名(如
www.google.com)或一个 IP 地址(如8.8.8)。
两种主要模式
nslookup 有两种主要的交互模式:
a. 非交互模式
这是最常用的模式,当你只想执行一次查询后就退出时使用,只需在命令后直接跟上要查询的域名或 IP。
示例:查询域名对应的 IP 地址

nslookup www.google.com
输出示例:
Server: 192.168.1.1 # 你的默认DNS服务器
Address: 192.168.1.1#53
Non-authoritative answer: # 非权威答案,可能来自缓存
Name: www.google.com
Address: 142.250.191.78
Name: www.google.com
Address: 2404:6800:4005:80a::200e # IPv6地址
示例:查询 IP 地址对应的域名(反向解析)
nslookup 8.8.8.8
输出示例:
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
8.8.8.8.in-addr.arpa name = dns.google.
Authoritative answers can be found from:
b. 交互模式
当你需要连续执行多个查询时,可以使用交互模式,只需输入 nslookup 并按回车,即可进入一个提示符(>)状态。

如何进入交互模式:
nslookup
交互模式下的常用命令:
set type=...: 设置要查询的 DNS 记录类型。server <域名或IP>: 更改查询所使用的 DNS 服务器。exit或quit: 退出交互模式。
示例:在交互模式下查询不同类型的记录
# 1. 进入交互模式 nslookup # 2. 查询 www.google.com 的 A 记录(默认) > www.google.com ... (输出 IP 地址) ... # 3. 更改查询类型为 MX(邮件交换记录) > set type=mx > google.com ... (输出 MX 服务器信息) ... # 4. 更改查询类型为 NS(名称服务器记录) > set type=ns > google.com ... (输出 Google 的权威名称服务器) ... # 5. 更改查询类型为 ANY(所有记录) > set type=any > google.com ... (输出所有可用的 DNS 记录) ... # 6. 退出 > exit
常用查询类型
通过 set type= 命令,你可以查询多种 DNS 记录:
| 记录类型 | 描述 | 示例 |
|---|---|---|
| A | 将域名指向一个 IPv4 地址。 | nslookup example.com (默认) |
| AAAA | 将域名指向一个 IPv6 地址。 | nslookup example.com (有时会同时显示) |
| MX | 指定负责处理该域名邮件交换的服务器。 | nslookup -query=mx example.com |
| NS | 指定该域名的权威名称服务器。 | nslookup -query=ns example.com |
| CNAME | 指定别 Canonical Name,即域名别名。 | nslookup -query=cname www.example.com |
| TXT | 存储任意文本信息,常用于 SPF、DKIM 等邮件验证。 | nslookup -query=txt example.com |
| SOA | 获取该域名的起始授权机构记录,包含管理信息。 | nslookup -query=soa example.com |
| ANY | 查询该域名所有可用的 DNS 记录。 | nslookup -query=any example.com |
非交互模式下指定查询类型的快捷方式:
你也可以在命令行中直接使用 -query= 或 -q= 选项来指定查询类型,而无需进入交互模式。
# 查询 example.com 的 MX 记录 nslookup -query=mx example.com # 或者使用简写 -q nslookup -q=mx example.com # 查询 example.com 的所有记录 nslookup -q=any example.com
常用选项
-query=<type>或-q=<type>: 指定查询的记录类型。-type=<type>:-query的别名。-server=<server>或- <server>: 指定要查询的 DNS 服务器,而不是使用系统默认的。
示例:使用公共 DNS 服务器进行查询
如果你想绕过本地网络 DNS,直接使用 Google 或 Cloudflare 的公共 DNS 进行查询,这非常有用。
# 使用 Google 的 DNS 服务器 (8.8.8.8) 查询 nslookup -query=any www.google.com 8.8.8.8 # 使用 Cloudflare 的 DNS 服务器 (1.1.1.1) 查询 nslookup www.baidu.com 1.1.1.1
与 dig 和 host 的比较
在 Linux 系统中,除了 nslookup,还有另外两个常用的 DNS 查询工具:dig 和 host。
| 工具 | 特点 | 适用场景 |
|---|---|---|
nslookup |
功能强大,有交互和非交互模式,界面比较“古老”,输出信息有时冗余。 | 传统的、交互式的故障排查。 |
dig |
功能最强大、最灵活,输出格式清晰、详细,默认显示更完整的信息(如响应时间、权威服务器等)。 | 系统管理员和网络工程师的首选,用于深入、精确的 DNS 分析。 |
host |
最简单、最简洁,只提供最基本的查询功能,输出非常易读。 | 快速、简单的域名到 IP 的正向或反向查询。 |
简单对比示例:
查询 google.com 的 A 记录:
-
nslookup:nslookup google.com
输出较多,包含服务器信息和多个可能的答案。
-
dig:dig google.com
输出结构化,包含头部、问题、答案、授权和附加部分,信息最全。
-
host:host google.com
输出最简洁,直接给出结果。
Using domain server: Name: 192.168.1.1 Address: 192.168.1.1#53 Aliases: google.com has address 142.250.196.100 google.com mail is handled by 10 aspmx.l.google.com. ...
nslookup是一个经典且功能全面的 DNS 诊断工具,尤其适合需要交互式查询的场景。- 掌握其非交互模式可以快速完成日常查询。
- 掌握其交互模式和
set type命令可以进行更深入的 DNS 记录分析。 - 了解如何使用
-server选项可以让你从特定的 DNS 服务器获取信息,这对于排查 DNS 污染或缓存问题至关重要。 - 虽然
dig在专业用户中更受欢迎,但nslookup依然被广泛支持和使用,是每个 Linux 用户都应该了解的基础命令之一。
