2010年8月29日星期日

翻墙笔记 v 1.0

翻墙笔记 v 1.0
author : One Gfw Fucker       08/29/2010
828日自由门,无界,逍遥游等等常用的代理翻墙软件全线飘红。提示“自由门软件发生问题,必须关闭,谨此致歉。”,提示窗口如下:

之前一直使用的是公司的vpn,但是vpn需要一直连接,并且速度有时也难以保证。后来便使用Firefoxfoxyproxy和自由门来翻墙,但是周五的一个弹框令自由门及其相似的软件全都挂了,幸好还有go2proxy,最初以为是系统问题,后来在twitter上才知道这是大家都出现了相同的问题,至此方知自由门挂了。为了防止以后再出现这样的问题。在网上查找了其他翻墙技术的相关资料。整理在下面,以防后患吧。如果自由门再出现挂掉的现象,使用其他的翻墙技术照翻不误。好了,闲话不多说了,开始进入正题。
结合从网上和自己以往的翻墙经验(vpn,freegate,ssh)来看,翻墙使用的方式主要有
Ø 代理服务器翻墙,
Ø ssh动态代理转发翻墙
Ø gapp翻墙方式
Ø 国人现在正在积极开发的“西厢计划”,还没有搞清楚其具体的实现原理。并且该项目现在只能在linux环境下使用,因此不做讨论。
下面主要对前三种常用的翻墙方式做一下讨论。
一、代理服务器翻墙方式。

上图是一个简单的代理翻墙的传输模型。当浏览器使用代理方式访问网站的时候,浏览器的数据会先转发到代理服务器端口,而不是直接与要访问网站直接建立连接的,这样的话对于浏览器来说通信的只是代理服务器,而对于被访问网站来说,所有对该网站的访问的ip都来自于代理服务器。当你用某代理服务器的使用权限后,在浏览器中配置好相关的ip和端口即可使用代理服务器来访问网站了,代理服务器最早是用来保证用户的安全和隐私,因为这样可以隐藏用户ip,只是后来被用作穿越gfw的一种方式。其实自由门,无界,世界通等等翻墙工具都是使用这个原理来翻墙的。以自由门为例,当用户启动自由门后,自由门会自动搜索相关的代理服务器,并且在本地创建一个代理服务器,在浏览器中配置好相关代理即可使用。在这个传输过程中使用了两个代理服务器,一个是自由门在你本地创建的一个代理服务器,一个是自由门在墙外面提供的代理服务器,本地代理只是一个壳子,如果我们知道代理服务器的地址(在不使用加密的情况下),也可以直接在浏览器中直接使用自由门的代理服务器。但是现在自由门的数据传输使用了加密方式,所以即使知道了他的代理服务器,我们直接使用也无济于事,只能通过自由门自身的加解密机制来实现数据的传输。对于使用自由门来翻墙,对于防范gfw来说,这些数据是安全的,但是如果不排除自由门提供的服务器不对你的数据做数据分析,所以为了安全起见,最好不要使用自由门传输比较机密的文件。
但是就易用性而言,自由门在这三种翻墙方式中是最简单和方便的,速度也不错,类似的软件还有无界,世界通等等。
二、SSH动态代理翻墙方式
该方式使用的传输原理一般的代理服务器类似,特殊之处在于该方式使用的是ssh2加密数据传输机制,只要你有一个ssh帐号,在ssh客户端配置好一个动态端口即可。下面简单说一下它的传输原理。浏览器将数据传输到配置好的本地端口,本地端口再将数据传输通过ssh(22端口)通道传输至墙外的服务器,服务器的os会根据接收到的数据直接转发到相关访问网站,以此来实现一个代理的。后来逐渐演变成一种翻墙的方式,这种方式最大的好处在于它的数据传输是加密的,并且你可以使用自己的ssh帐号登陆相关服务器,并且这个代理服务器只属于你自己,数据传输的安全性要远远高于第一种方式。但是配置起来比较麻烦。主要由一下三部:
1.申请一个免费的ssh帐号。(百度,谷歌都可以找到,最好多注册几个帐号,根据测试的速度来“择优录取”)
2.配置ssh客户端的动态代理端口。其他的不多说,留个图来说明如何配置。建议使用SecureCRT来作为ssh登陆客户端,因为其有密码记录功能,使用起来比较方便。Putty配置和它类似,只是使用起来不如SecureCRT顺手而已。下图是SecureCRT中动态端口的配置方法。
1)SecureCRT属性一栏选择“port forwarding”,点击右侧“add”按钮。如下图。

