我试图设置一个最初只能在一个“服务器子网”中的Linux服务器。 不过,我不得不使用代理来访问此子网中的HTTP / HTTPS服务,这会导致我的Web应用程序出现很多问题,这些问题需要通过HTTPS访问API。
幸运的是,服务器连接到第二个“客户端子网”,该客户端子网提供对HTTP / HTTPS服务的无限制访问。 我configuration了两个网卡,现在我在eth0上获得了服务器子网,在eth1上获得了客户端子网。
我正在阅读类似的问题,最近我发现是这样的: https : //askubuntu.com/questions/104400/how-to-put-all-traffic-and-on-one-interface-and-some-traffic -on-another-interfac我遵照指示并相应地更改了端口和接口(eth0的网关是默认网关):
iptables -t mangle -A OUTPUT -p tcp --dport 443 -o eth0 -j MARK --set-mark 1 ip rule add fwmark 1 table 1 ip route add 0.0.0.0/0 table 1 dev eth1
但是,这似乎并没有工作。
我想知道,从技术angular度来看,是否真的有可能创build某些路由规则,这些规则允许将本地传出的HTTP / HTTPSstream量路由到另一个子网。
我知道这个post真的很老,但是最近我用另一种涉及源策略路由的方法解决了这个问题: 无法在非默认的界面上ping多宿主的Linux机器 。
主机连接到两个networking。 “客户子网”允许访问外部资源,但其客户端不能从networking外访问。 “服务器子网”上的客户端可以从networking外访问,但不能访问他们自己networking之外的任何资源。
--- |"Client Subnet" ------ eth0 | 3.3.0.10 | Host |----------- | |----------- ------ eth1 |"Server Subnet" | 123.123.0.10 ---
我将客户端子网的网关设置为默认网关,并configuration源策略路由,如上述post的答案中所示。 服务器然后按照需要performance。
echo 13 eth1 >> /etc/iproute2/rt_tables ip route add default via 123.123.0.1 table eth1 ip rule add from 123.123.0.10 lookup eth1