使用iptables使不同端口走不同出口
关于利用iptables流量转发请参考:https://wiki.olvps.com/?p=433
关于使用静态路由更改出口请参考:https://wiki.olvps.com/?p=385
我们假设需要转发主机的IP为1.1.1.1,要转发的端口为6053。
我们的nat主机的IP为192.168.5.2(即默认联通出口IP),可用端口为50020~50029
我们申请后可得到电信IP:192.168.4.2与移动IP:192.168.3.2(具体在工单申请会注明哪个IP为哪个出口)
以下为实例:
我们现在要指定 50022端口到达转发IP的主机1.1.1.1走默认的联通出口,即可设置–to-source后为联通出口IP。
iptables -t nat -A PREROUTING -p tcp --dport 50022 -j DNAT --to-destination 1.1.1.1:6053
iptables -t nat -A PREROUTING -p udp --dport 50022 -j DNAT --to-destination 1.1.1.1:6053
iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 6053 -j SNAT --to-source 192.168.5.2
iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 6053 -j SNAT --to-source 192.168.5.2
service iptables save
如果需要 50021 端口到达转发的主机走电信出口,即可为如下命令:
iptables -t nat -A PREROUTING -p tcp --dport 50021 -j DNAT --to-destination 1.1.1.1:6053
iptables -t nat -A PREROUTING -p udp --dport 50021 -j DNAT --to-destination 1.1.1.1:6053
iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 6053 -j SNAT --to-source 192.168.4.2
iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 6053 -j SNAT --to-source 192.168.4.2
service iptables save
移动也相同。