Windows 10/11 VPN、拆分隧道和基于应用程序的重定向

Windows 10/11 VPN、拆分隧道和基于应用程序的重定向

正如标题所述,我需要在 Windows 10/11 VPN 上启用拆分隧道并仅重定向某些特定应用程序。我在 Google 上搜索了很多,尝试了几种解决方案,但都没有成功。首先,我创建了一个 VPN,然后在 Powershell 中使用以下命令启用了拆分隧道:

Set-VPNconnection -name [VPN_CONNECTION_NAME] -SplitTunneling $true

在此之后,我发现所有内容都被路由到标准 ISP,而不是 VPN 网关。

现在我需要将一些应用程序重定向到 VPN。我根据在 Google 上找到的一些文章尝试了几种方法。例如,我使用以下命令启用自动触发应用程序开关:

Add-VpnConnectionTriggerApplication-Name [VPN_CONNECTION_NAME] –ApplicationID [PATH_TO_MY_APPLICATION]

通过此命令,我发现当我运行所选应用程序时,关联的 VPN 会建立连接。这证实触发器正常工作。但我所选应用程序的连接并未重定向到 VPN,而是仍然使用默认 ISP 网关,即使我发现的文章声称当应用程序添加到自动触发器池中时,它们应该被重定向。

到目前为止,我发现的最佳解决方案是向我的应用程序连接的 IP 添加静态路由。我从 VPN 中使用了这个命令

Add-VpnConnectionRoute -ConnectionName [VPN_CONNECTION_NAME] -DestinationPrefix 192.168.11.0/24

我对这种方法有两个问题:

  1. 我必须找到应用程序连接的所有 IP 地址,而且它们有很多 IP。

  2. 最糟糕的是,我有 2 个应用程序,其中一个连接具有相同的目标地址,这是一个问题,因为我希望只有应用程序 A 传递到 VPN,而不是应用程序 B,即使目标地址相同。

我知道有几种商业 VPN 具有基于应用程序的拆分隧道选项,但我无法使用它们。有什么解决办法吗?

答案1

我也沿着这条路走下去,发现了一些欺骗性的文章,声称 Windows 可以使用 powershell 命令进行拆分隧道Add-VpnConnectionTriggerApplication-Name

它唯一能做的就是在启动这些应用程序时自动连接 VPN,让您管理这些应用程序使用的所有 IP 地址,这些地址都是动态的并且几乎不可能跟踪。

基于应用程序的分割隧道不是 Windows 的内置功能。

正如我在评论中提到的,我正在开发一个基于分离隧道的 WireGuard vpn 客户端。该项目位于 GitHub 上https://github.com/TunnlTo/desktop-app

相关内容