通过特定接口路由特定 IP 的流量

通过特定接口路由特定 IP 的流量

我正在设置一个服务器,通过 OpenVPN 连接传输所有流量。VPN 连接进一步通过 obfsproxy 隧道传输托管在同一台机器上。

问题是,一旦 VPN 连接,所有流量都会通过 VPN 隧道,包括来自 obfsproxy 的流量。这会产生循环依赖,OpenVPN 需要通过 obfsproxy 隧道传输流量,而 obfsproxy 则试图通过 OpenVPN 发送其传出流量。

我可以手动在路由表中添加例外来修复此问题,route add vpn.example.com gw 192.168.1.1方法192.168.1.1是运行主网络接口(而非隧道)的网关。这样,除代理发出的传出流量外,所有流量都会通过隧道。

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

route add vpn.example.com eth0我尝试通过运行(主网络接口在哪里)进行设置eth0,但它不起作用,因为我没有指定网关并且 vpn.example.com 需要进一步的路由。

我还尝试查看各种 DHCP 客户端的钩子和回调,但找不到任何支持在设置静态路由后运行脚本的钩子和回调。

有没有办法设置某种路由或 iptables 规则,将流量通过主网络接口重定向到特定 IP 地址,并通过隧道将其他所有内容重定向到特定 IP 地址?

相关内容