cat /etc/resolv.conf
、nslookup
、dig
或host
命令实现,图形界面则进入【设置】→【网络】是关于如何在Ubuntu系统中查看DNS配置的详细指南,涵盖多种方法和工具:
通过图形界面查看DNS设置
- 步骤说明
- 在桌面空白处右键点击,选择【设置】;
- 进入【网络】模块,点击对应连接(如WiFi或有线)右侧的小齿轮图标;
- 切换到【IPv4】标签页,即可看到当前使用的DNS服务器地址列表。
- 适用场景:适合不熟悉命令行的用户快速查看或修改基础配置。
- 注意事项:若需更改设置,需先关闭“自动从互联网获取DNS”选项才能手动输入新的DNS IP地址。
使用命令行工具查询DNS信息
方法1:nslookup
命令
- 功能特点:简单易用,支持交互式查询,可返回域名对应的IP地址及关联的DNS服务器。
- 示例操作:在终端输入
nslookup example.com
,系统会显示该域名的解析结果,若需指定查询类型(如MX记录),可添加参数type=MX
。 - 优势:直观展示解析链路中的关键环节,便于定位基础网络问题。
方法2:dig
命令
- 功能特点:专业的DNS诊断工具,支持多类型记录查询(A、CNAME、MX等),提供详细的响应时间和缓存状态。
- 示例操作:执行
dig example.com A
可查看A记录;若要获取权威名称服务器信息,直接运行dig example.com
,还可通过管道过滤关键内容,dig myfreax.com | grep SERVER
。 - 适用场景:适合深度分析DNS响应过程,排查复杂故障。
方法3:host
命令
- 功能特点:轻量级替代方案,直接输出域名与IP的映射关系,无冗余信息。
- 示例操作:输入
host example.com
快速验证解析是否正确;查询特定记录时使用host t MX example.com
。 - 典型用途:适用于脚本自动化检查或快速测试单个域名的解析状态。
检查系统级配置文件
文件路径与内容解读
- 核心文件:
/etc/resolv.conf
,存储本机的DNS客户端配置。 - 查看方式:通过
cat /etc/resolv.conf
命令显示当前生效的DNS服务器列表,注意在较新版本的Ubuntu中,此文件可能为符号链接,实际由systemdresolved服务动态生成。 - 编辑限制:现代Ubuntu版本推荐通过Netplan管理网络设置,直接修改该文件可能导致配置冲突,如需持久化更改,应编辑Netplan的YAML配置文件(如
/etc/netplan/*.yaml
)。
高级状态监控
- systemdresolve工具:运行
sudo systemdresolve status | grep 'DNS Servers' A2
可获取更详细的解析统计信息,包括超时、重试次数等指标,此命令对诊断DNS性能问题尤为有用。
网络管理器快捷指令
- nmcli工具集:使用
nmcli dev show
命令一键列出所有网络接口及其关联的DNS配置,输出格式结构化且易于解析,IP4.DNS字段即表示当前分配给该接口的DNS服务器地址。 - 优势对比:相比逐项查看配置文件,此方法能同时获取多个适配器的信息,适合多网卡环境管理。
测试DNS连通性与响应质量
- Ping测试:以公共DNS为例,执行
ping 8.8.8.8
验证与Google DNS服务器的网络可达性,高延迟或丢包可能表明存在网络瓶颈。 - Traceroute扩展:结合
traceroute
命令进一步追踪数据包经过的路由节点,辅助判断跨运营商时的解析异常问题。
下表汇总了上述方法的关键差异:
| 方法 | 交互性 | 信息丰富度 | 适用场景 | 典型命令 |
||||||
| 图形界面 | 高 | 低 | 新手快速查看/修改 | — |
| nslookup | 中等 | 中 | 基础故障排查 | nslookup domain.com
|
| dig | 无 | 高 | 专业级诊断 | dig domain.com +stats
|
| host | 无 | 低 | 快速验证 | host domain.com
|
| cat /etc/resolv...| 无 | 中 | 静态配置确认 | cat /etc/resolv.conf
|
| nmcli | 无 | 高 | 多接口批量管理 | nmcli dev show
|
| systemdresolve | 无 | 极高 | 性能优化与深度监控 | sudo systemdresolve status
|
常见问题与解答
Q1: 为什么修改了/etc/resolv.conf
后DNS没有变化?
A: 因为现代Ubuntu默认使用systemdresolved服务动态生成该文件,正确做法是通过Netplan编辑对应的YAML配置文件(通常位于/etc/netplan/
),并运行sudo netplan apply
使更改生效,同时确保符号链接指向正确位置:sudo ln sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
。
Q2: 如何永久设置自定义的DNS服务器?
A: 推荐两种方式:①通过图形界面的网络设置页面禁用DHCP自动获取,手动指定DNS并保存;②编辑Netplan配置文件,在对应接口下添加nameservers: addresses: [目标IP]
条目,然后应用配置,例如使用Cloudflare的DNS可写为nameservers: addresses: [1.1.1.1, 1.0.0.1]
。
Ubuntu系统提供了多样化的工具来满足不同层级的DNS诊断需求,对于日常使用,图形界面和简单的命令(如nmcli
, host
)已足够;而在处理复杂网络问题时,dig
、systemdresolve
等高级工具则能提供更