编辑/etc/netplan/*.yaml文件,添加dns4/dns3字段,保存后
Ubuntu网卡DNS设置方法详解
在Ubuntu系统中,正确配置网络接口的DNS服务器是确保网络连通性和域名解析正常的关键,本文将详细介绍四种主流的DNS配置方法,涵盖图形界面、命令行工具及配置文件修改方式,并附常见问题的解决方案。
通过Netplan配置(Ubuntu 17.10+)
查看网络接口状态
networkctl status
输出示例:
● Device: eth0 Realtek Ethernet
...
LinkState: routable
...
DHCP: yes
...
编辑Netplan配置文件
配置文件路径:/etc/netplan/*.yaml
示例配置文件(50cloudinit.yaml):
network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [114.114.114.114,8.8.8.8]
参数项 | 说明 |
---|---|
dhcp4 | 禁用DHCP(静态IP时必填) |
addresses | 静态IP地址+子网掩码 |
gateway4 | 默认网关 |
nameservers | DNS服务器列表 |
应用配置并验证
sudo netplan apply systemdresolve flushcaches
通过nmcli命令行配置
查看当前连接状态
nmcli connection show
输出示例:
NAME UUID TYPE DEVICE STATE
eth0 f8c9e3f5a7b44c8b9d3e123456789abc ethernet eth0 connected
修改指定连接的DNS服务器
nmcli connection modify "eth0" ipv4.dns "8.8.4.4 114.114.114.114" nmcli connection modify "eth0" ipv4.ignoreautodns yes
重启网络服务
sudo systemctl restart NetworkManager
图形化界面配置(Network Manager)
操作路径:
菜单 > 设置 > 网络 > 选择连接 > 编辑
配置界面说明:
区域 | 设置项 | 说明 |
---|---|---|
IPv4设置 | 方法选择 | 选择”自动(DHCP)”或”手动” |
DNS服务器 | 填写自定义DNS地址 | |
忽略系统DNS | 勾选后优先使用自定义DNS |
直接修改/etc/resolv.conf(临时方案)
注意:
此方法在systemdresolved服务启用时会被覆盖,需配合服务配置使用。
修改步骤:
sudo nano /etc/resolv.conf # 添加以下内容: nameserver 1.1.1.1 nameserver 223.5.5.5
永久生效配置:
编辑/etc/systemd/resolved.conf
:
[Resolve] DNS=114.114.114.114 FallbackDNS=8.8.8.8
重启服务:
sudo systemctl restart systemdresolved
验证DNS配置有效性
测试域名解析
ping c 3 www.baidu.com nslookup www.google.com dig +short github.com
查看当前DNS配置
systemdresolve status
输出示例:
Global
DNS Servers: 114.114.114.114
8.8.8.8
DNSSEC NTA: Ignore
常见问题与解决方案
问题1:修改DNS后无法上网
原因:配置错误导致DNS服务器不可达
解决:
- 恢复备份配置文件
- 使用
nmcli connection edit "eth0" set ipv4.dns ""
清除错误配置 - 临时使用Google公共DNS:
sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
问题2:DNS配置频繁失效
原因:NetworkManager或systemdresolved覆盖配置
解决:
- 检查
/etc/NetworkManager/NetworkManager.conf
中的[main]
段是否包含dns=default
- 禁用systemdresolved服务:
sudo systemctl disable systemdresolved
相关问题与解答
Q1:如何测试当前DNS配置是否生效?
A:
可通过以下命令验证:
ping c 3 www.baidu.com
测试基础连通性nslookup example.com
检查域名解析结果systemdresolve status
查看系统实际使用的DNS服务器
若出现temporary failure in name resolution
错误,说明DNS配置未生效。
Q2:如何恢复默认的DNS设置?
A:
根据配置方式选择对应操作:
- Netplan:删除
nameservers
字段后执行sudo netplan apply
- nmcli:运行
nmcli connection modify "连接名" ipv4.dns ""
清除DNS设置 - 图形界面:在网络设置中选择”自动获取DNS地址”
- resolv.conf:恢复系统默认文件(通常由
systemdresolved
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/202328.html