我有一台安装了 Ubuntu 16.04 的 Ubuntu VM。它可以正常访问网络,并能解析 DNS。
然后我将其升级do-release-upgrade
到 Ubuntu 18.04、Ubuntu 20.04,然后是 Ubuntu 22.04。每次升级之间都会重新启动。因此,我必须假设 DNS 在 20.04 升级后正常工作,因为它能够下载和处理软件包更新。
现在,使用 22.04,当我尝试通过 进行查找时出现SERVFAIL
错误nslookup
。
$ nslookup google.com
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find google.com: SERVFAIL
错误是指 DNS 服务器 127.0.0.53,据我所知,这是一个环回地址。但是,我找不到在哪里可以更改它。
大多数网站都说我应该查看 netplan.yaml 配置,但是 netplan 文件夹是空的:
/etc/netplan$ ls -la
total 16
drwxr-xr-x 2 root root 4096 Sep 7 2021 .
drwxr-xr-x 116 root root 12288 Nov 25 13:32 ..
我尝试编辑/etc/network/interfaces
并更改以下dns-nameservers
行:
auto eth0
iface eth0 inet static
address 10.100.99.xxx
netmask 255.255.255.0
gateway 10.100.99.yyy
dns-nameservers 8.8.8.8
经过此更改后,我重新启动了networking
服务并重新启动 - 没有变化。
我知道我可以编辑/etc/resolv.conf
- ,它目前反映的是 127.0.0.53 地址,而且我能够立即让 DNS 服务工作。此更改在重启后不会生效。
systemctl status network-manager
揭示network-manager.service could not be found
。
我在哪里可以更改我的 DNS 设置?
答案1
使用 nmcli,例如:nmcli device mod $deviceName ipv4.dns "8.8.8.8 8.8.4.4"
.nmcli device
列出定义的设备。
要检查 DNS:nmcli device show | grep IP4.DNS
编辑:systemd-resolved 服务会覆盖/etc/resolv.conf
。如果它正在运行,您可以设置 DNS/etc/systemd/resolved.conf
并使用 重新启动服务systemctl restart systemd-resolved
。