Iptables:在不同接口和端口上的转发请求

问题描述 投票:5回答:1

我有一台具有2个接口的机器:

eth0      inet addr:1.1.1.1
eth1      inet addr:2.2.2.2

eth0是服务器,eth1是虚拟机上的网络。

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

我需要一个规则,将eth0端口6000上的传入连接重定向到eth1,端口22(虚拟机ip)上的ip 2.2.2.100。

如果在外部计算机上,则在此模式下,

ssh -p 6000 [email protected]

我将在虚拟机上登录。

我尝试了此规则,但是没有用:

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
iptables portforwarding
1个回答
14
投票

这种情况下有大约一百万个脚本/教程/事物,但是如果有人从Google登陆到这里,则是这样的:

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
© www.soinside.com 2019 - 2024. All rights reserved.