当前位置:首页 > Ubuntu > 正文

Ubuntu DNS迁移与升级完整指南(新手也能轻松搞定的DNS配置教程)

在现代网络环境中,DNS(域名系统)扮演着将人类可读的域名(如 www.example.com)转换为机器可识别的IP地址的关键角色。随着 Ubuntu 系统版本的不断更新,其 DNS 管理机制也发生了显著变化——从传统的 /etc/resolv.conf 手动配置,逐步过渡到由 systemd-resolvedNetworkManager 自动管理。本文将手把手教你如何在 Ubuntu 系统中安全、高效地完成 Ubuntu DNS迁移DNS升级,即使是 Linux 新手也能轻松上手。

Ubuntu DNS迁移与升级完整指南(新手也能轻松搞定的DNS配置教程) DNS迁移 DNS升级教程 Ubuntu系统DNS配置 新手DNS设置指南 第1张

一、为什么需要进行 Ubuntu DNS迁移?

旧版 Ubuntu(如 16.04 及更早版本)通常直接编辑 /etc/resolv.conf 文件来设置 DNS 服务器。但在新版 Ubuntu(18.04 及以后)中,该文件可能被 systemd-resolvedNetworkManager 动态管理,手动修改会被自动覆盖。因此,为了确保 DNS 设置持久有效,必须采用新的配置方法。

二、检查当前 DNS 配置状态

首先,我们需要确认系统当前使用的是哪种 DNS 管理方式:

ls -l /etc/resolv.conf

如果输出显示它是符号链接(例如指向 /run/systemd/resolve/stub-resolv.conf),说明系统正在使用 systemd-resolved。此时直接编辑 /etc/resolv.conf 是无效的。

查看当前生效的 DNS 服务器:

resolvectl status# 或者systemd-resolve --status  # 旧版本命令

三、方法一:通过 systemd-resolved 配置 DNS(推荐)

这是 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(不推荐但可行)

如果你坚持使用传统方式,可以禁用 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 是否生效

使用以下命令测试 DNS 解析:

nslookup google.com# 或dig google.com

同时再次运行 resolvectl status 查看当前使用的 DNS 服务器是否为你设置的地址。

六、总结

通过本教程,你已经掌握了在新版 Ubuntu 中进行 Ubuntu系统DNS配置 的正确方法。记住,不要直接修改 /etc/resolv.conf,而是通过 NetworkManagersystemd-resolved 进行持久化设置。这不仅能避免配置被覆盖,还能提升系统的稳定性和兼容性。

无论你是系统管理员还是刚接触 Linux 的小白,只要按照上述步骤操作,就能顺利完成 DNS升级教程 中的所有任务。希望这篇 新手DNS设置指南 能为你节省大量排查时间!

如有疑问,欢迎在评论区留言交流!