日期:2014-05-16 浏览次数:20892 次
?
?
介绍:
?
由于众所周知的原因,我们上网的时候经常会遇到连接重置的情况,西_厢_计_划(west-chamber)是一个旨在通过技术手段解决此类问题的开源项目。项目主页:http://code.google.com/p/scholarzhang
?
为便于说明而不带来问题,我把重置连接的系统称之为maxtrix,就是电影《黑客帝国》中的那个,你懂的。
?
我花了几天的时间把程序编译并安装成功,不过使用的时候发现访问网站成功率不高。试了几个网站,youtube(可连,但不稳定),blooger(一段时间能上),facebook(一段时间能上),twitter(不能上)。查看TCP,虽然程序能够按照既定方案“注入”TCP报文段,但是经常还是重置连接,目前还不能找到是何原因。
?
虽然如此,我仍然相信开发者会不断完善这个项目,与matrix战斗到底,因此我 把在Ubuntu Linux下的安装过程和方法拿出来,以供爱好者参考。
?
注意:阅读本文,需要对Linux系统及其防火墙netfilter有一定的了解,且务必先阅读官方的安装和使用说明文档,否则会难以理解。
?
---------------------------------------------------
?
介绍一下安装前的环境:
环境是在VirtualBox 4.x上搭建的全新虚拟机。
ubuntu desktop 10.10
linux kernel 2.6.35-28-generic
iptables v1.4.4
?
安装过程一波三折,分别两次编译不同版本的代码,最后成功。
第一次编译的代码是官网给出的下载 west-chamber-20100405.tar.bz2,
第二次是从SVN签出的最新的代码,版本REV106。
如果你和我有接近的环境,并想直接安装成功的话,可以直接跳到第二段。
?
?
第一次编译安装过程:
------------------------------------
?
从项目主页下载源代码包:west-chamber-20100405.tar.bz2
解压缩后按照INSTALL文件中的步骤安装
?
?
./autogen.sh ./configure CFLAGS="..." --prefix=/usr ... make && sudo make install?
?
执行到make的时候出错
make ?all-recursive
make[1]: Entering directory `/home/username/gfw/west-chamber-20100405'
Making all in extensions
make[2]: Entering directory `/home/username/gfw/west-chamber-20100405/extensions'
if [ -n "/lib/modules/2.6.35-22-generic/build" ]; then make -C /lib/modules/2.6.35-22-generic/build M=/home/username/gfw/west-chamber-20100405/extensions modules; fi;
make[3]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic'
?CC [M] ?/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.o
In file included from /home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c:21:
/home/username/gfw/west-chamber-20100405/extensions/compat_xtnu.h:87: warning: ‘struct xt_match_param’ declared inside parameter list
/home/username/gfw/west-chamber-20100405/extensions/compat_xtnu.h:87: warning: its scope is only this definition or declaration, which is probably not what you want
/home/username/gfw/west-chamber-20100405/extensions/compat_xtnu.h:103: warning: ‘struct xt_target_param’ declared inside parameter list
/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c:193: warning: ‘struct xt_target_param’ declared inside parameter list
/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c: In function ‘xtnu_target_run’:
/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c:207: error: dereferencing pointer to incomplete type
/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c:216: warning: passing argument 2 of ‘nt->target’ from incompatible pointer type
/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c:216: note: expected ‘const struct xt_target_param *’ but argument is of type ‘const struct xt_target_param *’