使用 nslookup 命令(推荐,最常用)
nslookup 是一个用于查询 DNS 服务器的交互式工具,可以用来验证域名解析是否正常工作。

基本查询(查询 A 记录)
nslookup www.google.com
示例输出:
Server: 192.168.1.1 <-- 使用的 DNS 服务器
Address: 192.168.1.1#53 <-- DNS 服务器地址和端口
Non-authoritative answer:
Name: www.google.com
Address: 142.250.191.46 <-- 解析到的 IP 地址
Name: www.google.com
Address: 142.250.191.110
- 说明:这个命令会显示系统当前正在使用的 DNS 服务器(通常是
/etc/resolv.conf中配置的),并显示查询结果。
查询指定类型的 DNS 记录 查询 MX(邮件交换)记录:
nslookup -type=mx qq.com
示例输出:

Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
qq.com mail exchanger = 21.qq.com.
qq.com mail exchanger = 20.qq.com.
...
指定 DNS 服务器进行查询
如果你想用特定的 DNS 服务器(如 Google 的 8.8.8)来查询,可以这样使用:
nslookup www.baidu.com 8.8.8.8
说明:这个命令会绕过系统默认的 DNS 服务器,直接使用 8.8.8 进行查询,非常适合用于排查 DNS 问题。
使用 dig 命令(功能更强大,信息更详细)
dig (Domain Information Groper) 是一个比 nslookup 更强大、更灵活的 DNS 查询工具,能提供更详细的返回信息。
基本查询

dig www.github.com
示例输出(部分截取):
; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> www.github.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;www.github.com. IN A
;; ANSWER SECTION:
www.github.com. 60 IN A 140.82.121.3
www.github.com. 60 IN A 140.82.121.4
;; Query time: 15 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu May 25 10:30:00 CST 2025
;; MSG SIZE rcvd: 76
- 说明:
dig的输出非常结构化,包含了请求的 DNS 服务器、查询状态、响应时间等丰富信息。
简洁输出模式 只返回答案部分,适合脚本处理:
dig +short www.github.com
示例输出:
82.121.3
140.82.121.4
查询指定 DNS 服务器
dig @8.8.8.8 www.github.com
- 说明: 符号后面紧跟要查询的 DNS 服务器 IP。
查看系统配置文件(查看静态或手动配置的 DNS)
这些方法可以查看系统当前使用的 DNS 服务器配置来源。
查看 /etc/resolv.conf 文件
这是 Linux 系统中存放 DNS 服务器配置的核心文件,在较新的 CentOS/RHEL 7/8/9 版本中,它可能由 NetworkManager 或 systemd-resolved 动态管理。
cat /etc/resolv.conf
示例输出:
# Generated by NetworkManager
nameserver 192.168.1.1 <-- 这就是系统当前配置的 DNS 服务器
nameserver 8.8.8.8
- 注意:直接修改这个文件在某些系统上可能不会持久化,重启网络后会恢复,建议通过网络管理工具修改。
查看 NetworkManager 配置(适用于使用 NetworkManager 的系统) NetworkManager 是 CentOS 7 及以后版本的默认网络管理工具,你可以查看它为特定网络连接配置的 DNS。
- 查看所有连接的配置:
nmcli connection show
- 查看某个特定连接的详细配置("ens33"):
nmcli connection show ens33 | grep "ipv4.dns"
示例输出:
ipv4.dns: 192.168.1.1, 8.8.8.8 - 查看活动连接的 DNS 服务器:
nmcli device show ens33 | grep "DNS"
示例输出:
DNS: 192.168.1.1 DNS: 8.8.8.8
查看 systemd-resolved 状态(适用于使用 systemd-resolved 的系统)
在一些配置中,systemd-resolved 服务会处理本地 DNS 查询,并可能提供一个本地 DNS 转发地址(如 0.0.53)。
resolvectl status
示例输出:
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1 8.8.8.8
...
- 说明:如果你的
/etc/resolv.conf里第一行是nameserver 127.0.0.53,说明你的系统正在使用systemd-resolved服务,这个命令可以帮你看到真实的上游 DNS 服务器。
使用 host 命令(简单易用)
host 是一个简单的 DNS 查询工具,输出比 nslookup 更简洁。
host github.com
示例输出:
Using domain server:
Name: 192.168.1.1
Address: 192.168.1.1#53
Aliases:
github.com has address 140.82.121.3
github.com has address 140.82.121.4
总结与选择建议
| 命令 | 主要用途 | 优点 | 缺点 |
|---|---|---|---|
nslookup |
日常 DNS 解析检查 | 简单、直观,几乎所有系统都自带 | 信息不如 dig 详细 |
dig |
深入 DNS 故障排查 | 信息最全面、详细,功能强大 | 输出复杂,初学者不易理解 |
cat /etc/resolv.conf |
查看当前生效的 DNS 配置 | 直接显示配置文件内容 | 可能是动态生成的,修改不持久 |
nmcli |
查看和管理 NetworkManager 的 DNS 配置 | 查看和管理永久配置 | 只适用于 NetworkManager 管理的网络 |
resolvectl |
查看 systemd-resolved 的 DNS 状态 |
查看 systemd-resolved 的真实上游 DNS |
仅在使用 systemd-resolved 的系统上有效 |
host |
快速、简单的 DNS 查询 | 输出简洁明了 | 功能相对单一 |
- 只想快速查一个域名能不能解析? -> 用
nslookup或host。 - DNS 出问题了,需要详细信息排查? -> 用
dig。 - 想看系统到底配置了哪些 DNS 服务器? -> 用
cat /etc/resolv.conf或nmcli。 - 你的 DNS 服务器是
0.0.53? -> 用resolvectl status看看真实配置。
