在现代网络环境中,DNS(域名系统)扮演着将人类可读的域名(如 www.example.com)转换为机器可识别的IP地址的关键角色。随着 Ubuntu 系统版本的不断更新,其 DNS 管理机制也发生了显著变化——从传统的 /etc/resolv.conf 手动配置,逐步过渡到由 systemd-resolved 或 NetworkManager 自动管理。本文将手把手教你如何在 Ubuntu 系统中安全、高效地完成 Ubuntu DNS迁移 和 DNS升级,即使是 Linux 新手也能轻松上手。
旧版 Ubuntu(如 16.04 及更早版本)通常直接编辑 /etc/resolv.conf 文件来设置 DNS 服务器。但在新版 Ubuntu(18.04 及以后)中,该文件可能被 systemd-resolved 或 NetworkManager 动态管理,手动修改会被自动覆盖。因此,为了确保 DNS 设置持久有效,必须采用新的配置方法。
首先,我们需要确认系统当前使用的是哪种 DNS 管理方式:
ls -l /etc/resolv.conf 如果输出显示它是符号链接(例如指向 /run/systemd/resolve/stub-resolv.conf),说明系统正在使用 systemd-resolved。此时直接编辑 /etc/resolv.conf 是无效的。
查看当前生效的 DNS 服务器:
resolvectl status# 或者systemd-resolve --status # 旧版本命令 这是 Ubuntu 18.04+ 的标准做法。假设你要将 DNS 服务器设置为 Cloudflare 的 1.1.1.1 和 Google 的 8.8.8.8:
1. 编辑 NetworkManager 配置(适用于桌面版或使用 NetworkManager 的系统):
sudo nano /etc/NetworkManager/NetworkManager.conf 在 [main] 段落下添加(若不存在则创建):
[main]dns=systemd-resolved 2. 重启 NetworkManager 和 systemd-resolved:
sudo systemctl restart NetworkManagersudo systemctl restart systemd-resolved 3. 为特定网络接口设置 DNS(以 eth0 为例):
sudo nmcli con mod "Wired connection 1" ipv4.dns "1.1.1.1 8.8.8.8"sudo nmcli con up "Wired connection 1" 如果你坚持使用传统方式,可以禁用 systemd-resolved:
sudo systemctl disable --now systemd-resolvedsudo rm /etc/resolv.confsudo nano /etc/resolv.conf 在文件中写入:
nameserver 1.1.1.1nameserver 8.8.8.8 注意:此方法可能导致某些依赖 systemd-resolved 的服务(如 snap 应用)出现问题,仅建议在特殊场景下使用。
使用以下命令测试 DNS 解析:
nslookup google.com# 或dig google.com 同时再次运行 resolvectl status 查看当前使用的 DNS 服务器是否为你设置的地址。
通过本教程,你已经掌握了在新版 Ubuntu 中进行 Ubuntu系统DNS配置 的正确方法。记住,不要直接修改 /etc/resolv.conf,而是通过 NetworkManager 或 systemd-resolved 进行持久化设置。这不仅能避免配置被覆盖,还能提升系统的稳定性和兼容性。
无论你是系统管理员还是刚接触 Linux 的小白,只要按照上述步骤操作,就能顺利完成 DNS升级教程 中的所有任务。希望这篇 新手DNS设置指南 能为你节省大量排查时间!
如有疑问,欢迎在评论区留言交流!
本文由主机测评网于2025-12-06发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025123746.html