这些 VPN 如何实现每个应用程序的隧道?

aed*_*dcv 6 networking windows vpn

我想通过 Windows 上的应用程序将流量重定向到特定网络接口。这通常称为“分割隧道”,很多人经常这样做是为了有选择地发送流量,例如通过 VPN。

SuperUser 中有一些答案建议:

  1. 使用Proxifier等软件“SOCKSifying”不支持 SOCKS 的应用程序
  2. 使用ForceBindIP等软件强制应用程序使用特定接口
  3. 根据目标 IP 或域采用一些限制
  4. 使用虚拟机
  5. 使用网络接口指标
  6. 使用防火墙阻止应用程序流量

您可以通过查看这些问题的答案来找到大部分建议:

所有这些方法要么过于hacky(例如ForceBindIP在DLL中注入信息),要么无法实现每个应用程序隧道的目标(例如通过目标IP进行过滤没有用)。

一般来说,似乎没有官方方法来实现此功能。

尽管如此,我注意到某些 VPN 供应商提供了此功能(通常他们称之为白/黑名单应用程序)。他们是如何实现这一目标的?他们是否使用类似他们自己的 ForceBindIP 实现的东西?

一些允许在 Windows 上按应用程序拆分隧道的 VPN:ProtonVPNPureVPN。此外,ProtonVPN 似乎确实为 VPN 创建了一个新的网络适配器,因此他们必须有一种方法通过该接口路由特定于应用程序的流量。

最后,如果有任何帮助(或进一步混淆),Windows 文档说明了实现此目的的一种方法,但它是通过使用VPN 配置文件和 MDM。