cat /etc/resolv.conf
命令查看DNSUbuntu服务器查看DNS详细指南
在Ubuntu系统中,了解当前配置的DNS服务器信息对于网络故障排查、性能优化以及安全设置至关重要,以下是多种查看DNS配置的方法及其详细说明:
通过/etc/resolv.conf
文件直接查看
这是最基础且通用的方式,适用于几乎所有Linux发行版,该文件存储了系统默认的DNS解析规则。
操作步骤:
- 打开终端
使用快捷键Ctrl+Alt+T
启动终端; - 执行命令
输入以下命令显示内容:cat /etc/resolv.conf
- 解析输出结果
重点关注以nameserver
开头的行,其后跟随的IP地址即为当前使用的DNS服务器。nameserver 8.8.8.8 # Google公共DNS nameserver 1.1.1.1 # Cloudflare公共DNS
注意:某些系统(如启用了Systemdresolved或NetworkManager)可能会动态生成此文件,直接编辑可能无效,若发现类似
0.0.53
的本地地址,表明系统正在使用内置的DNS缓存服务。
典型示例:
假设运行结果如下:
search localdomain nameserver 172.16.1.1 # 内网私有DNS nameserver 192.168.171.2 # 另一台内部DNS服务器
这表示系统会优先向这两个IP发送域名查询请求。
使用nmcli
命令(针对NetworkManager用户)
如果系统的网络连接由NetworkManager工具管理,可以通过其专用命令行接口获取更详细的接口级DNS信息。
操作步骤:
- 运行命令
nmcli dev show | grep 'DNS'
- 解读输出字段
IP4.DNS[1]/IP6.DNS[1]
: 分别对应IPv4和IPv6的主DNS服务器;- 多个条目表示多组备用DNS顺序。
IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4
此方法特别适合多网卡环境,能清晰展示不同网络接口独立的DNS设置。
利用systemdresolve
系列工具(现代Ubuntu推荐)
自Systemd引入后,新增了一套专门用于管理DNS解析的服务,提供更灵活的状态监控能力。
✅ 状态查询命令:
选项1:systemdresolve status
输出包含完整的缓存统计、跳转记录及上游服务器列表,关键部分如下:
Link 3 (eth0): Current DNS server: 192.168.1.1 DNSSEC verification nuance: Unsigned Transactions: ... (省略中间细节)
选项2:resolvectl status
简化版交互式界面,适合快速查阅主要参数:
Global: resolved via Systemdresolved > ... DNS Servers: 192.168.1.1:53 DNSSEC: no ... Link#1 (enp0s3): connected ...
优势对比:相比传统方法,这些命令能实时反映实际生效的配置(包括动态更新后的变动),尤其适合诊断复杂场景下的解析行为。
辅助验证手段——nslookup
与dig
测试工具
虽然不直接展示配置文件,但可通过主动发起查询来反向验证DNS工作流程是否正常。
工具 | 用途说明 | 示例用法 |
---|---|---|
nslookup |
交互式域名查寻(依赖BIND库) | nslookup example.com |
dig |
深度分析权威/递归响应过程 | dig +trace www.baidu.com |
执行 nslookup google.com
若返回正确IP,则说明至少有一个可用的DNS服务器在线。
常见问题与解答
以下是两个与本文相关的高频疑问及解决方案:
Q1: 为什么修改了/etc/resolv.conf
却没生效?
A: 因为现代Ubuntu默认启用了systemdresolved
服务,它会覆盖手动编辑的文件,此时应通过编辑 /etc/systemd/resolved.conf
并重启服务来实现持久化更改:
sudo vi /etc/systemd/resolved.conf # 添加新的DNS条目 sudo systemctl restart systemdresolved # 使变更生效
Q2: 如何临时切换到特定DNS进行排错?
A: 可以使用resolvectl
快速调整而无需重启网络:
sudo resolvectl domain ~example.com usedns curl 4 defaultdns # 或者指定自定义服务器: sudo resolvectl setnameservers enp0s3 8.8.8.8 8.8.4.4
这种方法对调试特定域名解析异常非常有用。
小编总结对比表
方法 | 适用场景 | 优点 | 局限性 |
---|---|---|---|
/etc/resolv.conf |
静态配置查看 | 简单直观 | 可能被覆盖 |
nmcli |
NetworkManager管理的环境 | 支持多接口独立设置 | 仅显示当前活跃连接 |
systemdresolve |
现代Ubuntu系统 | 动态监控+详细日志 | 需要熟悉新架构 |
nslookup/dig |
功能验证与故障定位 | 实时反馈解析路径 | 无法修改配置 |
通过以上方法组合使用,您可以全面掌握Ubuntu服务器的DNS配置状况,并根据