西厢代理(暨 west-chamber-proxy)的目的是实现一个不需要服务器的本地翻墙代理工具,由于西厢计划第三季的TCP连接混淆的翻墙效果很不稳定,作者发现的了一种用户态代理的方式的实现,效果比较好,实现了反DNS污染和反连接重置,对于被这两种方法封锁的网站可以轻松访问,比如dongtaiwang.com可以测试。
使用方法
- Windows
- 下载客户端,解压缩,双击 exe
- 把浏览器HTTP/HTTPS 代理设置为 127.0.0.1:1998。
- Mac / Linux
- 提供了py文件下载,解压缩,终端运行 python xxx.py
- 如果加一个额外的数字参数,可以换本地端口。
- 把浏览器HTTP/HTTPS 代理设置为 127.0.0.1:1998。
- Android基于GAE Proxy修改的。Google Market 上的地址。
- iOS目前不打算自己做一个iOS 应用放在 appstore上。因为这需要做成浏览器,我不喜欢做自己不擅长而且重复的事情。iOS 上要使用代理有两个办法。(下载中提供了python27的 py 源代码,有兴趣的同学完全可以自己尝试。)
- 局域网内的其它设备(PC, Android 设备)上安装本代理,然后把 iOS 设备的 HTTP 代理设置到该设备上。(或者在国内有服务器的同学,自己搭建HTTP 代理)
- 类似GoAgent 那种iOS客户端的办法。需要越狱。单我本人没有iOS设备,所以,暂不研究了。
- Chrome Extension安装SwitchySharp 插件,然后导入这个设置 https://github.com/liruqi/west-chamber-season-3/raw/master/west-chamber-proxy/chrome/SwitchyOptions.bak
问题反馈
在这里 直接提供不能访问的网站。日常会有配置文件更新。如果有程序的更新,会在下载页面中给出。
由于不依赖与第三方服务器,对于IP封锁也没有优美的解决方案。目前通过更新配置文件的方式,尽量避免IP封锁。 现在是通过 Google code 上SmartHosts项目 自动获取的配置文件。如果国外网站IP被封锁,使用本工具可能无法访问。
项目地址:https://github.com/liruqi/west-chamber-season-3/tree/master/west-chamber-proxy
(经常访问该地址,以获取软件的最新更新: https://nodeload.github.com/liruqi/west-chamber-season-3/zipball/master。我现在下载的最新版是2012-07-06更新的。
(经常访问该地址,以获取软件的最新更新: https://nodeload.github.com/liruqi/west-chamber-season-3/zipball/master。我现在下载的最新版是2012-07-06更新的。
如果希望使用最新代码,先下载 python 2.7,
[32位](http://python.org/ftp/python/2.7.3/python-2.7.3.msi) ,
[64位](http://python.org/ftp/python/2.7.3/python-2.7.3.amd64.msi) ,
然后下载[代码](https://github.com/liruqi/west-chamber-season-3/zipball/master),
解压缩,进入 west-chamber-proxy 文件夹,双击 westchamberproxy.py)
(还有一个下载地址: http://code.google.com/p/west-chamber-season-3/downloads/list,不过没有以上地址更新快。http://wcproxy.sinaapp.com)
不错。这个工具还行,有特色。
----------------------------------------------------------------------------------------------------------
最近关注了一个西厢计划 MacOSX 的移植项目 kernet (link: https://github.com/ccp0101/kernet)。技术上,kernet 项目做得比原始的西厢计划还要多,可用性也有很大的提高。
最近我做了一个稳定版,主要是增强了稳定性,并支持更多站点。因为个人博客上相关主题较多,所以在这里发布下。如果又更新,我会最先在我的twitter(link: https://twitter.com/#!/liruqi) 上说。
下载页面:https://github.com/liruqi/kernet/downloads
系统要求:Lion 64位。低版本没测试过。32位的系统应该跑不了,不过自己拿xcode 用源代码(link: https://github.com/liruqi/kernet/tree/stable) 编译打包也不难。
跟上一个发布的不靠谱版本(link: http://www.v2ex.com/t/18488) 相比,
1。回归到 master 可用版本做的修改
2。支持更多站点。手动增加的站点是 *.wordpress.com。这里有一个通过跑脚本,增加的站点列表:https://github.com/liruqi/kernet/blob/stable/Scripts/reset.txt
还是说明下,我不能保障你正确安装之后就一定能访问列表中所有站点。参考这篇 总结(link: http://gfwrev.blogspot.com/2010/03/gfw.html)
PS1: 最近做 kernet 打包的同时,对 GFW 做了些有意思的统计。(统计基于 gfwlist.txt,结果不完整不精确,但是正确率应该是大于 50%的;大家也可以看我 stable 分支脚本自己做测试)
a)已解放的http://t.cn/ShP1ya
b)关闭服务器或者被IP封锁的 http://t.cn/ShP1yC
c)至今被reset的 http://t.cn/ShP1yj
d)莫名其妙出问题的 https://raw.github.com/liruqi/kernet/stable/Scripts/wtf.txt
PS2: 算是一个坏消息吧。最近域名封锁、ip 封锁逐步开始了。网络白名单制度大概已经步入实施阶段了。
a)域名封锁是指不再搞dns缓存污染,dns缓存污染是dns-query 被gfw抢答了,还能获得正确返回的;而域名封锁,是直接丢包(目前这种现象并不是每个网络运营商都会有)。这种封锁可能是最近才有的。
b)ip 封锁比较明显的是 tumblr。
原文:http://liruqi.wordpress.com/2011/10/29/west-chamber-macosx-port/
------------------------------------------------------------------------------------------
XIAOXIA 发给我一个python 的 demo,是一个用户态的HTTP 代理。尝试了下,居然可以看youtube,研究网络协议的同学们真无敌。后来对这个脚本做了改进,提高了域名解析的稳定性,以及国内域名的白名 单,HTTPS 支持(XIAOXIA的初始版本,HTTPS不工作)。然后取个中文名叫西厢代理。可以理解成,初衷都是一样的,做一个免代理服务器翻墙的工具。
关于工作原理不想说太多,有兴趣的同学可以直接看代码。
目前已经发布了一个很方便的 chrome extension,各个 PC 平台的程序打包,以及 Android 应用。感谢@ofmax 同学提供的 GAE Proxy 应用源代码,以及 @tewilove 帮忙上传Google market。具体请看项目主页的说明 ( https://github.com/liruqi/west-chamber-season-3/tree/master/west-chamber-proxy/ )。
目前主要差一个 iOS 越狱使用的教程。其实使用的方法跟 GoAgent 很相似。我不熟悉iOS,希望了解 GoAgent iOS 教程的同学也帮我做一个。
from http://liruqi.info/post/15984332971/review-2011-gfw
----------------------------------------------------------------------
西厢计划 MacOSX 移植版
最近关注了一个西厢计划 MacOSX 的移植项目 kernet (link: https://github.com/ccp0101/kernet)。技术上,kernet 项目做得比原始的西厢计划还要多,可用性也有很大的提高。
最近我做了一个稳定版,主要是增强了稳定性,并支持更多站点。因为个人博客上相关主题较多,所以在这里发布下。如果又更新,我会最先在我的twitter(link: https://twitter.com/#!/liruqi) 上说。
下载页面:https://github.com/liruqi/kernet/downloads
系统要求:Lion 64位。低版本没测试过。32位的系统应该跑不了,不过自己拿xcode 用源代码(link: https://github.com/liruqi/kernet/tree/stable) 编译打包也不难。
跟上一个发布的不靠谱版本(link: http://www.v2ex.com/t/18488) 相比,
1。回归到 master 可用版本做的修改
2。支持更多站点。手动增加的站点是 *.wordpress.com。这里有一个通过跑脚本,增加的站点列表:https://github.com/liruqi/kernet/blob/stable/Scripts/reset.txt
还是说明下,我不能保障你正确安装之后就一定能访问列表中所有站点。参考这篇 总结(link: http://gfwrev.blogspot.com/2010/03/gfw.html)
PS1: 最近做 kernet 打包的同时,对 GFW 做了些有意思的统计。(统计基于 gfwlist.txt,结果不完整不精确,但是正确率应该是大于 50%的;大家也可以看我 stable 分支脚本自己做测试)
a)已解放的http://t.cn/ShP1ya
b)关闭服务器或者被IP封锁的 http://t.cn/ShP1yC
c)至今被reset的 http://t.cn/ShP1yj
d)莫名其妙出问题的 https://raw.github.com/liruqi/kernet/stable/Scripts/wtf.txt
PS2: 算是一个坏消息吧。最近域名封锁、ip 封锁逐步开始了。网络白名单制度大概已经步入实施阶段了。
a)域名封锁是指不再搞dns缓存污染,dns缓存污染是dns-query 被gfw抢答了,还能获得正确返回的;而域名封锁,是直接丢包(目前这种现象并不是每个网络运营商都会有)。这种封锁可能是最近才有的。
b)ip 封锁比较明显的是 tumblr。
原文:http://liruqi.wordpress.com/2011/10/29/west-chamber-macosx-port/
------------------------------------------------------------------------------------------
XIAOXIA 发给我一个python 的 demo,是一个用户态的HTTP 代理。尝试了下,居然可以看youtube,研究网络协议的同学们真无敌。后来对这个脚本做了改进,提高了域名解析的稳定性,以及国内域名的白名 单,HTTPS 支持(XIAOXIA的初始版本,HTTPS不工作)。然后取个中文名叫西厢代理。可以理解成,初衷都是一样的,做一个免代理服务器翻墙的工具。
关于工作原理不想说太多,有兴趣的同学可以直接看代码。
目前已经发布了一个很方便的 chrome extension,各个 PC 平台的程序打包,以及 Android 应用。感谢@ofmax 同学提供的 GAE Proxy 应用源代码,以及 @tewilove 帮忙上传Google market。具体请看项目主页的说明 ( https://github.com/liruqi/west-chamber-season-3/tree/master/west-chamber-proxy/ )。
目前主要差一个 iOS 越狱使用的教程。其实使用的方法跟 GoAgent 很相似。我不熟悉iOS,希望了解 GoAgent iOS 教程的同学也帮我做一个。
from http://liruqi.info/post/15984332971/review-2011-gfw
----------------------------------------------------------------------
西厢代理 Android 版
这是我最近做的一个工具。可以实现 Wifi 网络下,访问某些被墙网站。
目前确认上架的市场有:Android Market,机锋市场。应用汇邮件告诉我应用已经上架,但是在他们Web市场上,我没搜到。
目前还有几个问题,有空想处理下。
Update:测试发现,联通3G 网络下,本工具可以正常工作。
Update 2:(2012-01-12)最近发现 联通的WLAN 热点下,本代理可以正常工作。
Update 3: HTTPS 支持实现了,参考的是 http://code.google.com/p/python-proxy/
FROM http://liruqi.info/post/14906411813/west-chamber-proxy-android
----------------------------------------------------------------------------------
West Chamber Proxy是一款多平台翻墙软件,支持Windows,Mac,Linux,也支持Android和iOS,还提供Chrome扩展,非常好用。West Chamber Proxy Android程序基于gaeproxy修改。但是只要网站ip没有被封锁,就可以无需中转服务器访问网站。 不需要root即可浏览网页。有root 可以做系统全局的代理。
应用程序简介:
The West Chamber Proxy a proxy tool to normally visit foreign
websites, for Mainland China users.
This tool is based on GAE Proxy, the difference is that, user do not
need to prepare any server or configuration. Normally this tool does
not need proxy servers, so it does not slow down Chinese sites.
中文简介:
基于 GAE Proxy 开发。用于中国大陆用户正常访问境外网站。
相对与 GAE Proxy,西厢代理不需要任何配置修改,即可直接使用。
西厢代理也不需要配置境外服务器,因此不会影响用户使用访问国内网站。
最近更新:
2012.01.16
1. 支持HTTPS。
2. 使用 SmartHosts 的移动设备 hosts 配置(http://smarthosts.googlecode.com/svn/trunk/mobile_devices/hosts)。
项目介绍: https://github.com/liruqi/west-chamber-season-3/tree/master/west-chamber-proxy
Market地址:https://market.android.com/details?id=org.westchamberproxy
目前确认上架的市场有:Android Market,机锋市场。应用汇邮件告诉我应用已经上架,但是在他们Web市场上,我没搜到。
目前还有几个问题,有空想处理下。
- 实现系统HTTP 代理的设置,这样系统自带的浏览器也可以用了。
- 用 Java 重写代理逻辑,用户就不用下载依赖的 python 软件包了。
Update:测试发现,联通3G 网络下,本工具可以正常工作。
Update 2:(2012-01-12)最近发现 联通的WLAN 热点下,本代理可以正常工作。
Update 3: HTTPS 支持实现了,参考的是 http://code.google.com/p/python-proxy/
FROM http://liruqi.info/post/14906411813/west-chamber-proxy-android
----------------------------------------------------------------------------------
又一款支持Android的翻墙软件-West Chamber Proxy
West Chamber Proxy是一款多平台翻墙软件,支持Windows,Mac,Linux,也支持Android和iOS,还提供Chrome扩展,非常好用。West Chamber Proxy Android程序基于gaeproxy修改。但是只要网站ip没有被封锁,就可以无需中转服务器访问网站。 不需要root即可浏览网页。有root 可以做系统全局的代理。
应用程序简介:
The West Chamber Proxy a proxy tool to normally visit foreign
websites, for Mainland China users.
This tool is based on GAE Proxy, the difference is that, user do not
need to prepare any server or configuration. Normally this tool does
not need proxy servers, so it does not slow down Chinese sites.
中文简介:
基于 GAE Proxy 开发。用于中国大陆用户正常访问境外网站。
相对与 GAE Proxy,西厢代理不需要任何配置修改,即可直接使用。
西厢代理也不需要配置境外服务器,因此不会影响用户使用访问国内网站。
最近更新:
2012.01.16
1. 支持HTTPS。
2. 使用 SmartHosts 的移动设备 hosts 配置(http://smarthosts.googlecode.com/svn/trunk/mobile_devices/hosts)。
项目介绍: https://github.com/liruqi/west-chamber-season-3/tree/master/west-chamber-proxy
Market地址:https://market.android.com/details?id=org.westchamberproxy
来源: http://www.androidsphere.net/2012/01/31/west-chamber-proxy/#ixzz1mdQDfb5L
-----------------------------------------------------------------------------------------
《西厢计划第二季》能突破GFW的 IP封锁 和 URL关键词过滤 。
它的实现原理是利用GFW的单向IP封锁特性,将 发出 的数据包通过国外的第三方服务器中转,而收到的数据包 穿过GFW直接到达客户端 。当用HTTP方式观看在线视频或下载大文件时,对中转服务器仅耗费 极小的流量 。
同时,由于GFW只能捕捉到单向的流量, 无法建立TCP状态机 无法获取请求URL,关键词过滤也就失效了。
svn checkout http://west-chamber-season-2.googlecode.com/svn/trunk/ west-chamber-season-2-read-only
安装libpcap库后进入目录后直接make
sudo iptables -t filter -I INPUT -p icmp --icmp-type ttl-exceeded -j DROP
# 将发出数据的TTL设置为5,不会到达GFW
sudo iptables -t mangle -I OUTPUT -d 被封锁的IP地址 -j TTL --ttl-set 5
# 把包搞小一点,才能塞进一个UDP包
sudo ifconfig eth0 mtu 1300
./wcs2_cli eth0 客户端的公网IP地址 中转服务器的IP地址 12345
from http://code.google.com/p/west-chamber-season-2/
西厢计划出“第二季”了,其实和西厢计划没什么关系,可以说应该只是受到了西厢计划的启发。
这是一个很赞的实现,充分展示了墙的脆弱性,真是千疮百孔啊
-------------------------------------------------------------------------
http://code.google.com/p/west-chamber-season-3/
-----------------------------------------------------------------------------
本文google docs 链接:https://docs.google.com/document/d/1-PurF8_pJoLVJ7IqMfy5pdATjzR1_B5gqSlc2B5VPcY/edit?hl=en_US
本文最后更新时间:2011年7月27日
This post is inspired by http://obmem.info/?p=615
By ‘ignore’ instead of ‘bypass’, we mean working without intermedia server.scholarzhang is a great attempt, but currently it hardly work. scholarzhang contain three parts: zhang(client-side connection obfuscation), cui(server-side connection obfuscation), gfw(drop gfw dns hijacking packets) (ref 项目计划). On the client, we need to run zhang & gfw. The difficult part is that, GFW send RST packages to both ends, client & server, and Mr. zhang is trying to save reuse the connection after server received RST package(ref), 我估计 CUI 也是在尝试做类似的事情. The limitations are summarized in 项目计划:
“首先作为开发者,对于这个项目,应该消除幻觉,着眼缺点。西厢的弱点在README.wiki的局限一节已经描述得比较清楚,主要是两种问题:不 稳定和易变。不稳定可能造成在使用过程中可能出现连接失败的情况,易变可能造成GFW升级之后如果西厢不升级便无法使用。不稳定是由于张某和崔某实际上做 的是通过协议hacking弥补GFW造成的破坏,要求一种RFC规定的理想状况,原理就是不稳定的;而西厢的原理部分所依赖的GFW指纹和漏洞机制是易 变的,需要即时更新。因此,“没有银弹”,西厢也不是对GFW的银弹,我看到自由亚洲的报道夸大其事,我想开发者关注的应该是bug才对。 “
However, if Miss Cui make a move to help Zhang in, and this will make the task much easier. In fact, Ignoring the Great Firewall of China and 西厢计划原理小解 both mention a way to ignore GFW: just ignore and drop the RST packges sent by GFW.
“大家都知道,连接被重置的本质,是因为收到了破坏连接的一个 TCP Reset 包。以前剑桥大学有人实验过,客户端和服务器都忽略 Reset, 则通信可以不受影响。但是这个方法其实只有理论价值,因为绝大多数服务器都不可能忽略 Reset 的 (比如 Linux, 需要 root 权限配置iptables, 而且这本身也把正常的 Reset 给忽略了)。”
正常的 tcp 连接的创建和结束过程中,都不需要用到 Reset。客户端直接drop 掉 Reset,一般不会有问题,至少是可以正常上网的;服务器上如果直接这么做,可能会产生一定的资源消耗。但是这种方式显然比最初始的西厢计划更有效。
1. 无法应对 IP 封锁。如果 ping IP 都超时,基本无法离开中间服务器绕墙。
2. 在多次触碰敏感词之后,GFW 会直接阻断两端通信,从而导致后续的数据无法传输。
可能的问题
1) 如何让服务器识别 GFW 发送的 Reset 包,而正常处理其它 Reset。很有可能的情况是,西厢 CUI 模块已经解决了这个问题,甚至服务器上直接安装 CUI 即可达到预期效果。
2) Windows 客户端的开发。linux 环境上安装 zhang 和 gfw 是相对容易的,西厢目前也有windows 客户端,但我不清楚目前可用性如何。(如果用方便翻墙作为理由推广linux 倒也不错)
3) 也是最麻烦的问题:这个方法如何推广。如果是个人的vps 上的博客域名被污染,只需要打一条命令就可以搞定;但是如何说服 facebook 在他们服务器上安装这些东西呢?这需要对 CUI 模块做认真的后续开发、测试,以及文档完善。这些准备工作做好了,如果国外的互联网公司认为中国用户足够重要,也自然会考虑这些事情。当然,客户端的推广 同样重要。本文最开始打算用英文写,也是希望国外互联网公司能方便地找到这里。
匿名性
原始的西厢计划小组成员基本是匿名参与。此次我基本上实名了。如有感兴趣的同学欢迎加入。如果遇到政府的压力,我会考虑移民出国。另外,如果本方案有国外网站使用,我也会发布一个项目捐赠方式。
测试结果(7月24日更新)
本文发布当天我没有做测试。今天才找到一朋友的vps 做测试。GFW 有一个惩罚机制,大概是你连上国外服务器的,被发现触碰关键词(访问一个被污染的域名,或者交互数据中有明文的敏感词),发送 RST 之后,会在一段时间内(目前感觉大概是30秒),可能会封禁两端的通信,效果如同 ip被封禁。但是,这种惩罚机制的触发条件不太稳定。我在 Ubuntu 11.04 上的测试结果是:
from http://liruqi.wordpress.com/2011/07/22/west-chamber-season-3/
(https://github.com/tegulia/west-chamber-season-4)
old version:http://code.google.com/p/scholarzhang/issues/list
--------------------
https://github.com/zenoven/GoAgentX/blob/master/Resources/west-chamber-proxy/wcproxy
https://github.com/tegulia/west-chamber-season-4/blob/master/wcproxy
------------------------
个人2M带宽,使用WCProxy的速度好比直接访问,本代理可用于观看Youtube视频,
多线程加速,速度快于在线代理、SSH、VPN搭建的youtube代理,视频流畅不卡。
也可用于访问Facebook、IMDB等受限网站及突破公司网络限制。
使用说明:
WCProxy很容易使用,只需三个步骤:(如果你是自动重定向到这个页面,在本页面下载最新版本即可继续使用,抱歉~~)
第一步:下载解压代理客户端:点此下载; Mac 系统请下载GoAgentX for WCProxy(注意下载之后把端口修改为1998)
第二步:配置浏览器:设置浏览器HTTP代理服务器地址:127.0.0.1 端口: 1998 。点击这里查看各浏览器详细设置教程。
第三步:打开WCProxy文件夹内的 westchamberproxy.exe,代理开始工作。
使用过程中遇到问题可先参考常见问题 ,如自行无法解决,请通过下面的联系方式获取技术支持!
浏览器设置教程:
首先下载PAC代理规则文件:点此下载(PAC文件可实现智能代理机制,网络加速更有效率)
下载解压后将压缩包内的SwitchyPac.pac文件放置到 C 盘根目录。
依次打开浏览器的工具 -> 选项->高级 ->网络 ->设置 ->自动代理配置URL ->填入:
-------------
相关帖子:https://briteming.blogspot.com/2016/04/west-chamber.html
-----------------------------------------------------------------------------------------
《西厢计划第二季》能突破GFW的 IP封锁 和 URL关键词过滤 。
它的实现原理是利用GFW的单向IP封锁特性,将 发出 的数据包通过国外的第三方服务器中转,而收到的数据包 穿过GFW直接到达客户端 。当用HTTP方式观看在线视频或下载大文件时,对中转服务器仅耗费 极小的流量 。
同时,由于GFW只能捕捉到单向的流量, 无法建立TCP状态机 无法获取请求URL,关键词过滤也就失效了。
使用方法:
下载与编译
下载源代码:svn checkout http://west-chamber-season-2.googlecode.com/svn/trunk/ west-chamber-season-2-read-only
安装libpcap库后进入目录后直接make
在中转服务器上执行:
./wcs2_fwd 12345在客户端上执行:
# 阻止路由器发来的“ttl exceeded”消息sudo iptables -t filter -I INPUT -p icmp --icmp-type ttl-exceeded -j DROP
# 将发出数据的TTL设置为5,不会到达GFW
sudo iptables -t mangle -I OUTPUT -d 被封锁的IP地址 -j TTL --ttl-set 5
# 把包搞小一点,才能塞进一个UDP包
sudo ifconfig eth0 mtu 1300
./wcs2_cli eth0 客户端的公网IP地址 中转服务器的IP地址 12345
补充说明
《西厢计划第二季》为独立的新项目,与原西厢计划没有关联,只是借用了一下品牌~~~。西厢计划第二季和西厢计划都是tech demo,发布出来不是给你用的,而是给你研究的。from http://code.google.com/p/west-chamber-season-2/
西厢计划出“第二季”了,其实和西厢计划没什么关系,可以说应该只是受到了西厢计划的启发。
这是一个很赞的实现,充分展示了墙的脆弱性,真是千疮百孔啊
-------------------------------------------------------------------------
http://code.google.com/p/west-chamber-season-3/
-----------------------------------------------------------------------------
西厢计划第三季 – Ignore the Great Firewall
本文google docs 链接:https://docs.google.com/document/d/1-PurF8_pJoLVJ7IqMfy5pdATjzR1_B5gqSlc2B5VPcY/edit?hl=en_US
本文最后更新时间:2011年7月27日
This post is inspired by http://obmem.info/?p=615
By ‘ignore’ instead of ‘bypass’, we mean working without intermedia server.scholarzhang is a great attempt, but currently it hardly work. scholarzhang contain three parts: zhang(client-side connection obfuscation), cui(server-side connection obfuscation), gfw(drop gfw dns hijacking packets) (ref 项目计划). On the client, we need to run zhang & gfw. The difficult part is that, GFW send RST packages to both ends, client & server, and Mr. zhang is trying to save reuse the connection after server received RST package(ref), 我估计 CUI 也是在尝试做类似的事情. The limitations are summarized in 项目计划:
“首先作为开发者,对于这个项目,应该消除幻觉,着眼缺点。西厢的弱点在README.wiki的局限一节已经描述得比较清楚,主要是两种问题:不 稳定和易变。不稳定可能造成在使用过程中可能出现连接失败的情况,易变可能造成GFW升级之后如果西厢不升级便无法使用。不稳定是由于张某和崔某实际上做 的是通过协议hacking弥补GFW造成的破坏,要求一种RFC规定的理想状况,原理就是不稳定的;而西厢的原理部分所依赖的GFW指纹和漏洞机制是易 变的,需要即时更新。因此,“没有银弹”,西厢也不是对GFW的银弹,我看到自由亚洲的报道夸大其事,我想开发者关注的应该是bug才对。 “
However, if Miss Cui make a move to help Zhang in, and this will make the task much easier. In fact, Ignoring the Great Firewall of China and 西厢计划原理小解 both mention a way to ignore GFW: just ignore and drop the RST packges sent by GFW.
“大家都知道,连接被重置的本质,是因为收到了破坏连接的一个 TCP Reset 包。以前剑桥大学有人实验过,客户端和服务器都忽略 Reset, 则通信可以不受影响。但是这个方法其实只有理论价值,因为绝大多数服务器都不可能忽略 Reset 的 (比如 Linux, 需要 root 权限配置iptables, 而且这本身也把正常的 Reset 给忽略了)。”
正常的 tcp 连接的创建和结束过程中,都不需要用到 Reset。客户端直接drop 掉 Reset,一般不会有问题,至少是可以正常上网的;服务器上如果直接这么做,可能会产生一定的资源消耗。但是这种方式显然比最初始的西厢计划更有效。
具体操作方法
在客户端和服务器上分别用 root 执行:
iptables -A INPUT -p tcp -m tcp –tcp-flags RST RST -j DROP
如果用的是 FreeBSD的 ipfw,命令换用:
ipfw add 1000 drop tcp from any to me tcpflags rst in
如果客户端用的windows,拿西厢项目中的 windows 客户端试试。
另外,客户端还可以丢弃掉gfw 发送的扰乱的 ack+rst 包,具体参考最后更新的说明:
iptables -A INPUT -p tcp -m tcp –tcp-flags RST,ACK RST,ACK -j DROP
在 google code 上已经新建项目,西厢计划第三季。项目后续会在这里更新。更详细的操作方法,参考项目wiki。
局限在客户端和服务器上分别用 root 执行:
iptables -A INPUT -p tcp -m tcp –tcp-flags RST RST -j DROP
如果用的是 FreeBSD的 ipfw,命令换用:
ipfw add 1000 drop tcp from any to me tcpflags rst in
如果客户端用的windows,拿西厢项目中的 windows 客户端试试。
另外,客户端还可以丢弃掉gfw 发送的扰乱的 ack+rst 包,具体参考最后更新的说明:
iptables -A INPUT -p tcp -m tcp –tcp-flags RST,ACK RST,ACK -j DROP
在 google code 上已经新建项目,西厢计划第三季。项目后续会在这里更新。更详细的操作方法,参考项目wiki。
1. 无法应对 IP 封锁。如果 ping IP 都超时,基本无法离开中间服务器绕墙。
2. 在多次触碰敏感词之后,GFW 会直接阻断两端通信,从而导致后续的数据无法传输。
可能的问题
1) 如何让服务器识别 GFW 发送的 Reset 包,而正常处理其它 Reset。很有可能的情况是,西厢 CUI 模块已经解决了这个问题,甚至服务器上直接安装 CUI 即可达到预期效果。
2) Windows 客户端的开发。linux 环境上安装 zhang 和 gfw 是相对容易的,西厢目前也有windows 客户端,但我不清楚目前可用性如何。(如果用方便翻墙作为理由推广linux 倒也不错)
3) 也是最麻烦的问题:这个方法如何推广。如果是个人的vps 上的博客域名被污染,只需要打一条命令就可以搞定;但是如何说服 facebook 在他们服务器上安装这些东西呢?这需要对 CUI 模块做认真的后续开发、测试,以及文档完善。这些准备工作做好了,如果国外的互联网公司认为中国用户足够重要,也自然会考虑这些事情。当然,客户端的推广 同样重要。本文最开始打算用英文写,也是希望国外互联网公司能方便地找到这里。
匿名性
原始的西厢计划小组成员基本是匿名参与。此次我基本上实名了。如有感兴趣的同学欢迎加入。如果遇到政府的压力,我会考虑移民出国。另外,如果本方案有国外网站使用,我也会发布一个项目捐赠方式。
测试结果(7月24日更新)
本文发布当天我没有做测试。今天才找到一朋友的vps 做测试。GFW 有一个惩罚机制,大概是你连上国外服务器的,被发现触碰关键词(访问一个被污染的域名,或者交互数据中有明文的敏感词),发送 RST 之后,会在一段时间内(目前感觉大概是30秒),可能会封禁两端的通信,效果如同 ip被封禁。但是,这种惩罚机制的触发条件不太稳定。我在 Ubuntu 11.04 上的测试结果是:
- curl 100% 触发惩罚规则 – User-Agent: curl/7.21.3 (i686-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18\r\n
- chrome 和 firefox 在连续地发送大约6次http 请求撞墙之后,gfw 似乎会随机阻断若干请求,但是没触发封禁通信的处罚。
from http://liruqi.wordpress.com/2011/07/22/west-chamber-season-3/
(https://github.com/tegulia/west-chamber-season-4)
old version:http://code.google.com/p/scholarzhang/issues/list
--------------------
https://github.com/zenoven/GoAgentX/blob/master/Resources/west-chamber-proxy/wcproxy
https://github.com/tegulia/west-chamber-season-4/blob/master/wcproxy
------------------------
个人2M带宽,使用WCProxy的速度好比直接访问,本代理可用于观看Youtube视频,
多线程加速,速度快于在线代理、SSH、VPN搭建的youtube代理,视频流畅不卡。
也可用于访问Facebook、IMDB等受限网站及突破公司网络限制。
使用说明:
WCProxy很容易使用,只需三个步骤:(如果你是自动重定向到这个页面,在本页面下载最新版本即可继续使用,抱歉~~)
第一步:下载解压代理客户端:点此下载; Mac 系统请下载GoAgentX for WCProxy(注意下载之后把端口修改为1998)
第二步:配置浏览器:设置浏览器HTTP代理服务器地址:127.0.0.1 端口: 1998 。点击这里查看各浏览器详细设置教程。
第三步:打开WCProxy文件夹内的 westchamberproxy.exe,代理开始工作。
使用过程中遇到问题可先参考常见问题 ,如自行无法解决,请通过下面的联系方式获取技术支持!
浏览器设置教程:
火狐(Firefox)浏览器+autoproxy扩展
火狐自动配置脚本法(设置简单快速):首先下载PAC代理规则文件:点此下载(PAC文件可实现智能代理机制,网络加速更有效率)
下载解压后将压缩包内的SwitchyPac.pac文件放置到 C 盘根目录。
依次打开浏览器的工具 -> 选项->高级 ->网络 ->设置 ->自动代理配置URL ->填入:
file://c:/SwitchyPac.pac
确定完成设置,这样配置可实现访问国内网站直接连接不经过代理,只有受限网站才经过代理.-------------
相关帖子:https://briteming.blogspot.com/2016/04/west-chamber.html