天上芙蓉剑 人间竹叶舟
天上芙蓉剑 人间竹叶舟

让翻墙成为历史:西厢计划?崂山计划!

添加这篇文章时的兴奋心情有如老白遇见猫薄荷~ 😈

今天,在一个名为“自由”的博客看到了一篇介绍“西厢计划”的文章。这一计划,据说是:

西厢计划提供一组工具,使得用户在一次设置之后,能够以普通程序直连目标网络,而避免GFW的大部分影响。其命名是为 了向中国古典文学史上翻墙的先驱者张某致敬。西厢计划现在已经达到alpha可用状态,在初步的测试中可以让用户以普通浏览器无障碍地直连 Youtube。

按照作者的介绍,西厢计划的主要目的有两个:

  1. TCP连接混淆:使得GFW无法正确解析连接和检测关键词(这也就意味着无需“翻墙”而可以直接“穿墙”而过)
  2. 反DNS劫持。

该计划的最大特点是:

西厢计划不是代理,不是VPN,无需加密,使用时不需要第三方支援,不需要绕道,让用户能够以最优的性能直连目标,使用时不需要运行特别的程序。西厢计划利用现有工具,仅要求用户能够使用iptables进行快速配置,学习难度低。

西厢计划目前对Linux友好,暂未支持Win系统Win版本为Alpha。“自 由”详细介绍了使用方法,摘录如下:

  • 安装:到这里下载 安装文件, 解压进入目录. 先安装一些依赖软件:

$ sudo apt-get install autoconf automake libtool aptitude xtables-addons-common iptables-dev

接下来开始编译加安装:

$ ./autogen.sh
$ CFLAGS="" ./configure --prefix=/usr --libexecdir=/lib
$ make
$ sudo make install

  • 配置:进入安装文件的”examples”目录。该目录中有一些已经设定好的ipset规则, 这些规则用来过滤那些特定的网络访问, 先导入所有规则:


$ sudo ipset -R < CHINA
$ sudo ipset -R < GOOGLE
$ sudo ipset -R < YOUTUBE
$ sudo ipset -R < NOCLIP

再使用iptables设定具体的过滤规则:

$ sudo iptables -A INPUT -p tcp --sport 80 --tcp-flags FIN,SYN,RST,ACK SYN,ACK -m state --state ESTABLISHED -m set --match-set NOCLIP src -j ZHANG -m comment --comment "client-side connection obfuscation"
$ sudo iptables -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j CUI -m set --match-set CHINA src -m comment --comment "server-side connection obfuscation"
$ sudo iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -m gfw -j LOG --log-level info --log-prefix "gfw: " -m comment --comment "log gfw tcp resets"
$ sudo iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -m gfw -j DROP -m comment --comment "drop gfw dns hijacks"

最后修改主DNS, 在”/etc/dhcp3/dhclient.conf”文件中找到”prepend domain-name-servers”, 将后面的IP替换为没有被感染的DNS地址, 比如”8.8.8.8″, 重启网卡:

$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up

为了避免重启后配置失效,还有两项工作要做:
首先确定你已经设定好了上面的所有规则, 接着将当前规则导出并放到”/etc”目录中:
$ sudo ipset -S > ipset.rules
$ sudo iptables-save > iptables.rules
$ sudo mv ipset.rules iptables.rules /etc

然后,在这里下载 NetworkManager的配置脚本, 加上可执行权限, 最后放到”/etc/NetworkManager/dispatcher.d”目录中.

在”/etc/network/interfaces”文件中类似下面的代码
auto eth0
iface eth0 inet dhcp

之后添加如下几 行:
pre-up ipset -R < /etc/ipset.rules
pre-up iptables-restore < /etc/iptables.rules post-down ipset -S > /etc/ipset.rules
post-down iptables-save > /etc/iptables.rules

好吧,这个世界热闹了。目前测试过的网站包括:YouTube,Google的Picasa、Groups、Docs和Blogger。Twitter和Facebook还无法前往。
过去翻墙基本上是无法看YouTube的高清视频的,现在好啦:

这个计划命令为“西厢”,似乎有点不太确切,西厢里的前辈似乎依然是翻墙,这一计划要达到的效果远比翻墙简单有效,类似于崂山道士所修之“穿墙术”,墙不存在……墙不存在……

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

One thought on “让翻墙成为历史:西厢计划?崂山计划!”