2013-01-08 27 views
4

向前請求我有一個機器絲毫2個接口:Iptables的:在不同的接口和端口

eth0  inet addr:1.1.1.1 
eth1  inet addr:2.2.2.2 

eth0的是服務器,ETH1是虛擬機上netword。

我在服務器上有ssh,所以1.1.1.1:22很忙。

我需要一個規則來重定向eth0端口6000上的傳入連接到eth1,端口22上的ip 2.2.2.100(虛擬機ip)。

在這種模式下,如果我做,外部機器上,

ssh -p 6000 [email protected] 

i執行登錄的虛擬機上。

我嘗試這條規則,但不工作:

sudo iptables -P FORWARD ACCEPT 
sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 6000 -j DNAT --to 2.2.2.100:22 

回答

13

那麼有像這種情況下百萬腳本/教程/的事情,但如果有人從谷歌登陸到這裏是這樣的:

iptables -I FORWARD -d 2.2.2.2 -m comment --comment "Accept to forward ssh traffic" -m tcp -p tcp --dport 22 -j ACCEPT
iptables -I FORWARD -m comment --comment "Accept to forward ssh return traffic" -s 2.2.2.2 -m tcp -p tcp --sport 22 -j ACCEPT
iptables -t nat -I PREROUTING -m tcp -p tcp --dport 60000 -m comment --comment "redirect pkts to virtual machine" -j DNAT --to-destination 2.2.2.2:22
iptables -t nat -I POSTROUTING -m comment --comment "NAT the src ip" -d 2.2.2.2 -o eth1 -j MASQUERADE