查看当前配置的DNS服务器(/etc/resolv.conf
文件)
这是最直接的方式,系统默认从此文件读取DNS配置:
cat /etc/resolv.conf
输出示例:
nameserver 8.8.8.8 # 主DNS服务器
nameserver 192.168.1.1 # 备用DNS服务器
⚠️ 注意:
- 若使用NetworkManager或systemd-resolved服务,此文件可能被自动管理,直接编辑可能无效。
- 文件中的
nameserver
行即当前生效的DNS地址。
使用nslookup
(基础查询工具)
通过域名反向查询DNS服务器地址:
nslookup example.com # 查询域名的解析服务器 nslookup # 进入交互模式 > server # 显示当前使用的DNS服务器 > exit # 退出
输出关键项:
Server: 8.8.8.8 # 当前使用的DNS服务器
Address: 8.8.8.8#53 # DNS地址及端口
使用dig
(专业诊断工具)
获取详细的DNS解析路径和服务器信息:
dig example.com # 查询域名解析 dig +short example.com # 仅显示IP结果 dig NS example.com # 查询域名的DNS服务器名称 dig +trace example.com # 跟踪完整解析过程
输出解析:
ANSWER SECTION
:域名对应的IP地址。Query time
:解析耗时,用于诊断延迟。
使用host
(快速查询工具)
高效获取域名关联的IP或DNS记录:
host example.com # 查询域名IP host -t NS example.com # 查询域名的DNS服务器
输出示例:
example.com has address 93.184.216.34
example.com name server ns.icann.org. # 域名注册的DNS服务器
通过systemd-resolve
(systemd系统专用)
适用于Ubuntu 18.04+、CentOS 8+等使用systemd的系统:
systemd-resolve --status | grep "DNS Servers" -A 2
输出示例:
DNS Servers: 8.8.8.8
192.168.1.1
此命令同时显示分接口(如eth0、wlan0)的DNS配置。
使用NetworkManager(nmcli
)
适用于通过NetworkManager管理网络的环境:
nmcli dev show | grep DNS
输出示例:
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 192.168.1.1
应用场景总结
场景 | 推荐命令 | 优势 |
---|---|---|
查看本地DNS配置 | cat /etc/resolv.conf |
直接显示系统配置 |
快速解析域名 | host 或 dig +short |
结果简洁,适合脚本调用 |
诊断DNS解析问题 | dig +trace |
完整跟踪解析链路 |
查询域名注册的DNS服务器 | dig NS 或 host -t NS |
获取权威DNS信息 |
图形界面环境(如Ubuntu) | nmcli |
兼容NetworkManager配置 |
常见问题排查
- DNS未生效:
- 检查
/etc/resolv.conf
是否被覆盖(如DHCP服务重置)。 - 使用
dig @8.8.8.8 example.com
指定DNS服务器测试连通性。
- 检查
- 解析延迟高:
- 用
dig +trace
检查解析路径,替换为更快的公共DNS(如8.8.8
或114.114.114
)。
- 用
- 配置持久化:
- 通过NetworkManager修改(
nm-connection-editor
)或编辑/etc/netplan/*.yaml
(Ubuntu)确保重启后配置保留。
- 通过NetworkManager修改(
引用说明基于Linux标准文档(man pages)、IBM Knowledge Center及Ubuntu官方维护指南,命令兼容主流发行版(Ubuntu, CentOS, Fedora等),测试环境为Linux kernel 5.4+。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5450.html