iptables前进和nat规则

时间:2012-04-05 10:53:22

标签: centos iptables portforwarding nat

任何人都知道如果在这台计算机的中心有一台计算机,我们如何在2台计算机之间进行连接

在更好的情况下我想连接到linux pc,但这2个电脑不能看到对方 所以有一个解决方案我有一个其他的Linux电脑,这可以看到另外2个电脑!因此,使用此pc可能有任何iptables规则用于转发数据包

我希望在端口5050上从PC 1连接到PC 3 然后pc1可以连接到pc2,pc2可以连接到端口5050上的pc3然后重放步骤 pc3必须重播到pc2,pc2必须将收到的数据包转发到pc1

为了更好地理解,请参阅:

1 --> 2 --> 3
1 <-- 2 <-- 3

所有的PC OS都是Centos 5.7

我认为iptables可以做到这一点,但我在谷歌找不到任何参考或帮助, 所以任何人都可以帮助我?

2 个答案:

答案 0 :(得分:1)

如果您需要一个端口:

1 (addr 1.1.1.1)
2 (addr 1.1.1.2,3.3.3.2)
3 (addr 3.3.3.3)

on 2:

iptables -t nat -A PREROUTING -s 1.1.1.1 -p tcp --dport 5050 -j DNAT --to-destination 3.3.3.3
iptables -t nat -A PREROUTING -s 3.3.3.3 -p tcp --dport 5050 -j DNAT --to-destination 1.1.1.1
iptables -t nat -A POSTROUTING -d 3.3.3.3 -p tcp --dport 5050 -j SNAT --to 3.3.3.2
iptables -t nat -A POSTROUTING -d 1.1.1.1 -p tcp --dport 5050 -j SNAT --to 1.1.1.2

答案 1 :(得分:0)

首先启用IP转发。然后输入以下命令:

  

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

     

iptables -A FORWARD -i eth1 -o eth0 -m state --state   相关,已建立-j ACCEPT

     

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT