在 Debian 上,是否可以运行 OpenVPN 连接,以便它仅用于执行一个程序?换句话说:
- 其他程序正常使用网络
- 只有执行的一个程序通过 OpenVPN 运行其连接
- 该程序仅建立传出的 TCP 连接
我希望通过 VPN 隧道传输所有连接的程序会从可通过该 VPN 访问的服务器检索数据。否则,VPN 就没有必要,也不需要为任何其他目的而继续运行。
答案1
据我所知,Linux 网络堆栈不能单独用于一个程序。OpenVPN 建立了一个单独的网络接口(tun 或 tap 设备),然后您可以通过此接口添加路由。这只能针对特定地址或地址范围(甚至针对整个 IP 网络流量)执行。
我在超级用户上发现了这个问题:如何为不同的进程使用不同的网络接口?
但也许你不需要那些更复杂的解决方案 - 如果你想访问一个特定的网络地址,只能通过 VPN 访问,你也可以正常建立 OpenVPN 连接,然后通过网络路由确保只有到该地址的请求通过 VPN 路由,而其他内容则不会(这意味着到该地址的路由)0.0.0.0/::或者默认不受 VPN 处理)。
如果您使用网络管理器等 VPN 图形配置软件,则必须对其进行配置,以便“仅将此连接用于其网络上的资源“或类似内容处于活动状态。
如果您有一组配置脚本,请确保某些脚本route add default ...
不会被执行以通过 VPN 设备或网关路由默认值。