2009年4月22日星期三

什么是 Port Forwarding及SSH Tunnel

这两天在看SSh的东东,对其中提到的SSH Tunnel/Port Forwarding甚感兴趣。首先什么是Port Forwarding呢?

简单的理解,就是把发往某个端口的数据包转发到另外的一个端口去,后者可以是同台主机上也可以是另一台主机。Port Forwarding 使一台不私有网络的主机可访问私有网络中的某台主机,如通过设置Router的转发规则,把到路由的tcp/80端口的连接forward到内网的某台主机的80端,从而可以让这台只有内部Ip的主机对外提供web服务。

SSH Tunnel 也是属于port forwarding, 它建立在ssh连接上的一个加密的通道,利用它可以传输没经加密的数据从而达到安全的目的。创建了SSH Tunnel之后,你不用直接去访问远程的服务(假使你是连接某个远程服务),相反你访问你本机的某个端口,而SSH Client就会把你的数据通过已建立的加密通道转发到远程主机的目的端口去。网上有很多关于用SSH Tunnel来实现用客户端安全接受发邮件的例子。


相关资料
1. Tunneling protocol
http://en.wikipedia.org/wiki/Tunneling_protoco

2. Port Forwarding
http://alumni.ox.compsoc.net/~steve/portforwarding.html
该文中有个很好的例子,展示了路由在做portforwarding事修改数据报的表头中的目的/源的地址和port。

3. Port Forwarding How To
http://www.home-network-help.com/port-forwarding.html
该文有三个小例说明如何设置路由让内部网的三台机子分别能对外网提供Web服务,Remote Destop连接和游戏服务器。

4. HOWTO: SSH Tunneling Made Easy
http://www.revsys.com/writings/quicktips/ssh-tunnel.html

5. Using ssh Port Forwarding to Print at Remote Locations
http://www.linuxjournal.com/article/5462

没有评论:

发表评论