2013-05-15 138 views
2

我想重定向所有TRAFIC來到我的Linux(192.168.1.34)端口22上到另一個地址的iptable的端口轉發

所以我用下面的iptable命令

的命令不會返回錯誤。

但是,當我嘗試從PC(192.168.1.133)打開ssh會話到我的linux(192.168.1.34)時,ssh會話未打開。它看起來像如果我直接從PC(192.168.1.133)至(192.168.1.239)打開SSH會話的SSH TRAFIC不重定向到(192.168.1.239

,則會話被打開

+0

什麼是網絡掩碼? – wroniasty

+0

掩碼255.255.255.0 – MOHAMED

回答

2

首先,確保NAT主機已啓用IP轉發:

echo "1" > /proc/sys/net/ipv4/ip_forward 

其次,所有的主機都在同一子網,這意味着,從192.168.1.239的SSH交通回到您的客戶端(192.168.1.133)不通過192.168.1.34路由。

所以,你可以:爲您的主機

  1. 同時使用DNAT和SNAT,或
  2. 使用不同的子網。
1

你需要添加兩個規則:你的Linux IP(192.168.1.34)和另一臺機器的IP(192.168.1.239):

### \# prerouting 
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 192.168.1.239:22 

### \# postrouting 
sudo iptables -t nat -A POSTROUTING -p tcp --dport 22 -j MASQUERADE 

### \# forward 
sudo iptables -A FORWARD -s 192.168.1.34 -d 192.168.1.239 -j ACCEPT 

sudo iptables -A FORWARD -s 192.168.1.239 -d 192.168.1.34 -j ACCEPT