如何通过 VPN 路由 WSL2 流量?

如何通过 VPN 路由 WSL2 流量?

我在 Windows 11 x64 上使用 WSL2 进行软件开发。我希望使用 Aruba VIA 通过学校的 VPN 服务路由 WSL2 流量,因为我在家工作时需要通过 SSH 进入服务器并安装网络驱动器,但不想将学校资源用于其他用途(在 Windows 上观看 Netflix 等),因为网络驱动器需要长时间保持安装状态。

如果我可以仅为端口 22(SSH)和 2049(NFS)启用 VPN,则可以尽可能以非侵入方式完成此操作。

如果可能的话,我还希望有一个可以在系统范围的 VPN 和仅限 WSL2 的 VPN 之间切换的脚本。

我怎样才能实现这个目标?

答案1

事实证明,正如@Ramhound 所建议的那样,我必须在 WSL 上安装 Aruba VIA。我之前尝试过但没有成功,因为我不知道 VIA 安装的服务依赖于 的存在systemd,而 WSL 上不存在该服务,因此必须启用它。因此,在 WSL2 上安装 Aruba VIA 的过程如下(在 Ubuntu 20.04 上测试):

  1. 使用以下方式在 WSL2 上启用 systemdsystemd-genie
  2. 启动启用 systemd 的 shell
  3. apt使用或安装 Aruba VIA 安装包dpkg
  4. 使用以下方式连接到 VPN:via-cli session start && via-cli vpn connect --username USERNAME --userpass PASSWORD

我发现使用via-uiWSLg 是不可能的,因为它给出了错误:

qt.qpa.xcb: could not connect to display :0
qt.qpa.plugin: Could not load the Qt platform plugin
"xcb" in "" even though it was found.
This application failed to start because no Qt platform 
plugin could be initialized. Reinstalling the application
may fix this problem.

相关内容