在Ubuntu操作系统中,“去掉DNS”这一表述通常涵盖了多种操作意图,它并非指彻底删除域名系统(DNS)这一网络基础协议,而是更多地指向管理或重置系统的DNS解析配置,用户可能出于故障排查、隐私保护、使用特定DNS服务或恢复默认设置等目的,需要修改或清除现有的DNS配置,本文将深入探讨在Ubuntu中实现这一目标的不同方法,分析其适用场景与潜在影响,并提供清晰的步骤指导。

使用Netplan进行配置(适用于Ubuntu 18.04及以后的服务器版)
自Ubuntu 18.04 LTS起,服务器版默认采用Netplan作为网络配置工具,它通过读取/etc/netplan/目录下的YAML文件来管理网络接口,包括DNS设置,要“去掉”或重置DNS,你需要编辑相应的配置文件。
使用ls /etc/netplan/命令查看配置文件名,通常为01-netcfg.yaml或50-cloud-init.yaml等,使用文本编辑器打开它,
sudo nano /etc/netplan/01-netcfg.yaml
可能类似如下:
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
这里的nameservers.addresses部分明确指定了DNS服务器,要“去掉”这些手动设置的DNS,让系统从DHCP服务器自动获取,你有两种选择:
- 删除整个
nameservers部分:直接将nameservers及其下属的行删除,这样,Netplan在应用配置时将不会设置静态DNS,转而依赖DHCP提供的DNS信息。 - 清空地址列表:保留
nameservers结构,但将addresses列表置空,如addresses: [],效果与删除相同。
修改完成后,保存文件并应用配置:
sudo netplan apply
此方法会立即生效,并且在系统重启后依然保持,是服务器环境下推荐的标准操作。
通过图形界面(GUI)修改(适用于桌面版Ubuntu)
对于桌面版用户,最直观的方式是通过系统设置,步骤如下:

- 打开“设置”应用程序。
- 在左侧导航栏中选择“网络”或“Wi-Fi”。
- 点击你正在活动的网络连接(有线连接”或已连接的Wi-Fi网络名称)旁边的齿轮图标,进入其详细配置页面。
- 切换到“IPv4”或“IPv6”选项卡(取决于你的网络环境)。
- 在DNS设置部分,默认选项可能是“自动”,要清除手动设置的DNS,可以将其切换回“自动”,或者如果当前是手动模式,直接将DNS输入框中的服务器地址(如
8.8.8, 8.8.4.4)全部删除。 - 点击右上角的“应用”按钮保存更改。
系统会重新连接网络,新的DNS配置随即生效,此方法用户友好,无需接触命令行,适合日常使用。
理解并修改 /etc/resolv.conf(高级与临时方案)
/etc/resolv.conf是Linux系统中传统上用于存储DNS resolver配置的文件,其中包含nameserver条目,在现代Ubuntu系统中,这个文件通常是一个由systemd-resolved服务自动生成的符号链接,直接编辑它往往只是临时生效,系统重启或网络服务重启后,配置会被覆盖。
你可以通过ls -l /etc/resolv.conf命令来验证,如果输出显示它指向../run/systemd/resolve/stub-resolv.conf或类似路径,就说明它是由系统管理的。
尽管不推荐,但在某些特殊的临时测试场景下,你可以直接修改它:
sudo nano /etc/resolv.conf
要“去掉”DNS,你可以删除所有以nameserver开头的行,或者用将它们注释掉,这样,系统将无法进行任何域名解析。这会导致所有依赖域名的网络功能(如浏览网页、软件更新)完全失效。
若要使对resolv.conf的修改永久化,需要禁用systemd-resolved对它的管理,这是一个更复杂的操作,可能影响系统的其他网络功能,因此非必要不推荐。
去掉DNS后的影响与替代方案
当你移除了所有DNS服务器配置后,系统将失去将人类可读的域名(如www.google.com)转换为机器可读的IP地址(如250.199.68)的能力,尝试ping www.google.com会失败,但ping 142.250.199.68依然可以成功。

在这种情况下,/etc/hosts文件成为了一个重要的替代方案,它是一个本地的静态映射表,可以手动指定域名与IP地址的对应关系,其格式如下:
| IP地址 | 主机名 | 别名 |
|---|---|---|
0.0.1 |
localhost |
|
168.1.10 |
fileserver.local |
nas |
250.199.68 |
www.google.com |
通过编辑sudo nano /etc/hosts,你可以添加必要的映射,确保特定的服务即使在无DNS环境下也能被访问,这在开发测试或内网环境中非常有用。
不同DNS配置方法对比
| 方法 | 适用场景 | 配置文件/位置 | 永久性 | 优点与缺点 |
|---|---|---|---|---|
| Netplan | Ubuntu 18.04+ 服务器版 | /etc/netplan/*.yaml |
永久 | 标准、稳定、可脚本化;但需要学习YAML语法。 |
| 图形界面(GUI) | Ubuntu 桌面版 | 系统设置 -> 网络 | 永久 | 直观、易用;功能相对基础,不适用于无图形界面的服务器。 |
/etc/resolv.conf |
临时测试、特殊排错 | /etc/resolv.conf |
临时(默认) | 直接、快速;易被系统覆盖,不适合作为长期解决方案。 |
相关问答FAQs
我手动修改了 /etc/resolv.conf 文件,为什么每次重启后设置都失效了?
解答: 这是因为在现代Ubuntu系统中,/etc/resolv.conf文件通常是一个由systemd-resolved服务管理的符号链接,该服务会根据Netplan配置或DHCP获取的信息动态生成真实的DNS配置文件,并覆盖你手动编辑的内容,这是一个设计上的保护机制,旨在确保网络配置的一致性和自动化,要永久修改DNS,请通过Netplan(服务器版)或图形界面(桌面版)进行操作。
如果我完全禁用了DNS,我的Ubuntu系统还能连接到互联网吗?
解答: 这个问题需要分情况回答,你的系统仍然可以建立网络连接,但仅限于使用IP地址的通信,你无法通过浏览器访问www.ubuntu.com,因为系统无法解析这个域名,如果你知道该网站的IP地址,直接在浏览器中输入IP地址,理论上是可以访问的(前提是该服务器配置了IP共享),同样,apt update等依赖域名解析的软件管理工具会失败,禁用DNS实际上相当于“阉割”了现代互联网的寻址功能,系统会变得极难使用。