介绍:
由于众所周知的原因,我们上网的时候经常会遇到连接重置的情况,西_厢_计_划(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 *’
/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c: In function ‘xtnu_register_target’:
/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c:294: warning: assignment from incompatible pointer type
/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.c:299: warning: assignment from incompatible pointer type
make[4]: *** [/home/username/gfw/west-chamber-20100405/extensions/compat_xtables.o] Error 1
make[3]: *** [_module_/home/username/gfw/west-chamber-20100405/extensions] Error 2
make[3]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic'
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/home/username/gfw/west-chamber-20100405/extensions'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/username/gfw/west-chamber-20100405'
make: *** [all] Error 2
看错误信息是无法找到xt_match_param的结构体定义,感觉像是xtables的头文件的问题,
于是查看/lib/modules/2.6.35-28-generic/build/include/下的linux/netfilter/x_tables.h发现其中没有xt_match_param这个结构体定义。
再查看extensions/compat_xtnu.h,发现其中已有xt_match_param的定义,而且位于出错位置之前,怎么会找不到呢,再仔细一看,
其中有这么一句:
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 27)
原来代码中判定内核版本小于2.6.27才可以编译,我的内核是2.6.35,可能新的内核把这几个定义结构体改名了,那我就简单修改试试看:
加上代码把我的内核版本加上去:
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 27) || LINUX_VERSION_CODE == KERNEL_VERSION(2, 6, 35) //把原代码块中两个新内核没有的定义移过来 #endif
把内核中没有的两个定义加上去,再make,编译通过。
再按照官方给的方法执行ipset成功。
再执行iptables设定防火墙规则时发生错误: Input/output error.
怀疑是ipset版本问题,尝试编译安装最新版本ipset:
wget http://ipset.netfilter.org/ipset-6.3.tar.bz2 tar jxvf ipset-6.3.tar.bz2 cd ipset-6.3.tar.bz2/ ./authogen.sh ./configure --prefix=/usr make
make的时候产生错误信息:
configure: error: The kernel source directory /lib/modules/2.6.35-28-generic/build is not patched with netlink.patch to support ipset
看来这个版本的内核无法安装最新的ipset,这条路看来行不通。
先不管,重新编译iptalbes和xtables-addons-common试试看:
wget http://netfilter.org/projects/iptables/files/iptables-1.4.10.tar.bz2 tar jxvf iptables-1.4.10.tar.bz2 cd iptables-1.4.10 ./configure --prefix=/usr -libexecdir=/lib -libdir=/lib -sbindir=/sbin make && sudo make install wget http://downloads.sourceforge.net/project/xtables-addons/1.34/xtables-addons-1.34.tar.xz xz -d xtables-addons-1.34.tar.xz tar xvf xtables-addons-1.34.tar cd xtables-addons-1.34 ./configure -prefix=/usr -libexecdir=/lib -libdir=/lib -sbindir=/sbin make && sudo make install
编译完成后重新编译west-chamber,再执行iptables 配置,发生错误:
iptables: target "ZHANG" has version "libxtables.so.2", but "libxtables.so.5" is required.
iptables: match "gfw" has version "libxtables.so.2", but "libxtables.so.5" is required.
iptables: match "gfw" has version "libxtables.so.2", but "libxtables.so.5" is required.
第一次尝试安装失败。
第二次编译安装:
----------------------------------------------------------------------------------------------------------
从第一次的安装情况推测,可能是源代码太老,于是从SVN签出最新代码(REV106),开始编译安装:
cd west-chamber-src/ ./autogen.sh ./configure --with-xtlibdir=/lib --prefix=/usr --libexecdir=/lib make && sudo make install
在这之前先编译安装iptables和xtables-addons:
cd iptables-1.4.10 ./configure --prefix=/usr -libexecdir=/lib -libdir=/lib -sbindir=/sbin make && sudo make install cd ../xtables-addons-1.34 ./configure --prefix=/usr -libexecdir=/lib -libdir=/lib -sbindir=/sbin make && sudo make install
不过很不幸,还是出现之前的错误:
iptables: target "ZHANG" has version "libxtables.so.2", but "libxtables.so.5" is required.
iptables: match "gfw" has version "libxtables.so.2", but "libxtables.so.5" is required.
iptables: match "gfw" has version "libxtables.so.2", but "libxtables.so.5" is required.
把/lib/libxtables.so.2.0.0删除,再运行iptables设置,发现新的错误:
/lib/xtables/libxt_ZHANG.so: libxtables.so.2: cannot open shared object file: No such file or directory
/lib/xtables/libxt_ZHANG.so: libxtables.so.2: cannot open shared object file: No such file or directory
iptables v1.4.10: Couldn't load target `ZHANG':/lib/xtables/libipt_ZHANG.so: cannot open shared object file: No such file or directory
Try `iptables -h' or 'iptables --help' for more information.
/lib/xtables/libxt_gfw.so: libxtables.so.2: cannot open shared object file: No such file or directory
iptables v1.4.10: Couldn't load match `gfw':/lib/xtables/libipt_gfw.so: cannot open shared object file: No such file or directory
Try `iptables -h' or 'iptables --help' for more information.
/lib/xtables/libxt_gfw.so: libxtables.so.2: cannot open shared object file: No such file or directory
iptables v1.4.10: Couldn't load match `gfw':/lib/xtables/libipt_gfw.so: cannot open shared object file: No such file or directory
这说明west-chamber编译的有问题,它引用了版本2的iptables库,但是最新的iptable库是版本5。
思考了一下,觉得是因为iptables版本太高(1.4.10),但是iptables-dev是低版本的(1.4.4),编译west-chamber的时候按照低版本的编译的,因此产生了不匹配。
考虑把iptables弄回1.4.4版本再试试,但是没找到降版本方法,于是直接把系统恢复成刚安装的状态(我是虚拟机,直接恢复,很快~~)。
这次直接编译west-chamber,不编译最新的iptables和xtables-addons-common.
顺利通过! :) 这时再执行iptables命令时就不提示错误信息了。
使用结果
---------------------------------------------------------------------------------------------------------
安装启动成功后用以下命令查看防火墙状态
$ sudo iptables -L -n -v
可以看到三条规则已经设置正确。
Chain INPUT (policy ACCEPT 189 packets, 29303 bytes)
pkts bytes target prot opt in out source destination
0 0 ZHANG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:80 flags:0x17/0x12 state ESTABLISHED match-set NOCLIP src
0 0 LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:80 state ESTABLISHED gfw LOG flags 0 level 6 prefix `gfw: '
0 0 DROP udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:53 state ESTABLISHED gfw
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 274 packets, 204K bytes)
pkts bytes target prot opt in out source destination
我现在还不能分析清楚什么原因,要分析这个除了了解TCP之外,还要了解GFW,并且有一些想象力的。继续努力~
相关推荐
体育课评分系统 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程 项目启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS
研究报告
客运自助售票小程序 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程 项目启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS
一个完整yolov8整合包yolov8-一体机一个完整yolov8整合包参考仓库https://github.com/z1069614715/objectdetection_scriptB站教学视频https://www.bilibili.com/video/BV15g4y157MF/
解决CAM350导入gerber提示“找不到首标题%,载入停止” 把文件放到gerber上一层或gerber层,运行此bat命令即可
行业研究报告、行业调查报告、研报
使用yolov7训练自己的数据集pytorch-yolov7使用yolov7训练自己的数据集参考https://github.com/WongKinYiu/yolov7
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
机电一体化系统中机器学习应用的最终项目交通标志检测-Tensorflow-YOLOv3-YOLOv4与 Syed Imad 合作完成的机电一体化系统中机器学习应用的最终项目 ( https://github.com/syed019 )关于任何识别系统都有两个主要任务检测(在输入图像上找到物体的位置和大小)和分类(将检测到的物体分类为子类)。这两项任务通常都使用单个检测/分类模型(如 YOLO 或 SSD)完成,其中输入图像用边界框和相应的类别标记。但是,标记和训练此类数据集需要大量时间和精力。因此,该项目的主要目标是仅检测一个主要类别(标志),并集成定制的卷积神经网络来对检测到的物体进行分类(子类,如限速、停车标志等)。这样,我们只需要训练一次检测模型来检测一个主要类别,而可以根据任务要求训练多个分类模型来对检测到的物体进行分类。输出实时检测对已保存图像进行检测 设置和要求OpenCV(版本 4)PythonNumpyTensorFlow喀拉拉YOLO 实现对于这个项目,由于时间限制,我们决定使用公开可用的数据集(德国交通标
Yolov3的Pytorch版本实现模板检测YOLOV3-火灾探测csdn githubYolov3的Pytorch版本实现模板检测,其具体效果如下要求环境windows10编程语言python编程工具pycharm所需的包requirements.txt火车1.安装包本次需要的包在requirements.txt中,通过 pip install -r requirements.txt即可。2.所需体重文件$ cd weights/$ bash download_weights.sh进入weights目录下,运行sh文件,即可下载本次所需权重,即darknet53.conv.74,yolov3.weights,yolov3-tiny.weights3.修改配置文件信息$ cd config/$ bash create_custom_model.sh <num_classes>进入config目录。执行bash create_custom_model.sh <num_classes>,其中num_classes为类别参数,根据
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
Yolov4-deepsort-头盔检测使用darknet 框架YOLOv4 模型训练的头盔(安全帽)检测器。测试环境Windows 10 x64 2020 (build 19041.388)NVIDIA RTX 2070 SuperCUDA 10.1 / CuDNN 7.6.5Python 3.7.7 x64tensorflow 2.2.0 GPU受训重量Google 云端硬盘放入体重文件./configs要使用自己的数据集进行训练,你应该自己使用darknet。并且需要更改一些参数使用数据集roboflow.ai 公共数据集+ 约 100 张图片依赖项Pythonopencv-python、numpy、scikit-image在图像上绘制框和文本TensorFlow 2.2.0使用DeepSORT模型来跟踪对象matplotlib创建颜色图CUDA 10.1 / CuDNN 7.6.5暗网用于 yolov4 物体检测dark.dll, pthreadVC2.dll (windows)预编译(我不确定它是否可以在不同的机器上运行
研究报告
内容概要:本文详细介绍了运算放大器和比较器的基本原理及其内部电路结构。内容涵盖了运算放大器和比较器的定义、内部电路、绝对最大额定值、电气特性、相位延迟、振荡、可靠性和响应时间等方面。通过具体的公式和实例,阐述了它们的工作机制和技术细节。 适合人群:具有电子工程背景的专业人士,尤其是从事模拟电路设计的技术人员。 使用场景及目标:适用于理解和设计运算放大器和比较器的应用电路,帮助读者掌握其关键技术和参数,优化电路性能。 其他说明:文中提供了大量图表和实例,以便读者更好地理解和应用相关理论。同时,还详细介绍了如何解决一些常见问题,如振荡、失真和噪声等问题。
基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台,含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。该项目可以直接作为毕设、期末大作业使用,代码都在里面,系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值,项目都经过严格调试,确保可以运行! 基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐微信小程序+基于SpringBoot和Vue的管理后台基于uniapp的奶茶店点餐
YOLOC 是将不同的模块组合起来构建不同的物体检测模型,包括 YOLOv3、YOLOv4、Scaled_YOLOv4、YOLOv5、YOLOv6、YOLOv7、YOLOX、YOLOR、PPYOLO、PPYOLOEYOLOC介绍 YOLOC正在组合不同的模块来构建不同的对象检测模型。结合一些模块和技巧来改进YOLO检测模型,使用不同数据集的效果不一致。需要通过具体的实验进行尝试和验证YOLOC中的支持的模块有主流 YOLOv3 模型网络结构主流YOLOv4模型网络结构主流 Scaled_YOLOv4 模型网络结构主流YOLOv5模型网络结构主流 YOLOv6 模型网络结构主流 YOLOv7 模型网络结构主流 YOLOX 模型网络结构主流 YOLOR 模型网络结构 PicoDet模型网络结构变压器架构的主干、颈部、头部改进了变压器系列的骨干、颈部、头部注意系列的脊椎、颈部、头部基于anchor-free和anchor-based的检测器FPN、PANet、BiFPN等结构CIoU、DIoU、GIoU、EIoU、S
## 数据指标说明 资源名称:2000-2021年县域农产品产量面板数据 区域范围:全国各县区 时间范围:2000-2021年 格式:Excel 数据量:近30w 指标:县域代码、县域名称、所属地级市、所属省份、产品种类或名称、单位、产量
研究报告
基于 NCNN 的 YOLOv5/YOLOv7/YOLOv8 检测和姿势推理的 Android 库基于NCNN的 YOLOv5/YOLOv7/YOLOv8 检测/姿势推理的 Android 库支持yolov5、 edgeai-yolov5、 yolov7、 yolov8系统Android 5.0+(21)English 中文如何1 下载.aar文件2 将.aar 文件放入 app/libs 目录中3 编辑 app/build.gradleimplementation files('libs/yolo_mobile_release_xxxxyyzz_v.*.aar')4 将ncnn.bin和.param放入assets目录5 创建名为'yolo_cfg.json'的新文件{ "name": "yolov8n", "input_size": 384, "param": "yolov.param", "bin": "yolo.bin", "box_thr": 0.5, "iou_thr": 0.5, "nkpt":