在Linux下面可以利用两个工具实现不同的转发,一个是防火墙工具iptables,另一个是ssh隧道。
假设现在有一个服务器集群,其中front是集群前端节点,back是后端极点,front可以再外网访问,back和front在一个内网里面,不能被外界直接访问。back在8080端口上启用了web服务,现在要实现外部计算机public能访问back上的web服务。
利用iptables,在front上做如下配置即可
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp -d --dport 80 \
-J DNAT --to-destination :8080
iptables -t nat -A POSTROUTING -p tcp -s --sport 8080 \
-J SNAT --to-source
利用ssh打开一个ssh隧道
ssh -L *:80::8080 localhost
比较:
用iptables和其他防火墙规则配合,不会受到防火墙及其他软件影响,但是如果只是作为临时的转发,还是比较麻烦。相对来说ssh隧道就比较简单,普通用户就可以运行但是它有可能受到防火墙的限制,而且要ssh服务器支持端口转发。所以,前者适合于稳定长期使用的端口转发,儿后者适合于建立临时的转发功能。
阅读(19123) | 评论(0) | 转发(1) |