我昨天从 Ubuntu 20.04 升级到 22.04.1。
现在,每当我重新打开 wifi(暂时关闭)时,我都无法访问互联网。
我检查了:
ls -lah /etc/resolv.conf
lrwxrwxrwx 1 root root 28 Feb 7 14:24 /etc/resolv.conf -> /opt/valet-linux/resolv.conf
cat /etc/resolv.conf
search attlocal.net
nameserver 127.0.0.1
然后我进行更改:
sudo vim /opt/valet-linux/resolv.conf
cat /opt/valet-linux/resolv.conf
nameserver 8.8.8.8
然后互联网再次工作。
但是,如果我关闭 Wi-Fi 然后再打开,该文件将再次重置。
我已经尝试过:
和:
cat /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
来自https://linuxize.com/post/how-to-set-dns-nameservers-on-ubuntu-18-04/以及 AskUbuntu 和 StackOverflow 上的无数帖子。
我也试过:
cat /etc/dhcp/dhclient.conf
...
# https://stackoverflow.com/a/48652642/470749
supersede domain-name-servers 8.8.8.8;
来自https://stackoverflow.com/a/48652642/470749。
什么都不管用。我对 Ubuntu 失去了耐心。
我做了什么让自己陷入困境?谢谢。
只能有一个条目 writes/managed
/etc/resolv.conf
。例如,
NetworkManager
或人类管理员。还有resolvconf
,这是一个接受多个源进行 DNS 配置,然后将它们合并为一个的工具/etc/resolv.conf
。默认情况下,NetworkManager 以设置运行
[main].rc-manager=symlink
。看man NetworkManager.conf
。除非您更改该配置,否则 NetworkManager 不会触及该文件。另请阅读有关[main].dns=
设置的信息。通常,您需要决定应该配置什么,然后配置所有相关软件以就此达成一致。由于默认情况下 NetworkManager 已经单独留下文件,如果它是一个符号链接,您不需要告诉 NetworkManager 停止。
如果您使用其中一个 GUI 来配置 DNS,那么这些 GUI 实际上会在 NetworkManager 中配置配置文件。只有当 NetworkManager 被指示写入时才有效
/etc/resolv.conf
常用
systemd-resolved
。Resolved 不写/etc/resolv.conf
,但它可以将其作为输入使用。如果你使用它,通常/etc/resolv.conf
应该只是一个符号链接,/ETC/RESOLV.CONF
如man systemd-resolved
. 在这种情况下,NetworkManager 可以将其 DNS 配置推送到systemd-resolved
. 运行resolvectl
以在systemd-resolved
.改变
/etc/dhcp/dhclient.conf
似乎是错误的。特别是,如果您使用默认不使用 dhclient 的 NetworkManager。无论如何,在 DHCP 客户端中注入 DNS 设置是不对的。在 NetworkManager 中,您通过在 NetworkManager 的连接配置文件中设置它来配置 DNS(+ 设置您的系统和 NetworkManager 以使用这些设置做正确的事情)。没有唯一的答案,因为这取决于您想要如何准确地设置您的系统。通常你会坚持你的发行版为你提供的东西。了解您的发行版要做什么,并在这种情况下使用适当的机制。谁创建了
/etc/resolv.conf
符号链接,为什么这样做?(NetworkManager 和 systemd-resolved 都不会那样做)。由于我已经多年没有使用 valet-linux,所以我完全忘记了它,甚至不认识它的名字。
感谢 @chili555 的评论指出了我什至没有注意到的不寻常之处。
我终于找到了https://github.com/cpriego/valet-linux/issues/115#issuecomment-1406379951,它结合了如下命令(灵感来自https://cpriego.github.io/valet-linux/ #uninstalling),似乎有效:
使用
systemd-resolve
而不是手动编辑resolve.conf
。例如: