通过特定的接口为特定的IP路由通信

我正在build立一个服务器,通过一个OpenVPN连接隧道的所有stream量。 VPN连接进一步通过在同一台机器上托pipe的obfsproxy进行隧道传输 。

问题是,只要VPN连接,所有的stream量都会通过包含来自obfsproxy的stream量的VPN隧道。 这就创build了一个循环依赖关系,OpenVPN需要通过obfsproxy传输stream量,而obfsproxy正试图通过OpenVPN发送stream量。

我可以通过运行route add vpn.example.com gw 192.168.1.1其中192.168.1.1是主networking接口(不是隧道)的网关)手动添加例外来修复它。 这样,除了从代理传出的stream量之外,所有stream量都通过隧道。

但是,主networking接口的网关地址是由DHCP设置的,不能认为是相同的。

我尝试通过运行route add vpn.example.com eth0 (其中eth0是主要networking接口)进行设置,但由于没有指定网关,vpn.example.com需要进一步路由,因此无法工作。

我也试过看各种DHCP客户端的钩子和callback,但我找不到任何支持静态路由后运行脚本。

有没有办法设置某种路由或iptables规则,将stream量redirect到一个特定的IP地址通过主要networking接口和其他一切通过隧道?