有没有办法强制特定进程使用 OpenVPN 连接,但允许系统上的所有其他进程使用 Ubuntu Linux 上的默认网络连接?
我在 AWS 中运行一个自定义 Python 应用程序,并尝试将其与外部 PostgreSQL 服务集成。该服务提供了 OpenVPN 配置的 VPN,因此我可以访问他们的 PostgreSQL 服务器。
据我了解,默认情况下,OpenVPN 会强制服务器上的所有网络流量使用 VPN,这通常正是您想要的。但是,由于我的应用程序在 AWS 中运行,AWS 管理自己的安全性并优化了网络路由,如果我将服务器配置为将此 VPN 用于所有用途,那么我将强制所有流量进入此外部连接,这将减慢一切速度,并可能导致安全访问问题,因为服务器对我的其他 AWS 资源的访问似乎来自我的帐户之外。
创建 VPN 网络接口的最简单方法是什么,但要阻止除特定进程之外的所有进程使用它?
答案1
您可以使用route-nopull
客户端配置中的命令来阻止创建任何路由条目。之后,您可以手动添加指向数据库服务器的路由条目。这样,访问数据库服务器的所有内容都将使用 VPN,其他所有内容都将使用它们之前使用的任何路由。
例如,假设数据库服务器位于 192.168.111.111(位于 VPN 服务器后面),则需要将其包含在客户端配置中:
route-nopull
route 192.168.111.111 255.255.255.255