关于如何为 Ubuntu 20.04 正确配置 DNS 的想法

关于如何为 Ubuntu 20.04 正确配置 DNS 的想法

自从一天前 wifi 断电以来,我一直无法在运行 ubuntu 的电脑上访问互联网。我可以 ping 8.8.8.8,所以我相信问题与 DNS 有关。但是,在网络管理器中手动设置 DNS 没有任何作用。我也尝试过 systemctl enable solved,但被告知我根本没有 solved.service 文件。

如果有人能提供任何关于如何解决这个问题的想法,我将不胜感激,因为我的想法越来越少了。我可以根据要求提供更多信息。

编辑:输入猫/etc/resolv.conf返回没有这样的文件或目录编辑2:按照先前答案的建议后,猫/etc/resolv.conf现在给出:

该文件由 man:systemd-resolved(8) 管理,请勿编辑。

以及有关该文件的其他此类信息。但是,我仍然无法访问互联网。编辑 3:输入猫/etc/resolv.conf给出名称服务器 127.0.0.53 和选项 ends0 trust-ad 行,但没有搜索 example.com一。

此外,输入/etc/reslov.conf给出bash:/etc/resolv.conf:权限被拒绝如果这对任何人都有用的话。

编辑 4:不知何故,不知何故,cat /etc/resolv.conf 再次告诉我没有这样的文件。我刚才确实重启了电脑,看看是否能解决问题。显然,没有。输入sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf返回无法解析主机(我的名字)的计算机:名称解析暂时失败然后(输入密码后)ln:无法创建 smbolic 链接 etc/resolv.conf:没有此文件或目录

编辑 5:创建该文本文件后名称服务器 8.8.8.8并尝试将其保存为 *etc/resolv.conf* 我被告知每个我尝试保存它的地方都出现错误,因为“没有这样的文件或目录”。

这是全新的情况,当我保存快速编写的 Word 文档时不会发生这种情况。

编辑 6:尝试保存新文件时出现错误,如下所示:

(gedit: 3844): Tepl-WARNING ** (时间戳): GVfs 元数据不支持回退到 TeplMetadataManager。GVfs 未正确安装或 GVfs 元数据在此平台上不受支持。在后一种情况下,您应该使用 --disable-gvfs-metadata 配置 Tepl

第二:

(gedit:3998)警告**(时间戳):在 parse_error 中遇到未处理的案例 11(打开文件“/etc/resolv.conf”时出错:符号链接级别过多)

最后:

(geditt:3998)严重**(时间戳)_gedit_tab_save_as_async:断言'tab->state == GEDIT_TAB_STATE_NORMAL || tab->state == GEDIT_TAB_STATE_EXTERNALLY_MODIFIED_NOTIFICATION || tab->state == GEDT_TAB_STATE_SHOWING_PRINT_PREVIEW' 失败

此外,当我尝试打开旧的 /etc/resolv.conf 时,系统提示无法打开,因为“其目标“/run/system/resolve/stub-resolv.conf”不存在”

编辑7:rm /etc/resolv.conf生产rm:无法删除‘/etc/resolv.conf’:权限被拒绝

我也不能将其拖到垃圾箱或以其他已知方式将其删除。

我开始怀疑此时重新安装 ubuntu 是否会更容易。

最终编辑:

成功了!问题似乎是我的旧 VPN 的一些奇怪的最后残留。移除它并重新启动机器后,问题就消失了。虽然我仍然担心诸如当我命令计算机销毁文件时计算机无法找到 /etc/resolv.conf 之类的事情,但我可以稍后再解决这个问题。

我想感谢所有帮助过我的人,因为我知道你们都有其他事情要做。我希望有一天我能充分理解这些事情,以便回报你们。

答案1

嘿,我在卸载protonvpn后也遇到了同样的问题。基本上它的作用是,即使卸载vpn后,ProtonVPN killswitch的网络设置仍然保持不变,根据这个帖子

这一页寻求解决方案。

如果你已卸载该应用程序,请禁用终止开关

可以从官方 Linux CLI 应用程序中轻松禁用终止开关,但如果您先卸载 CLI 应用程序而未禁用终止开关,则无法禁用终止开关。这可能会导致您的系统无法访问互联网。要在卸载 CLI 应用程序后删除终止开关:

  • 通过运行以下命令识别 ProtonVPN 连接名称:

    nmcli connection show --active
    

这将显示系统所有活动连接的列表。

  • 查找带有 pvpn- 前缀的任何连接。这通常包括 pvpn-killswitch 和 pvpn-ipv6leak-protection,也可能包括 pvpn-routed-killswitch。使用以下命令删除所有这些连接:

    nmcli connection delete [connection name]
    

    例如:

    nmcli connection delete pvpn-killswitch
    
  • 重新运行以下命令以验证 ProtonVPN 连接是否已被删除:

    nmcli connection show --active
    

如果仍有 ProtonVPN 连接,请按照上述说明删除它们。

答案2

没有/etc/resolv.conf文件,DNS解析就无法进行。文件被删除的原因很奇怪。你用过VPN软件吗?

键入命令systemctl status systemd-resolved(服务名称是systemd-resolved,而不是resolved单独)以查看服务是否正在运行。如果服务未运行,请尝试启动/启用它(systemctl start systemd-resolved/ systemctl enable systemd-resolved)。如果它正在运行,但/etc/resolv.conf仍然不存在,请执行以下操作:

sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

这应该会重新创建您的/etc/resolv.conf并且 DNS 解析应该开始工作。

更新:除了包含有关文件信息的一些注释之外,您的/etc/resolv.conf文件底部还应包含以下重要行:

nameserver 127.0.0.53
options edns0 trust-ad
search example.com

其中example.com应该替换为您的本地域名(例如您的 ISP 的域名)。

如果链接/etc/resolv.conf/run/systemd/resolve/stub-resolv.conf上述行后文件中仍未出现这些行,请先尝试断开网络连接并重新连接。如果此操作无法解决问题(这些行仍然未出现),请尝试重新启动systemd-resolved。如果仍然无效,请尝试链接/etc/resolv.conf到 fallback static 配置文件/usr/lib/systemd/resolv.conf

sudo rm /etc/resolv.conf
sudo ln -s /usr/lib/systemd/resolv.conf /etc/resolv.conf

该文件不包含“搜索”行,但应该包含另外两行。

如果这些行仍然不存在,请尝试使用文本编辑器 ( sudo gedit /etc/resolv.conf) 手动添加它们。systemd-resolved进行更改后重新启动。

相关内容