免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ShadowStar
打印 上一主题 下一主题

[网络管理] IPP2P模块修改版,最新0.99.16 [复制链接]

论坛徽章:
0
471 [报告]
发表于 2008-06-26 14:42 |只看该作者
内核:2.6.16.60
iptables:1.3.8
编译出现如此错误:

  1. In file included from /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:6:
  2. include/net/netfilter/nf_conntrack_core.h:42: warning: ‘struct nf_conntrack_tuple’ declared inside parameter list
  3. include/net/netfilter/nf_conntrack_core.h:42: warning: its scope is only this definition or declaration, which is probably not what you want
  4. include/net/netfilter/nf_conntrack_core.h:48: warning: ‘struct nf_conntrack_tuple’ declared inside parameter list
  5. include/net/netfilter/nf_conntrack_core.h:53: warning: ‘struct nf_conn’ declared inside parameter list
  6. include/net/netfilter/nf_conntrack_core.h:53: warning: ‘struct nf_conntrack_tuple’ declared inside parameter list
  7. include/net/netfilter/nf_conntrack_core.h: In function ‘nf_conntrack_confirm’:
  8. include/net/netfilter/nf_conntrack_core.h:64: warning: implicit declaration of function ‘nf_ct_is_confirmed’
  9. include/net/netfilter/nf_conntrack_core.h:66: warning: implicit declaration of function ‘nf_ct_deliver_cached_events’
  10. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c: In function ‘match’:
  11. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:815: error: storage size of ‘ctinfo’ isn’t known
  12. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:836: warning: implicit declaration of function ‘nf_ct_get’
  13. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:836: warning: assignment makes pointer from integer without a cast
  14. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:841: error: dereferencing pointer to incomplete type
  15. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:841: error: ‘IP_CT_DIR_ORIGINAL’ undeclared (first use in this function)
  16. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:841: error: (Each undeclared identifier is reported only once
  17. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:841: error: for each function it appears in.)
  18. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:841: error: dereferencing pointer to incomplete type
  19. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:841: error: ‘IP_CT_DIR_REPLY’ undeclared (first use in this function)
  20. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:842: error: dereferencing pointer to incomplete type
  21. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:844: error: dereferencing pointer to incomplete type
  22. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:845: error: dereferencing pointer to incomplete type
  23. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:847: error: dereferencing pointer to incomplete type
  24. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:847: error: dereferencing pointer to incomplete type
  25. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:847: error: dereferencing pointer to incomplete type
  26. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:878: error: dereferencing pointer to incomplete type
  27. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:900: error: dereferencing pointer to incomplete type
  28. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:815: warning: unused variable ‘ctinfo’
  29. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c: At top level:
  30. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:946: warning: initialization from incompatible pointer type
  31. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:947: warning: initialization from incompatible pointer type
  32. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c: In function ‘init’:
  33. /usr/local/ipp2p-0.99.16/ipt_ipp2p.c:962: warning: implicit declaration of function ‘need_conntrack’
  34. make[2]: *** [/usr/local/ipp2p-0.99.16/ipt_ipp2p.o] Error 1
  35. make[1]: *** [_module_/usr/local/ipp2p-0.99.16] Error 2
  36. make: *** [ipt_ipp2p.ko] Error 2
复制代码


请看下!

论坛徽章:
0
472 [报告]
发表于 2008-06-26 20:10 |只看该作者
但却不支持2。6。25内核,真是一大遗憾

论坛徽章:
0
473 [报告]
发表于 2008-07-04 16:16 |只看该作者
kernel 2.6.23
iptables 1.3.5
编译 加载成功 试了0.99.5 , 0.99.10,  0.99.15都封不了最新的迅雷 就是 5.8xxx的迅雷
迷茫中....

[ 本帖最后由 banevv 于 2008-7-9 22:11 编辑 ]

论坛徽章:
0
474 [报告]
发表于 2008-07-04 23:24 |只看该作者
原帖由 banevv 于 2008-7-4 16:16 发表
kernel 2.6.23
iptables 1.3.5
编译 加载成功 试了0.99.5 , 0.99.10,  0.99.15都封不了最新的迅雷 就是 5.8xxx的迅雷
迷茫中....

什么症状?

论坛徽章:
0
475 [报告]
发表于 2008-07-07 11:09 |只看该作者

感谢楼主无私的帮助!

按照楼主的方法,折腾了好几天,期间 多次烦扰楼主,楼主均耐心解答。最终得以成功。
过程中的一些心得与大家分享。从我遇到的问题来看,主要是编译内核,以及内核版本与iptables版本选择很关键。至于是不是版本兼容,我还是没太明白。至于编译内核,因为不清楚每个模块到底是做什么的,所以我选择将所有网络相关的模块都编进内核或者编译成模块。具体实现过程如下:

