And*_*rea 5 iptables portforwarding
我有一台带2个接口的机器:
eth0 inet addr:1.1.1.1
eth1 inet addr:2.2.2.2
Run Code Online (Sandbox Code Playgroud)
eth0是服务器,eth1是虚拟机上的网络.
我在服务器上有ssh,所以1.1.1.1:22很忙.
我需要一个规则,将eth0端口6000上的传入连接重定向到端口22(虚拟机ip)上的eth1,ip 2.2.2.100.
在这种模式下,如果我这样做,在外部机器上,
ssh -p 6000 root@1.1.1.1
Run Code Online (Sandbox Code Playgroud)
我会登录虚拟机.
我试过这个规则,但它不起作用:
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
Run Code Online (Sandbox Code Playgroud)
小智 14
那么这个案例有100万个脚本/教程/东西,但是如果有人从谷歌到这里就是这样的:
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