blu*_*isk 7 network-manager networking dns wireguard
Ubuntu 20.10。尝试修复分割连接的 DNS(用于工作的 Wireguard VPN 和用于其他所有内容的公共链接),但在 NetworkManager+systemd 解析的设置中陷入困境。
问题是我需要对通过 Wireguard 链接(仅限于单个域)的任何查询禁用 DNS-over-TLS。
/etc/systemd/resolved.conf似乎只允许全局设置。因此,当我在那里启用 DNS over TLS 时,它对于我的wireguard 链接也处于活动状态。
我可以使用 手动关闭 Wireguard 链接resolvectl dnsovertls wg0 no,但每次重新启动 systemd-resolved 时,它都会重新打开。
如果我理解正确的话,systemd-resolved 的每个链接设置是由 NetworkManager 管理的。但是 NetworkManager 的关键文件( /etc/NetworkManager/system-connections/中的文件)似乎没有 dns over tls 的设置。
我怎样才能让这个设置持续存在?
小智 3
我遇到了同样的问题,并且能够通过使用 NetworkManager-dispatcher 来解决它,它允许在连接事件上运行脚本。
我不确定是否可以在 Ubuntu 上工作,因为我使用的是 Fedora,但这是我所做的:
systemctl enable NetworkManager-dispatcher.service
Run Code Online (Sandbox Code Playgroud)
systemctl enable NetworkManager-dispatcher.service
Run Code Online (Sandbox Code Playgroud)
替换udp-other为您的 VPN 连接的名称(或者,您可以使用$CONNECTION_UUID)并确保脚本的所有者和组是 root 并且它被标记为可执行文件。
现在可以通过在此提交connection.dns-over-tls中添加的设置来实现这一点。
要为所有 NetworkManager 管理的连接设置默认值,请编辑NetworkManager.conf以包括例如:
[connection]
connection.dns-over-tls=0
Run Code Online (Sandbox Code Playgroud)
要设置单个连接,请执行:
nmcli connection modify MyConnection connection.dns-over-tls 0
Run Code Online (Sandbox Code Playgroud)