几天前,尽管我没有更改任何网络设置,但我的 Ubuntu 18.04 开始出现一些问题。
问题是,当我连接到我的工作 VPN(OpenVPN)时,如果我选择“仅将此连接用于此网络上的资源”,则无法解析该 VPN 网络上的任何 DNS 名称。如果我禁用该选项,那么我可以解析网络内部的 DNS,但自然无法连接到外部的任何东西。
systemd-resolve --status
如果我禁用“仅将此连接用于此网络上的资源”并连接到 VPN,则会输出以下内容:
Link 10 (tun0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.xxx.xx.xx
DNS Domain: ~.
因此它实际上显示的是 DNS 服务器。但是,一旦我将“仅将此连接用于此网络上的资源”切换回 ON:
Link 11 (tun1)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 10 (tun0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
我已经尝试过这个问题的解决方案Ubuntu 18.04 连接到 openvpn 时无法进行 DNS 解析但似乎没有什么效果。
我也尝试过使用unbound
包但也没有帮助。
还发现了这个Ubuntu 18.04 突然无法访问 VPN 网络上的资源?所以我显然不是唯一一个遇到这种情况的人,但是却没有任何解决方案。
有点不知道该怎么办,不想因此重新安装整个系统。
答案1
我可能已经用这个命令解决了它:
nmcli c modify <vpn-settings-name> ipv4.dns-search '<domain>'
应该<vpn-settings-name>
与您的 NetworkManager 设置相同。
现在似乎很管用,除了发出上述命令之外,我没有修改启动后的任何内容,现在systemd-resolve --status
显示了 VPN 网络的正确 DNS。
希望发布一个解决方案以防其他人遇到同样的问题。
答案2
我发现了以下内容。
当勾选“仅将此连接用于此网络上的资源”时,我没有按照问题所述提供 DNS。
如果取消勾选,我会有一个重复的默认路由,一旦删除,包括 DNS 在内的所有内容都会正常工作。
比较这两种情况的输出,systemd-resolve --status
我发现以下内容:
当 DNS 工作但选项创建了重复路由时,它会显示以下内容:
DNS Domain: ~.
corporate-network.local
当DNS不工作时,会显示如下信息:
DNS Domain: corporate-network.local
因此,解决方案是勾选“仅将此连接用于此网络上的资源”框并~.
作为附加 DNS 域输入。
现在,连接可以直接从网络管理器进行,而无需删除虚假的默认网关和所有内部 DNS 解析。
答案3
如果尚未重新导入原始 .ovpn 文件,请尝试重新导入。我遇到过类似的问题,我的 VPN 的 DNS 服务器不会显示在 中systemd-resolve --status
,但一旦我在网络管理器中重新导入 .ovpn 文件,问题就解决了。
答案4
进入nmcli c modify "Put your VPN Name Here" ipv4.dns-search ~.
命令行,然后重新启动 VPN 连接对我来说是有效的。