问题解释:
Ubuntu 22.04 在使用 Systemd-resolved 服务时,对 /etc/resolv.conf
文件的修改可能不会持久化,因为 Systemd-resolved 服务管理了 DNS 解析配置。
解决方法:
如果你想要直接修改 DNS 而不使用 Systemd-resolved,可以按照以下步骤操作:
a. 禁用 Systemd-resolved 服务:
sudo systemctl disable systemd-resolved
b. 安装
dnsmasq
或其他 DNS 服务器软件,并配置它来使用你想要的 DNS 服务器。c. 修改
/etc/resolv.conf
文件,添加你想要的 DNS 服务器条目。d. 确保你的网络配置(比如 NetworkManager 或 netplan 配置)指向新的 DNS 服务器或不指定 Systemd-resolved。
如果你想要继续使用 Systemd-resolved,可以通过以下步骤设置 DNS 服务器:
a. 使用
resolvectl
命令设置 DNS 服务器:sudo resolvectl dns [interface] [DNS-server]
其中
[interface]
是你的网络接口名称,比如eth0
,[DNS-server]
是你想要设置的 DNS 服务器地址,比如8.8.8.8
。b. 如果你想要添加或修改上游 DNS 服务器,可以编辑
/etc/systemd/resolved.conf
文件,并在[Resolve]
部分添加或修改DNS=
行。如果你只是想临时修改 DNS 而不想改动服务配置,可以使用
resolvectl
命令:sudo resolvectl dns [interface] [DNS-server]
这会立即生效,但重启后会丢失,除非你在配置文件中设置了这些值。
确保在进行任何更改后重启网络服务或系统,以使更改生效。