访问Wikipedia等网站的困难已经是一个由来已久的问题,常规的解决的方法无非就是用一些**软件,比如Tor就是其中的一个出色代表。不过我不是很喜欢Tor,因为基于类似P2P这样的原理,决定了它不能提供一个稳定的链接,而且Tor的速度我也一直不是很满意。其它的一些解决方案包括使用网页代理、国外SSL代理之类的也是各有长处、各有不足。
其实如果你在国外可以找到一台支持SSH登录,并且可以支持外连的主机的话,用SSH隧道技术就可以很方便的为自己构造一个加密上网的渠道。
假如你有一台SSH主机是somehost.org,用PuTTY等终端程序时只需输入这个主机名和对应登录信息就可以连上去。要实现SSH隧道,非常简单,只需在PuTTY的Connection->SSH->Tunnels中创建一个Dynamic的Foward端口就可以了。比如,我们可以在Source port中输入6500,然后选Dynamic,再点一下Add,在Forwarded ports中就会出现“D6500",这时隧道就设置好了,如果你现在再登陆到这台主机上,你与主机之间就会创建出一条SSH加密的通道,所有你发往本地 6500端口的的请求,都会通过SSH隧道传到对方主机上再发送出去,并把返回的结果也以相同的方式传回来。
很好,最后一步操作就是在浏览器中设置代理服务器了,设置一个SOCKS(v5)代理,服务器地址用127.0.0.1,端口就是前面设的6500。好了,尽情冲浪吧。
对于类Unix用户,操作更简单,直接ssh somehost.org -D 6500,连上之后一样在浏览器中设上代理就可以了。
SSH隧道其实还可以在很多需要穿越防火墙的情况下提供帮助,留待进一步发现了。
嗯,so far, so good。但是不能忽略了一个问题就是哪里去找国外支持SSH的主机呢?嗯,http://www.red-pill.eu/freeunix.shtml这里有一个很全的列表,提供了很多的免费的Shell Server,不过其中究竟哪些可以支持SSH Tunneling有待各位自己试验了。目前我在用的是silenceisdefeat.org提供的免费服务(但需要通过PayPal捐赠1美元或写传统信件给他们以证明你的邮政地址是有效的),OpenBSD主机,功能比较全,甚至还包括了50M的PHP和MySQL空间(MySQL的权限需要在上面玩它的俄罗斯方块,达到一定成绩才行),但有些时段的速度不是很理想。对于自己有租用国外虚拟主机的朋友,也可以自己试验一下主机是不是支持,据我所知,很流行的DreamHost是可以支持的。
最后顺便提一下Unix-Center网站,一家国内的提供Unix实验环境的网站,提供了Intel/AMD/SPARC下的Solaris和Intel下的Fedora,Ubuntu,FreeBSD以及龙芯上的Debian系统的实验环境,速度还比较理想,而且gcc/make/Perl/Python等开发工具也安装的比较完整,有时想要测试了一下一个程序在不同平台上的表现或是比较一下不同发行版的差异时还是挺好用的。不过Unix-Center的主机都在国内,而且不允许外连,所以用它们是不能完成前面说的做代理的功能的。
转自:http://www.freemindworld.com/blog/2007/071210_ssh_tunneling.shtml