情况
之前,为了使用 Timeshift 正确备份我新安装的 Ubuntu 22.04...我尝试安装 dsnmasq 进行本地 Web 开发。当然,我破坏了我的 DNS,现在我的全新安装无法访问互联网:-(
错误
这些是我个人笔记中导致错误的确切步骤:
1. Disable & stop systemd resolved
$ sudo systemctl disable systemd-resolved
$ sudo systemctl stop systemd-resolved
2. Remove symlink on `/etc/resolv.conf` & remove the file
$ ls -lh /etc/resolv.conf
$ sudo rm /etc/resolv.conf
3. create new /etc/resolv.conf
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolv.conf'
在上述第 3.) 项之后,我完全无法访问互联网。
故障排除
1.) 我轻松地重新启用 systemd-resolved
更新: @keff 建议的解决方案如下,似乎是正确的,但它不起作用。
1.) 我创建了 ubuntu 22.04 的 virtualbox 安装,并将其复制/etc/resolv.conf
到共享文件夹中,并截取了ls -l /etc/resolv.conf
输出的屏幕截图。
2.)我按照@keff的指示并将结果与我的virtualbox输出进行比较......它们匹配。我重新启动了机器以确保所有可能的服务都重新启动。
DNS 无法正常工作,尽管它已正确配置。我有两台笔记本电脑连接到同一个 wifi 连接,因此我知道 wifi 工作正常。
我很困惑。
(是的,53端口在ufw中开放)
问题
我的愚蠢之处在于,“我如何重新建立 /etc/resolv.conf
符号链接,以便该盒子再次具有外部互联网访问权限?”
要在 Ubuntu 22.04 系统上重新建立/etc/resolv.conf的符号链接并恢复互联网访问,请执行以下步骤:
1.打开终端或命令提示符。
2.检查原始/etc/resolv.conf文件的备份是否存在:
ls -lh /etc/resolv.conf
如果您看到名为 /etc/resolv.conf.backup 之类的文件,请继续执行步骤4。否则,请继续执行步骤3。
3.生成新的/etc/resolv.conf 文件:
sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
4.恢复 /etc/resolv.conf 的原始备份(如果存在):
sudo cp /etc/resolv.conf.backup /etc/resolv.conf
5.重新启动 systemd-resolved 服务以应用更改:
sudo systemctl restart systemd-resolved
这将重新创建符号链接并恢复正确的 DNS 配置。
6.验证互联网访问是否已恢复:
ping -c 3 www.heise.de
如果互联网连接正常,您应该会看到成功的 ping 响应。
通过执行这些步骤,您应该能够重新建立/etc/resolv.conf的符号链接并在 Ubuntu 系统上重新获得互联网访问权限。