我通过 NetworkManager 在 openconnect 上使用 VPN。我还有一个代理服务器,其配置可通过 VPN(在http://wpad/wpad.dat
)访问。偶尔,当我连接到 VPN 时,它无法使用代理服务器。我认为这是因为代理服务器的 DNS 查找失败。
输出resolvectl status
显示用于 DNS 的两个链接,并且 vpn 是默认的:
Link 5 (vpn0)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: <vpn_dns_a>
DNS Servers: <vpn_dns_a>
<vpn_dns_b>
DNS Domain: ~.
<vpn_dom>
Link 3 (wlo1)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: <local_dns_a>
DNS Servers: <local_dns_a>
<local_dns_b>
DNS Domain: <local_dom>
我已经验证了这/etc/resolv.conf
是 的符号链接/run/systemd/resolve/stub-resolv.conf
。文件本身如下所示:
nameserver 127.0.0.53
options edns0 trust-ad
search <local_dom> <vpn_dom>
systemd-resolve wpad
返回服务器 IP,但nslookup wpad
超时。我查看了systemd-resolved
两种情况下的日志,前者似乎使用 VPN 的 DNS,而后者(以及 curl 等)使用本地链接的 DNS。这也许可以解释为什么它无法解析服务器。
经过足够的调整(重启网络管理器、清除缓存等)后,这个问题最终得以解决,但之后又再次出现。我是否需要配置其他内容以使系统始终使用 VPN?
答案1
尝试在文件中search <local_dom> <vpn_dom>
交换顺序。search <vpn_dom> <local_dom>
resolv.conf