代理失败,因为系统使用本地 DNS 而不是 VPN 来解析(Ubuntu 20.04)

代理失败,因为系统使用本地 DNS 而不是 VPN 来解析(Ubuntu 20.04)

我通过 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

相关内容