在Ubuntu操作系统中,DNS(域名系统)扮演着互联网“电话簿”的角色,负责将我们易于记忆的域名(如www.google.com)解析为机器能够识别的IP地址,默认情况下,系统会自动从网络服务提供商(ISP)获取DNS服务器地址,为了获得更快的解析速度、增强网络隐私与安全性,或是绕过某些区域限制,手动修改DNS设置是一个常见且有效的操作,本文将详细介绍在Ubuntu系统中通过图形界面和命令行两种主流方式修改DNS的步骤,并提供一些实用的建议。

通过图形用户界面(GUI)修改
这种方法最适合桌面版Ubuntu用户,操作直观,无需接触命令行,非常适合新手。
- 打开系统设置:点击屏幕右上角的网络图标,在弹出的菜单中选择“有线设置”或“Wi-Fi设置”,然后点击您当前正在使用的网络连接旁边的齿轮图标。
- 进入IPv4/IPv6配置:在弹出的连接设置窗口中,切换到“IPv4”或“IPv6”标签页,大多数情况下,我们配置的是IPv4 DNS。
- 修改DNS设置:在“DNS”一栏,默认选项通常是“自动(DHCP)”,请将其更改为“手动”。
- 输入DNS地址:下方的DNS服务器地址输入框会变为可编辑状态,您可以在此处输入您希望使用的DNS服务器地址,多个地址之间用逗号分隔,使用谷歌的公共DNS可以输入
8.8.8, 8.8.4.4。 - 应用并保存:点击窗口右上角的“应用”按钮保存设置,系统可能会提示您需要重新连接网络才能使更改生效,断开并重新连接网络,或者直接重启计算机,新的DNS设置即可生效。
通过命令行(终端)修改
对于Ubuntu服务器用户或偏好使用命令行的桌面用户而言,通过终端修改DNS更为灵活和强大,现代Ubuntu版本(18.04及以后)使用 Netplan 作为网络配置工具。
- 定位Netplan配置文件:Netplan的配置文件存放在
/etc/netplan/目录下,文件名可能因版本和安装方式而异,通常以.yaml如01-netcfg.yaml或50-cloud-init.yaml,您可以使用ls /etc/netplan/命令查看。 - 编辑配置文件:使用
sudo权限和文本编辑器(如nano)打开该文件。sudo nano /etc/netplan/01-netcfg.yaml
- 添加DNS配置:在文件中找到您要配置的网络接口(如
ethernets或wifis下的设备名),并添加nameservers部分,配置结构如下:network: version: 2 renderer: networkd ethernets: enp0s3: # 您的网络接口名称 dhcp4: yes nameservers: addresses: [8.8.8.8, 1.1.1.1] # 在此添加您的DNS地址请注意YAML文件的缩进,必须严格使用空格,不能使用Tab键。
- 应用配置:保存并关闭文件后,运行以下命令使新的网络配置生效:
sudo netplan apply
如果没有错误提示,DNS修改就已成功应用。

常用公共DNS服务器推荐
选择一个可靠的DNS服务器至关重要,以下是一些广受好评的公共DNS选项:
| 提供商 | 主DNS | 备用DNS | 特点 |
|---|---|---|---|
8.8.8 |
8.4.4 |
稳定、快速,全球覆盖广泛 | |
| Cloudflare | 1.1.1 |
0.0.1 |
注重隐私,响应速度极快 |
| Quad9 | 9.9.9 |
112.112.112 |
自动拦截已知恶意网站,安全性高 |
| OpenDNS | 67.222.222 |
67.220.220 |
提供可选的家长控制和内容过滤 |
如何验证DNS是否修改成功
无论采用哪种方法,您都可以通过终端中的 nslookup 或 dig 命令来验证DNS设置是否已生效,打开终端,输入:
nslookup google.com
在命令输出的第一行,您会看到显示当前正在使用的DNS服务器地址,如果显示为您新设置的地址(如 8.8.8),则说明修改成功。
相关问答FAQs
Q1:修改DNS后无法上网怎么办?
A1:这通常是由于输入了错误的DNS服务器地址,请仔细核对您输入的IP地址是否正确,如果确认无误但仍然无法上网,可以尝试将DNS设置恢复为“自动”(GUI方法)或从配置文件中删除 nameservers 部分(命令行方法)并重新应用,然后重启网络服务,或者,可以尝试其他可靠的公共DNS地址,如 8.8.8。

Q2:什么是DNS over HTTPS (DoH)?Ubuntu支持吗? A2:DNS over HTTPS (DoH)是一种通过加密的HTTPS连接来执行DNS查询的协议,它能有效防止您的网络浏览历史被中间人窃听或篡改,极大地提升了隐私保护,Ubuntu系统本身并未提供简单的全局DoH开关,但主流的现代浏览器(如Firefox、Chrome和Edge)都内置了DoH功能,您可以在浏览器的网络设置中手动启用DoH,并选择支持的提供商(如Cloudflare或Google),这样浏览器发出的所有DNS请求都将是加密的。