日期:2014-05-16  浏览次数:20725 次

西厢记之 Ubuntu Linux下编译安装西_厢_计_划

?

?

介绍:

?

由于众所周知的原因,我们上网的时候经常会遇到连接重置的情况,西_厢_计_划(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 *’