我在 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
。
记下 VPN 的 DNS 服务器
ipconfig.exe /all
复制现有的 resolv.conf
sudo cp /etc/resolv.conf /etc/resolv.conf.new
取消链接当前的 resolv.conf
sudo unlink /etc/resolv.conf
sudo mv /etc/resolv.conf.new /etc/resolv.conf
编辑
/etc/wsl.conf
并将此内容添加到文件中。(有关此设置的更多信息,请参阅 高级设置配置)[network] generateResolvConf=false
打开
/etc/resolv.conf
并
a. 删除文件的第一行,该行包含描述自动生成的注释
b. 将上面 (1) 中的 DNS 条目添加为 DNS 服务器列表中的第一个条目。
c. 关闭文件。
断开 VPN 连接后,您必须将更改还原为 /etc/resolv.conf
。为此,请执行以下操作:
cd /etc
sudo mv resolv.conf resolv.conf.new
sudo ln -s ../run/resolvconf/resolv.conf resolv.conf