a.下载所需的软件包:
linux-2.6.23.tar.gz; iptables-1.3.8;  ipp2p-0.99.15.
b.定制编译内核:
  tar zxvf linux-2.6.23.tar.gz
  cd linux-2.6.23/
  make menuconfig   将网络相关的选项全部编进内核或者编译成模块。
  make bzImage
  make modules
  make modules_install
  make install
  vi /etc/grub.conf    将新内核设置为默认启动项。
  reboot            重启系统
  uname -r          查看新内核版本为:2.6.23.
c.升级iptables到1.3.8
  bzip2 -d iptables-1.3.8.tar.bz2
  tar xvf iptables-1.3.8.tar
  cd iptables-1.3.8/
  make KERNEL_DIR=/usr/src/linux-2.6.23
  make install KERNEL_DIR=/usr/src/linux-2.6.23
  iptables          查看iptables版本 依然为1.2.11
   cd /sbin
   cp /usr/local/sbin/iptables iptables    将新安装的iptables拷贝到/sbin下.
   Iptables          查看到新的版本 1.3.8;
d.安装ipp2p模块
    tar zxvf ipp2p-0.99.15.tar.gz
    cd ipp2p-0.99.15/
    vi Makefile        修改kernel_dir为/usr/src/linux-2.6.23
    make
    cp ipt_ipp2p.ko /lib/modules/2.6.23/kernel/net/ipv4/netfilter/
    cp libipt_ipp2p.so /usr/local/lib/iptables/
加载ipp2p
    service iptables stop
    depmod –a
    service iptables start
    iptables -A FORWARD -m ipp2p --xunlei -j DROP
成功!
经测试 能成功封掉迅雷查找候选资源,提示查找候选资源失败。
迅雷版本为5.8.1xx,好像是。

[ 本帖最后由 banevv 于 2008-7-7 11:17 编辑 ]

论坛徽章:
0
476 [报告]
发表于 2008-07-09 11:45 |只看该作者

测试中发现的问题

迅雷开5个任务 开始的几分钟(大约10分钟)能够正常封掉 迅雷提示不能找到候选资源
但是10分钟以后 所有的任务都开始找到候选资源 并开始正常下载
哪位遇到过这样的问题 ?
有没有解决的办法呢?

论坛徽章:
0
477 [报告]
发表于 2008-07-09 22:10 |只看该作者
原帖由 platinum 于 2008-7-4 23:24 发表

什么症状?

就是 可以编译成功,编译过程没有提示任何错误。
使用modprobe ipt_ipp2p可以加载该模块。
只设置iptabels -A FORWARD -m ipp2p --xunlei -j DROP
INPUT,FORWARD,OUTPUT默认都为ACCEPT
但是 防火墙后面的客户端可以使用迅雷正常下载。
用iptables -L -v -n 查看 该规则没有匹配到任何数据。




经过重新编译内核 以及选择iptables-1.3.8之后以上问题解决,原因还是不知道。
但是遇到了新的问题,之前的回帖里也看到过相似的疑问,就是,迅雷开始下载任务的时候好像ipp2p是有效的,确实找不到候选资源,但是一段时间以后,如果是开了几个任务,可以看见所有的任务几乎同时找到大量候选资源, 并开始正常下载。此时如果停止所有任务,重新建立新的下载任务,发现ipp2p也不起作用,就是说:这个时候新建的下载任务可以立即连接候选资源,并开始下载。


经过向楼主请教,已将抓到的包发给楼主分析,希望能得到解答。

[ 本帖最后由 banevv 于 2008-7-9 22:20 编辑 ]

论坛徽章:
0
478 [报告]
发表于 2008-07-09 23:42 |只看该作者
如果是 2.6.21 以后的内核,需要 modprobe nf_conntrack_ipv4,因为可能涉及到连接追踪的问题
另外你说的换成 iptables 1.3.8 没事了我觉得很奇怪,按理说不应该,因为 iptables 仅仅是一个用户态程序
至于迅雷为什么仍然可以找到候选资源,肯定和特征匹配有关,也许是协议变了,特征也变了

论坛徽章:
0
479 [报告]
发表于 2008-07-10 14:40 |只看该作者
error You need to define KERNEL_SRC   编译的时候老报这个错误 我是照着 banevv 的步骤做的 内核是2.20的 其他的跟banevv一样

论坛徽章:
0
480 [报告]
发表于 2008-07-10 14:46 |只看该作者
原帖由 haomany 于 2008-7-10 14:40 发表
error You need to define KERNEL_SRC   编译的时候老报这个错误 我是照着 banevv 的步骤做的 内核是2.20的 其他的跟banevv一样


指定一下你的内核头文件的路径

export KERNEL_SRC=/your/kernel/patch
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP