Chinaunix首页 | 论坛 | 博客
  • 博客访问: 723652
  • 博文数量: 823
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5165
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-21 15:52
文章分类

全部博文(823)

文章存档

2011年(1)

2008年(822)

我的朋友

分类: LINUX

2008-08-21 17:35:42


这两天编译ipp2p模块,以前在FC4和RHEL5上都编译成功,但是在Ubuntu-Server8.04上一直没成功!

sudoapt-getsourcelinux-image-2.6.24-19-server

sudoapt-getsourceiptables

然后把ipp2p里的Makefile里KERNEL_SRC和IPTABLES_SRC修改正确路径

然后对照修改/usr/src/linux/Makefile

yclilin@ubuntu:~$uname-r
2.6.24-19-server
yclilin@ubuntu:~$head-4/usr/src/linux/Makefile
VERSION=2
PATCHLEVEL=6
SUBLEVEL=24
EXTRAVERSION=-19-server

接着在ipp2p目录下make,记得用root权限

如果提示错误

scripts/kconfig/lxdialog/dialog.h:31:20:error:curses.h:Nosuchfileordirectory

原因為缺少ncursesdevel套件(name"libncurses5-dev"inUbuntu),安裝後即可
$sudoapt-getinstalllibncurses5-dev

以下是低版本编译时容易出现的问题。

如果提示编译libipt_ipp2p.so有错误,请将Makefile中的“$(CC)-shared-olibipt_ipp2p.solibipt_ipp2p.o”修改为“ld-shared-olibipt_ipp2p.solibipt_ipp2p.o”。(1.3.5版的iptables使用ld没问题;但是1.3.8版的使用ld就不行了,只能使用gcc)

最后makeinstall就可以了。

先前用普通用户sudomake时只能生成libipt_ipp2p.o和libipt_ipp2p.so文件,不能生成libipt_ipp2p.ko,也没有什么错误提示,后来用root权限make就好了,就是这个问题困扰了我两天。

以下是应用中可能遇到的问题:
1、重新load脚本,发现--ipp2p和--xunlei的过滤都无效。
解决:光重新load脚本是不行的,必须停止iptables,再load脚本,类似重新加载新的模块。

2、--ipp2p选项能看到DROP的数据包,而--xunlei没有
解决:--ipp2p能DROP数据包,说明安装没有问题,一定是策略上有冲突。检查脚本,发现--xunlei-jDROP前有一条iptables-AFORWARD-m--stateESTABLISHED,RELATED-jACCEPT,去掉这条规则就OK了。

3、看到有个网友的问题也很特殊,特此记录。
通过iptables和squid做的代理,在FORWARD链上使用--xunlei规则,但依然能搜索到候选资源。
因为迅雷能走80端口,所有迅雷通过squid代理是走的网关的INPUT链,因此应该写为iptables-AINPUT-m-ipp2p--xunlei-jDROP 下载本文示例代码
阅读(403) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~