"西厢计划".
穿越GFW这么多年, 基本上各种类型的方法都用过, 每每穿墙都有一种莫名的快感, 想着GFW同学被无数人一次又一次地虐待. 作为新世纪的有志青年, 翻墙已经成了一种必须掌握的技能. 俗话说得好, "不会翻墙的网民不是好公民." 看到这里你应该已经知道"西厢计划"到底是个什么东西了, 但它不同于以往的所有翻墙技术, 算是翻墙界的最新研究成果吧. "西厢计划"的优势在于可以用最直接的方式访问网站, 比如平时用的代理、VPN都是先到另一个地方绕一圈, 而按照作者的说法, "西厢计划"直接注入GFW系统, 这样当你访问敏感词网站时, GFW就变得像个傻子一样, 根本不会进行重置操作, 从而以最快的速度访问网站.
建议在Linux系统中进行使用, 且要求内核版本大于等于2.6.17, 下面是我在Ubuntu中安装配置的全过程.
安装
到这里下载安装文件, 解压进入目录. 先安装一些依赖软件:$ 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
大功告成! 打开浏览器试试吧, YouTube、Blogger、Picasa、Google Groups、Google Docs的Spreadsheet这些都已是畅通无阻, 不过目前Twitter、Facebook还无法访问, 但相信"西厢计划"以后将会越来越强大.
2010.3.13更新:
以上配置在重启之后都会消失, 这就麻烦了, 总不能每次开机都先输这么一长串命令吧. 在参考了Ubuntu官方Wiki之后, 有了一个很好的解决办法.
首先确定你已经设定好了上面的所有规则, 接着将当前规则导出并放到"/etc"目录中:$ sudo ipset -S > ipset.rules $ sudo iptables-save > iptables.rules $ sudo mv ipset.rules iptables.rules /etc其实我们需要做的就是让系统在每次开机的时候自动读取这些规则, 这可以有很多种方法, 比如写成脚本, 放到rc目录中, 但我觉得下面的方法更加灵活一点. 这里又要分成两种方法, 如果你使用了NetworkManager, 请看第一种, 否则看第二种. 之所以要这样分开讨论, 是因为第二种方法会导致NetworkManager不能正常工作.
- 在这里下载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
P.S. 我终于又可以直接在Blogger里写博客了, 泪牛满面啊.
No comments:
Post a Comment