我不明白为什么我的电脑无法解析名称,直到我手动删除过时的nmcli device
条目。
说明/步骤:
ubuntu 22.04 桌面版,使用network-manager
和systemd-resolved
.我安装了 VPN,并启用了“阻止 VPN 之外的连接”。遇到连接问题(特别是无法解析任何名称我相信)。我禁用了 VPN 应用程序中的“killswitch”,然后卸载了 VPN,然后重新启动。
我能够 ping 多个 ip(包括我想要的 dns 服务器地址 1.1.1.1 和 google.com 的当前 IP),但nslookup
无法解析任何主机名。我可以dig @1.1.1.1 google.com
也成功了。
我有限的理解表明,如果我有:
ip addr
具有预期子网 IP 的有效接口ip route
该子网上 IP 的有效默认值,- 和 的 dns
1.1.1.1
服务器Network Manager
- 如 NM gui 上所示 -
/etc/resolve.conf
指向本地主机上的服务器,systemd-resolvd
- 但请注意我没有看到任何
1.1.1.1
文字任何地方在/etc/systemd/
修复之前或之后
- 如 NM gui 上所示 -
那么这个(dns)“应该可以工作”。显然不是这样。
经过一番摸索,我发现了一个陈旧的设备nmcli d
,其类型dummy
和状态为connected
,从它的名称来看,它一定是由(现已卸载的)VPN 应用程序创建的。如果它很重要,则该条目是第二个,位于正确/预期连接的 WiFi 设备下方。
删除此 nmclidevice
会导致 dns(nslookup
以及浏览器等程序)恢复工作(解析)。具体来说,从我重新启动nslookup ...
(未能解决)开始,然后nmcli connection delete ...
,然后nslookup ...
工作。没有其他更改/注销/等。
问题:
我应该在哪里知道去了解这个过时的 nmcli 连接是问题所在/这里还涉及哪些其他组件?我可能会认为我的问题是缺乏systemd-resolved
知识,但是错误条目的链接在哪里nmcli d
,systemd-resolved
NM 配置在哪里使用1.1.1.1
?
答案1
即使由 systemd 和 NetworkManager 管理,您也应该能够看到配置:sudo systemd-analyze cat-config systemd/resolved.conf
其中 /etc/systemd/resolved.conf 包含在端口 53 上为本地主机提供服务的配置。在此配置中,您可以使用 DOH(基于 Https 的 DNS)或 DOT (基于 TLS 的 DNS)。