当在 Microsoft Windows 10 上激活 GlobalProtect VPN 时,WSL 如何访问互联网?

当在 Microsoft Windows 10 上激活 GlobalProtect VPN 时,WSL 如何访问互联网?

我在 Microsoft Windows 10 Enterprise 21H1 19043.1766 上使用 GlobalProtect VPN 5.2.12-16 和 Windows Subsystem for Linux (WSL) 2004.2022.1.0。当 GlobalProtect VPN 开启时,WSL 无法访问互联网。我该如何解决这个问题?

答案1

https://github.com/microsoft/WSL/issues/5068提到这是 WSL2 中的一个错误,并指出了以下解决方法https://docs.microsoft.com/en-us/windows/wsl/troubleshooting#bash-loses-network-connectivity-once-connected-to-a-vpn

如果在 Windows 上连接到 VPN 后,bash 丢失了网络连接,请尝试在 bash 内部使用此解决方法。此解决方法将允许您通过 手动覆盖 DNS 解析 /etc/resolv.conf

  1. 记下 VPN 的 DNS 服务器 ipconfig.exe /all

  2. 复制现有的 resolv.conf sudo cp /etc/resolv.conf /etc/resolv.conf.new

  3. 取消链接当前的 resolv.conf sudo unlink /etc/resolv.conf

  4. sudo mv /etc/resolv.conf.new /etc/resolv.conf

  5. 编辑 /etc/wsl.conf 并将此内容添加到文件中。(有关此设置的更多信息,请参阅 高级设置配置

    [network]
    generateResolvConf=false
    
  6. 打开 /etc/resolv.conf 并
    a. 删除文件的第一行,该行包含描述自动生成的注释
    b. 将上面 (1) 中的 DNS 条目添加为 DNS 服务器列表中的第一个条目。
    c. 关闭文件。

断开 VPN 连接后,您必须将更改还原为 /etc/resolv.conf。为此,请执行以下操作:

  1. cd /etc
  2. sudo mv resolv.conf resolv.conf.new
  3. sudo ln -s ../run/resolvconf/resolv.conf resolv.conf

相关内容