You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让WSL2嵌套VPN流量通过Windows 10主机已建立的VPN路由?

在WSL2中实现嵌套VPN连接(基于Windows主机Cisco AnyConnect)

核心思路

让WSL2的所有流量先转发到Windows主机,借助主机已建立的Cisco AnyConnect隧道传输,再在WSL内建立openconnect GP VPN,复刻VirtualBox NAT模式的流量走向。

具体操作步骤

1. 确认WSL2默认网络模式

WSL2默认采用NAT网络,无需额外调整。可通过wsl -l -v查看版本,确保当前使用的是WSL2。

2. 修改WSL2默认路由,指向Windows主机

  • 在WSL终端执行ip route show default,记录输出中via后的IP(例如172.28.0.1),这是Windows主机在WSL虚拟网络中的专属地址。
  • 临时修改路由(重启WSL后失效):
    sudo ip route del default
    sudo ip route add default via <Windows虚拟IP>
    
  • 永久生效配置:
    1. 创建/etc/wsl.conf文件,禁用自动生成resolv.conf:
      sudo tee /etc/wsl.conf <<EOF
      [network]
      generateResolvConf = false
      EOF
      
    2. 编辑shell启动脚本(以bash为例),添加路由命令:
      echo -e "sudo ip route del default\nsudo ip route add default via <Windows虚拟IP>" >> ~/.bashrc
      
    3. 配置sudo免密执行ip命令,避免每次启动输密码:
      echo "$USER ALL=(ALL) NOPASSWD: /usr/sbin/ip" | sudo tee /etc/sudoers.d/wsl-route
      sudo chmod 440 /etc/sudoers.d/wsl-route
      

3. 开启Windows主机的VPN网卡转发功能

打开管理员权限的PowerShell,执行:

Set-NetIPInterface -InterfaceAlias "AnyConnect VPN Adapter" -Forwarding Enabled

提示:若不清楚网卡别名,可执行Get-NetIPInterface查看,找到包含AnyConnect的网卡名称。

4. 配置Windows防火墙(关键排查项)

确保Windows防火墙允许WSL虚拟网卡的流量通过VPN:

  • 打开「Windows Defender防火墙」→「高级设置」
  • 添加入站规则:允许来自vEthernet (WSL)网卡的所有TCP/UDP流量
  • 或临时关闭防火墙测试(仅用于排查问题,测试后务必恢复)

5. 在WSL2中安装并连接openconnect GP VPN

  • 以Ubuntu为例,安装openconnect:
    sudo apt update && sudo apt install openconnect
    
  • 连接GP VPN:
    sudo openconnect --protocol=gp <你的GP VPN服务器地址>
    
    按照提示输入用户名、密码等验证信息即可建立连接。

问题排查

  • 若WSL无法ping通GP VPN服务器:检查路由是否正确指向Windows主机,Windows防火墙是否拦截,AnyConnect是否开启转发。
  • 若GP VPN连接失败:确认openconnect版本支持GP协议(建议安装最新版),或尝试添加--disable-web-security参数(部分GP服务器需要)。

内容的提问来源于stack exchange,提问作者jani-matti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 16:46:13