在Ubuntu系统中修改DNS配置是一项基础且重要的操作,无论是为了提升网络访问速度、解决域名解析问题,还是实现特定的网络策略(如屏蔽广告或访问特定资源),掌握正确的DNS修改方法都十分必要,本文将详细介绍Ubuntu中修改DNS的多种方式,包括图形界面操作、命令行配置以及针对不同网络连接类型的设置技巧,帮助用户根据实际需求选择合适的方法。

通过图形界面修改DNS(适用于桌面环境)
对于使用Ubuntu桌面版(GNOME桌面环境)的用户,最直观的方式是通过系统设置修改DNS,具体步骤如下:
- 打开“设置”应用:点击屏幕左上角的“活动”,输入“设置”并打开。
- 进入“网络”选项:在左侧菜单栏中选择“网络”。
- 选择网络连接类型:
- 若为有线连接,找到“Wired”(有线)选项;
- 若为Wi-Fi连接,找到对应的Wi-Fi名称(如“WLAN”)。
- 编辑DNS设置:点击对应连接右侧的齿轮图标,进入详细设置页面,在“IPv4”或“IPv6”标签下,找到“DNS”选项,删除原有DNS地址,添加新的DNS服务器地址(如公共DNS:
8.8.8、114.114.114或2400:cb00::6666等),每行一个地址。 - 保存并应用:点击“应用”按钮,系统会自动重启网络服务以生效。
注意:部分旧版本Ubuntu可能需要先断开再重新连接网络才能使更改生效。
通过命令行修改DNS(适用于服务器或无桌面环境)
对于Ubuntu服务器或其他无GUI环境的系统,需通过命令行修改DNS配置文件,以下是常用方法:
临时修改(重启后失效)
使用nmcli工具可快速修改当前活跃的网络连接的DNS:
sudo nmcli connection modify "Wired Connection 1" ipv4.dns "8.8.8.8 114.114.114.114" sudo nmcli connection up "Wired Connection 1" # 重启网络连接使其生效
若为Wi-Fi连接,将上述命令中的“Wired Connection 1”替换为Wi-Fi名称即可。

永久修改(重启后仍有效)
需编辑网络管理器的配置文件,以/etc/netplan/目录下的YAML文件为例(不同版本路径可能略有差异):
- 找到当前使用的netplan配置文件(通常为
01-netcfg.yaml或类似名称); - 使用文本编辑器(如
nano)打开该文件:sudo nano /etc/netplan/01-netcfg.yaml
- 在
network:部分下的ethernets:或wifis:子项中,添加nameservers:字段,指定DNS服务器地址:network: version: 2 renderer: networkd ethernets: enp0s3: # 有线网卡名称,可通过`ip a`查看 dhcp4: true nameservers: addresses: [8.8.8.8, 114.114.114.114] # DNS地址列表 - 保存文件并退出编辑器,运行以下命令应用配置:
sudo netplan apply
针对不同网络连接类型的特殊说明
有线连接 vs Wi-Fi连接
- 有线连接:通常使用
enp*或eth*命名(如enp0s3),配置文件位于/etc/netplan/目录下; - Wi-Fi连接:使用
wlp*命名(如wlp0s20f3),配置文件同样在/etc/netplan/目录下,只需将ethernets:改为wifis:即可。
静态IP与动态IP的区别
- 若使用静态IP(手动配置IP地址),需确保
dhcp4: false,并在同一级添加addresses:字段(如addresses: [192.168.1.100/24]); - 若使用动态IP(DHCP自动获取),保持
dhcp4: true即可,DNS会随IP一起由DHCP服务器分配,但可通过上述方法覆盖默认DNS。
验证DNS修改是否成功
修改完成后,可通过以下命令验证DNS是否生效:
- 检查当前DNS配置:
nmcli dev show | grep 'IP4.DNS\|IP6.DNS'
输出应包含新设置的DNS地址(如
8.8.8)。 - 测试域名解析:
nslookup baidu.com
若返回的IP地址正确(如百度的IP为
101.50.242),则说明DNS修改成功。
常见问题及解决方案
问题1:修改DNS后无法上网,怎么办?
原因:可能是DNS地址错误、网络服务未重启或配置文件语法有误。
解决方案:

- 检查DNS地址是否正确(可通过浏览器访问
https://www.google.com测试); - 重启网络服务:
sudo systemctl restart NetworkManager; - 若使用netplan,重新应用配置:
sudo netplan apply; - 检查netplan配置文件的缩进(YAML对缩进敏感,必须使用空格且层级一致)。
问题2:如何恢复默认DNS?
解决方案:
- 图形界面:删除自定义DNS地址,保留空白或恢复原值;
- 命令行(临时):使用
nmcli删除DNS配置:sudo nmcli connection modify "Wired Connection 1" ipv4.dns "" sudo nmcli connection up "Wired Connection 1"
- 命令行(永久):编辑netplan配置文件,删除
nameservers:字段,保存后运行sudo netplan apply。
Ubuntu中修改DNS的方法灵活多样,可根据使用场景选择合适的途径,图形界面适合普通用户快速操作,命令行则更适合服务器或自动化部署场景,无论采用哪种方式,务必注意配置文件的格式和DNS地址的正确性,避免因配置错误导致网络故障,通过合理修改DNS,可有效优化网络体验或满足特定网络需求。