0

Linux下经过路由的映射

Posted in Linux at 七月 21st, 2011 / No Comments »

想把外网机器的端口映射到内网上,然后在内网中通过内网机器的端口来访问。内网有一台机器192.168.1.2,要把外网机器119.1.1.1的443端口映射到192.168.1.2的4431上。路由器和外网机器都不可控,192.168.1.2是Linux并可以完全控制。

iptables对经过路由的映射确实不能完全解决,有些可以,有些不行:

echo "1" >/proc/sys/net/ipv4/ip_forward iptables -F iptables -t nat -F iptables -t nat -A PREROUTING -j DNAT -p tcp --dport 4431 --to 119.1.1.1:80 iptables -t nat -A POSTROUTING -j SNAT -d 119.1.1.1 -p tcp --dport 80 --to 192.168.1.2

我把我的虚拟机映射到百度的80端口,用浏览器通过虚拟机的端口访问不成功。换成映射另外一个网站的80端口就可以访问了。试着映射了几台外网机器的22端口,一个都没成功。

最后还是用ssh的方法解决了,在虚拟机192.168.1.2上运行:

ssh -g 127.0.0.1 -R 4431:119.1.1.1:22

然后在内网中另外一台机器上就可以通过192.168.1.2的4431端口来访问外网119.1.1.1的22端口了。
直接在192.168.1.2上ssh -p 4431 root@192.168.1.2或ssh -p 4431 root@127.0.0.1也行。

Published in Linux

No Responses to “Linux下经过路由的映射”

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)