SSH方式:
通过SSH连接,在本地与远程服务器之间建立一个加密的管道(Tunnel),SSH客户端监听本地端口,形成SOCKET5代理。由于IE对SOCKET5代理不好,大家一般都是用FireFox。直接将FireFox设置Socket5代理就是可以正常使用的。但是这样,上国内网站也会绕道国外,影响速度。好在FireFox有大量优秀的插件,FoxyProxy和AutoProxy是很常用的通过URL筛选决定是否通过代理访问网站的插件,后者用的尤其多。
VPN方式:
VPN其实也是在本地与远程服务器之间建立了一个加密的通道,但是,与SSH不同的是,VPN客户端会虚拟一个网卡出来(这个虚拟的网卡连接的就是刚才说的那个加密通道),然后修改路由,使流量从加密通道走,达到凸墙的目的。当然,VPN也存在跟SSH相同的问题,如果访问国内网站,会绕道国外,速度很慢。聪明的人们又想出了办法:连接了VPN的电脑相当于有两块网卡,只要让国内流量从真实网卡走而国际流量从虚拟网卡走,这个问题就解决了。实际的操作就是手工加入国内IP的路由,让这部分流量直接走本地连接来搞定。
在解决绕道的问题上,大家可以看出SSH方式和VPN方式的不同了,SSH方式可以在URL的级别上筛选网址走加密通道,而VPN方式只能筛选IP。
举个例子,假设xxx是某强屏蔽的关键字,SSH代理+AutoProxy可以做到使http://www.abc.com/xxx走代理,而http://www.abc.com/yyy不走代理,这是VPN方式力所不及的。当然,VPN方式也有它得天独厚的好处,就是不用对应用软件进行任何设置即可使用,这对一些根本没法设置代理的应用软件是莫大的福音,这也是SSH方式力所不及的。
以上SSH和VPN的区别和联系引用自Kangzj博客的SSH和VPN凸墙的区别与联系分析。
其实无论是ssh还是vpn,能越狱的原因都是数据被加密了,因此没有遭到G.W.F的拦截。之所以关心ssh和vpn,主要原因是自己最近也通过购买的84VPS配合Tunnelier工具成功地越狱,越狱是成功了,但是还是发现对ssh原理理解的不是很透彻。下面是我对自己越狱过程一个描述或者猜测,不知道具体原理是否如我所述,还望懂的朋友为我指点迷津。
假设我想翻墙的机器是A,我的VPS是B,我访问的网站的服务器是C。在A机器上,通过Tunnelie以ssh方式连接到VPS上,打开Tunnelie的Sokcet服务,并且设好IE浏览器的Socket代理。这样原本我们在浏览器里输入某个网站地址的时候,浏览器和服务器做一个TCP连接,然后交换数据,但是因为我们设置了代理,所以浏览器和代理服务器Tunnelie做了一个TCP链接。讲发送给目的服务器的数据包转发给了Tunnelie。代理服务器Tunnelie对数据进行加密后,通过和VPS连接隧道,将数据报转发给作为ssh服务器的VPS,ssh服务进程收到数据以后,对数据报进行解密,将数据报转发给目的服务器,也就是要请求的网站服务器C,不知道整个过程是否能这样理解?请多多指点,万分感谢。
Pingback: 博阿滕 » SSH和VPN之间的区别与联系分析