2.name一栏中填写你需要的名字,在port一栏填写系统可用的端口,例如12345等,在最下面勾选“dynamic forwarding use socks 4 or 5”,点击ok,这样就配置好了。

3.配置好动态端口后,在浏览器中配置相关代理服务器,按上面配置后,得到的代理服务器地址和端口分别为127.0.0.112345
4.使用时,先用ssh使用该帐号登陆到服务器上,然后在浏览器中访问相关端口即可。
注意:国内的linux服务器不能翻墙,如果你有国外的linux主机,可以使用自己的ssh帐号和服务器,如果没有可以申请免费ssh帐号。
三、Gapp翻墙方式。
这种翻墙方式也是第一种模式的翻版,只是他的代理服务器是运行在Google云计算平台上的,而不是运行在单独的服务器上。由于Google庞大的服务器集群和较高的访问速度,这种翻墙方式还是受到很多翻墙用户的喜爱,但这种方式的配置是这三种翻墙方式中最繁琐的。先对它的工作原理做一个简单介绍,然后详细的说明一下它的配置方法。Gapp翻墙软件有GAppProxyWallProxy,后者是前者的衍生版本,这两个项目都是开源项目,他们都提供了一个代理服务器和本地客户端。将项目上传至Google云计算平台后,项目正常运行后,则该代理服务器就可以使用了。然后使用本地客户端登陆即可。它的数据传输和第一种方式相同,不再赘述。
下面说明wallproxy的配置方法。由于gappproxy存在许多缺陷(只能访问44380端口等),所以推荐使用wallproxy
1.下载wallproxyGoogle app sdk(window下最好使用安装版,不要用压缩版)
2.安装Google app sdk前,请确定你的电脑上已经安装了python 2.5运行环境。使用安装版安装完成后,启动"Google App Engine Launcher",使用该gui工具将wallproxy上传到你的app项目上(上传前请创建相关项目)
3.上传后,等待半分钟,项目就可以正常使用了。然后使用wallproxylocal文件夹下的wallproxy连接gappserver,这样一个代理服务器和客户端就配置完成了。
4.在浏览器中配置好本地ip和端口,即可使用。
该种方式最大的特点是运行速度飞快,是这三种翻墙方式里面速度最快的一种,但是它对数字证书的支持不是特别好,但是当火狐提示证书无效的时候将他们添加到例外中即可。
最后总结一下,对比上面三种翻墙方式,自由门系列的软件使用和配置最简单,但是也是最容易出问题的。Ssh登陆方式是这三个中比较折中的一个,gapp除了存在上面的问题和配置比较麻烦外,是我比较推荐的一种。但是为了以防万一最好这几种方式都熟悉一下。免得到用的时候再麻爪,只要世界最大的局域网还连接Internet,总有办法能翻出去。在使用多个代理服务器的时候建议使用的软件组合是Firefox+autoproxy+你的代理服务器集合。
这样可以保证90%以上的情况下你可以无视那道墙的存在。
后记:“哪里有压迫哪里就有反抗”,同理,筑墙和拆墙的斗争也是一个持久战,墙与被墙放在历史的长河里只是短占的一瞬间。写此文也只是想让更多的人了解一些免费翻墙的办法。有个卖vpn的广告说的好啊“我们虽然不在美国,但是我们一样可以像美国人一样上网”。希望本文能对还在翻墙技术上摸索的同学有所帮助。
“被墙的时候需要爱国,翻墙的时候要爱国,翻出去的时候也要爱国。”
“爱国和爱党没有一点关系。”
“自由就是带着枷锁舞蹈。”

没有评论:

发表评论