我希望一个应用程序使用 VPN 连接,而其他应用程序则不使用。
我正在使用 Xubuntu(因此是 XFCE),但如果可能的话,我想要一个命令行/静态配置解决方案。
有可能实现吗?如果可以,如何实现?
答案1
有一次我想这样做,我在虚拟机(我喜欢 VirtualBox)中运行应用程序,并配置客户操作系统实例,使其所有流量都完全通过 VPN 路由。可以说有点过头了,但这意味着你不必太担心应用程序的所有数据包(以及它产生的任何东西)是否真的按照你想要的方式路由。现代 VM 的无缝窗口和共享文件夹功能意味着在 VM 中使用该应用程序也可以相当轻松。
答案2
最简单的方法是使用可以将自身暴露为 SOCKS 服务器的 VPN,然后任何 socks 包装工具(例如 tsocks)都可以做到这一点。
否则,iptables 可以使用数据包标记来完成此操作,然后使用它进行路径选择。
如果只是到达一个特定目的地,那么只需让 VPN 添加与该目的地相关的路由而不添加其他路由即可轻松实现。
当然,如果它只是一个应用程序,我会尝试让它使用 SSL,这样就根本不需要 VPN。
答案3
如果您需要使用的应用程序仅连接到特定地址(即:到工作机器的 RDP 会话),则可以使用路由表强制该流量的目的地通过 VPN 链接,或者按照建议使用 iptables。
答案4
自定义应用所需的所有资源是否都在同一个网络(子网)上?如果您可以将自定义应用所需的资源单独放在网络上,然后使用中继 VPN,这将很容易。因为 VPN 链路上的唯一资源是自定义应用。因此,只有该应用的流量会通过 VPN,所有其他流量都会以明文形式流出。