Archive for March, 2010
北京的宝马警车(图)
一点关于西厢计划安装配置的问题
对于崇尚自由的人们来说,西厢计划简直就是神来之笔,它让我们在这个黑暗的年代看到了曙光,为我们打破信息谎言创造了途径。最值得赞叹的是:这是规则之下的博弈。gfw今天棋逢对手了!
具体的编译、安装和配置请看http://code.google.com/p/scholarzhang/wiki/INSTALL。
配置请看http://code.google.com/p/scholarzhang/wiki/USAGE
为了不重复发明轮子。在此,我仅仅提供一些应对问题的经验。
如果按照官方文档的指引,基本能够成功,但是从留言和我自己的经历来看,在中途可能还是有一部分人会遇到一点问题而成功不了。这些问题官方文档没有提及,也许是因为软件作者本身水平太高,这些问题基本遇不到,或者顺手就解决了,也就没有正式的写道wiki中。
好了,说正题。
- 问题一。大部分朋友会遇到找不到下面三个文件:
/lib/xtables/libipt_ZHANG.so
/lib/xtables/libipt_CUI.so
/lib/xtables/libipt_gfw.so
到/lib/xtables/下的确找不到这三个文件。不过编译安装后我们可以在/usr/local/libexec/xtables/下找到文件名相似的个文件(而源文件目录下,生成的也只有这几个文件,可以断定就是他们几个)。因此,可以从/usr/local/libexec/xtables/下创建链接文件到/lib/xtables/下:cd /lib/xtables sudo ln -s /usr/local/libexec/xtables/libxt_CUI.so libipt_CUI.so sudo ln -s /usr/local/libexec/xtables/libxt_ZHANG.so libipt_ZHANG.so sudo ln -s /usr/local/libexec/xtables/libxt_gfw.so libipt_gfw.so
- 问题二,IP地址解析仍然不正确。即使正确设置了自己的DNS server为8.8.8.8也解析不到正确的www.youtube.com地址。反复检查了/etc/hosts文件以及/etc/resolv.conf文件都找不到哪里出了错。于是浏览器要么出现网络错误,要么出现refuse错误。如果使用命令
nslookup www.youtube.com
则一如既往的错。但如果使用nslookup的交互模式,并设置了dns server 为8.8.8.8,则能够解析到正确的IP地址。其实,这是因为在还没有执行ipset和iptables命令之前访问了youtube,那时DNS被污染,因此本地的DNS cache记录了被污染的DNS地址。通过执行下面的命令可以清除本地DNS Cache:
sudo resolvconfig -d wlan0 sudo resolvconfig -d eth0
- ipset的规则是什么,example中的规则怎么理解?
example中的规则一般如这样”-A YOUTUBE 208.117.224.0/19 ”。前面的-A和YOUTUBE 容易理解。但是”208.117.224.0/19″是什么?其实,这是表示一个网段,将208.117.224.0转化为二进制后应该是”11010000.01110101.1110000.00000000″,每段8位,第19位是第三段第三位,就是最后那个1上。”208.117.224.0/19″就表示二进制的前19位是相同的,这表示一个网段的IP地址。与子网掩码表示的方法不同,但意思是一样的。
每个步骤保证正确之后,可以写成一个脚本,以简便每次启动过程:
首先,导出刚才的那些设置:
sudo ipset -S > ipset.ruls sudo iptables-save > iptable.ruls接着,把它们放到/etc目录下面,(不能放到/home目录下,因为到时候会用sudo执行,root用户访问不到自己的目录):
sudo mkdir /etc/west-chamber sudo chmod a+w /etc/west-chamber cp ipset.ruls iptable.ruls /etc/west-chamber/最后,写一个脚本,并赋予可执行权限:
sudo touche /usr/local/sbin/west-chamber.sh#!/bin/sh #restore rules ipset -R < /etc/west-chamber/ipset.ruls iptables-restore < /etc/west-chamber/iptable.ruls #set trusted nameserver echo nameserver 8.8.8.8 > /etc/resolv.conf echo nameserver 8.8.4.4 >> /etc/resolv.conf #clear the resolve catch resolvconf -d wlan0 resolvconf -d eth0sudo chmod a+x /usr/local/sbin/west-chamber.sh现在就可以执行
sudo west-chamber.sh来启动西厢计划了。
现在打开youtube看看吧!
附A:一些有用的命令:
查询所有www.youtube.com的IP并保存到文件中:
$nslookup www.youtube.com | grep Address | grep -v '#53' | awk '{print $2}' >> www.youtube.com.ip清除本地的dns缓存:
$resolvconfig -d wlan0 $resolvconfig -d eth0统计有多少个IP:
$cat www.youtube.com.ip | sort -g | uniq | wc -l
