如何查看Ubuntu系统当前使用的DNS服务器?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
薄荷白开水 2025-07-19 02:15关注一、概述:DNS在Ubuntu系统中的重要性
域名系统(DNS)是互联网通信中不可或缺的一部分。Ubuntu系统通过DNS将域名解析为IP地址。在系统维护或网络故障排查中,了解当前使用的DNS服务器至关重要。不同版本的Ubuntu可能使用不同的网络管理工具,如NetworkManager、systemd-resolved等,因此查看DNS的方式也有所不同。
- 查看/etc/resolv.conf文件
- 使用nmcli命令
- 使用resolvectl命令
- 使用dig或nslookup测试DNS解析
二、查看DNS服务器的基本方法
1. 查看
/etc/resolv.conf文件这是最传统的方法,适用于大多数Linux发行版。该文件通常由系统自动生成,包含当前使用的DNS服务器地址。
cat /etc/resolv.conf输出示例如下:
nameserver 8.8.8.8 nameserver 8.8.4.4
注意:在某些系统中,该文件可能是符号链接,指向
/run/systemd/resolve/resolv.conf或/run/NetworkManager/resolv.conf。2. 使用
nmcli命令(适用于使用NetworkManager的系统)如果系统使用NetworkManager管理网络连接,可以使用以下命令查看DNS信息:
nmcli dev show查找输出中的
IP4.DNS字段,示例如下:IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4
三、使用 systemd-resolved 的系统
3. 使用
resolvectl命令对于使用
systemd-resolved服务的Ubuntu系统(如18.04及更高版本),可通过以下命令查看全局或接口相关的DNS配置:resolvectl status输出示例如下:
Interface DNS Servers Domain enp0s3 8.8.8.8 example.com lo 127.0.0.53 – 该命令可以查看每个网络接口的DNS配置,适用于多网卡环境。
四、测试DNS解析的方法
4. 使用
dig或nslookup命令虽然这两个命令不能直接显示当前使用的DNS服务器,但它们可以用于测试DNS解析是否正常:
dig google.comnslookup google.com输出中将显示使用的DNS服务器地址。
五、不同Ubuntu版本的差异
不同Ubuntu版本使用的网络管理服务可能不同,以下是常见版本的DNS管理方式:
Ubuntu版本 默认DNS管理工具 推荐查看方式 Ubuntu 16.04 NetworkManager nmcli Ubuntu 18.04 systemd-resolved resolvectl Ubuntu 20.04+ systemd-resolved resolvectl / resolv.conf 了解系统使用的DNS管理服务有助于选择正确的命令。
六、进阶分析:DNS配置的动态与静态设置
Ubuntu系统中DNS的设置可以是动态获取(如通过DHCP)或静态配置(如手动设置)。动态DNS通常由DHCP服务器分配,而静态DNS需要在配置文件中指定。
例如,在使用
netplan配置网络的Ubuntu系统中,可以在YAML文件中指定DNS:network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.4配置完成后需运行
sudo netplan apply使更改生效。七、流程图:查看DNS服务器的决策路径
graph TD A[开始] --> B{是否使用systemd-resolved?} B -->|是| C[resolvectl status] B -->|否| D{是否使用NetworkManager?} D -->|是| E[nmcli dev show] D -->|否| F[查看/etc/resolv.conf]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报