查看系统配置文件
这是最直接的方法,可以查看系统当前静态配置的 DNS 服务器,这些配置通常在启动时被网络管理器或系统服务加载。

查看 /etc/resolv.conf 文件
这是 Linux 系统中最核心的 DNS 解析配置文件,它记录了系统在进行域名解析时应该使用的 DNS 服务器地址。
如何查看:
cat /etc/resolv.conf
输出示例:
# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 1.1.1.1
search mylocal.lan
输出解读:

nameserver <IP地址>:指定 DNS 服务器的 IP 地址,系统会按顺序尝试这些服务器,如果第一个不通,会尝试第二个,以此类推。search <域名>:指定本地域名,当你查询一个不完整的域名(如hostname)时,系统会自动尝试hostname.mylocal.lan等形式。
⚠️ 重要提示:
在许多现代 Linux 发行版(如 Ubuntu 18.04+, CentOS 7+, Fedora)中,/etc/resolv.conf 文件可能是由 systemd-resolved 或 NetworkManager 等服务动态管理的,直接编辑这个文件可能效果是暂时的,重启后会恢复,查看它通常是没问题的,但修改它可能不是最佳方式。
查看 NetworkManager 的配置
如果你的系统使用 NetworkManager(桌面版 Linux 如 Ubuntu, Fedora, CentOS 7+ 的默认选择),可以通过它来查看和管理 DNS 配置。
对于使用 netplan 的系统 (如 Ubuntu 18.04+):
配置文件通常在 /etc/netplan/ 目录下。
# 查看配置文件内容 cat /etc/netplan/01-netcfg.yaml
示例输出:

network:
version: 2
ethernets:
enp0s3:
dhcp4: true
# dhcp4-overrides 可以强制指定 DNS
dhcp4-overrides:
use-dns: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
这里的 nameservers 部分明确指定了 DNS 服务器。
对于使用 ifcfg 文件的系统 (如旧版 CentOS/RHEL):
配置文件在 /etc/sysconfig/network-scripts/ 目录下。
# 查看 ens33 网卡的配置 cat /etc/sysconfig/network-scripts/ifcfg-ens33
如果配置了静态 DNS,会看到类似 DNS1="8.8.8.8" 和 DNS2="1.1.1.1" 的行。
使用命令行工具查询
这些方法可以让你实时测试 DNS 解析是否正常工作,并看到当前生效的 DNS 服务器。
使用 nslookup 命令
nslookup 是一个经典的 DNS 查询工具,可以用来查询域名对应的 IP 地址,或者反向查询 IP 对应的域名。
如何查看当前使用的 DNS 服务器:
nslookup google.com
输出示例:
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: google.com
Address: 142.250.185.78
Name: google.com
Address: 2404:6800:4005:80c::200e
输出的第一部分 Server: 192.168.1.1 就告诉你当前查询所使用的 DNS 服务器是哪个。
你也可以指定使用哪个 DNS 服务器进行查询:
# 使用 Google 的 DNS 服务器查询 nslookup google.com 8.8.8.8
使用 dig 命令
dig (Domain Information Groper) 是一个比 nslookup 更强大、更灵活的工具,提供了更详细的 DNS 查询信息。
如何查看当前使用的 DNS 服务器:
dig google.com
输出示例:
; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 300 IN A 142.250.185.78
;; Query time: 15 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Oct 26 10:30:00 CST 2025
;; MSG SIZE rcvd: 55
在输出的末尾,;; SERVER: 192.168.1.1#53(192.168.1.1) 清晰地显示了查询所用的 DNS 服务器。
同样,你也可以指定 DNS 服务器:
# 使用 Cloudflare 的 DNS 服务器查询 dig google.com @1.1.1.1
使用 host 命令
host 是一个简单易用的 DNS 查询工具,是 dig 的简化版。
如何查看当前使用的 DNS 服务器:
host google.com
输出示例:
Using domain server:
Name: 192.168.1.1
Address: 192.168.1.1#53
Aliases:
google.com has address 142.250.185.78
google.com has IPv6 address 2404:6800:4005:80c::200e
输出的第一行 Using domain server: Name: 192.168.1.1 显示了当前使用的 DNS 服务器。
检查系统服务
检查 systemd-resolved 服务
在许多现代发行版中,systemd-resolved 服务负责管理和提供 DNS 解析,它可能会覆盖 /etc/resolv.conf 中的配置。
如何检查服务状态:
systemctl status systemd-resolved
如何查看其详细配置和使用的 DNS 服务器:
# 查看 resolved.service 的详细信息 systemd-resolve --status
输出示例 (关键部分):
Global
DNS Servers: 192.168.1.1
8.8.8.8
1.1.1.1
DNSSEC NTA: com.
...
Link 2 (enp0s3)
Current Scopes: DNS
LLMNR setting: resolve
MulticastDNS setting: no
DNSSEC setting: no
DNS Servers: 192.168.1.1
8.8.8.8
这里的 Global DNS Servers 和 Link 2 (enp0s3) DNS Servers 都列出了它正在使用的 DNS 服务器。
总结与对比
| 方法 | 命令/文件 | 用途 | 优点 | 缺点 |
|---|---|---|---|---|
| 配置文件查看 | cat /etc/resolv.conf |
查看系统静态配置的 DNS | 简单直接,显示所有配置的 DNS | 可能是动态生成的,修改后易失效 |
| 网络管理器 | cat /etc/netplan/*.yaml |
查看 NetworkManager 的配置 | 真正的源头配置,适合修改 | 需要知道配置文件位置和格式 |
| 实时查询 | nslookup google.com |
测试 DNS 解析和查看当前生效的 DNS | 简单,能快速测试连通性 | 信息相对简单 |
| 实时查询 | dig google.com |
测试 DNS 解析,获取最详细信息 | 功能强大,信息全面,是首选工具 | 输出信息较多,对新手可能复杂 |
| 系统服务 | systemd-resolve --status |
检查 systemd-resolved 服务的状态和配置 |
了解底层服务的工作方式 | 仅适用于使用该服务的系统 |
推荐流程
- 快速检查:运行
dig google.com或nslookup google.com,查看输出中的SERVER信息,这是最快、最有效的方法来确认当前正在工作的 DNS 服务器。 - 排查配置问题:DNS 解析失败,查看
/etc/resolv.conf和 Netplan/ifcfg 配置文件,确保 DNS 服务器地址设置正确。 - 深入分析:使用
dig或systemd-resolve --status获取更详细的信息,以进行更深入的故障排除。
