本帖最后由 wulishui 于 2023-10-31 11:39 编辑
无意中我翻到 https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=128570&highlight=ndpi ,这是整整10年前的东西了。
我去翻了下我自己的仓库,居然我也存有,只是当年水平有限,并没有用过。
近来肉体饱受折磨,人品却大爆发,几乎看中什么插件就拿来改一下都能用。于是动了玩这个的念头。
首先,在github上一位富强兄有一个ndpi-openwrt项目:https://github.com/openwrt-develop/ndpi-netfilter(当然,也是秦朝古坟了)
ndpi可是持续开发的,最新的更新在5天前。所以并不是落后的东西。
富强兄的makefile需要动一下手脚:
1.把PKG_SOURCE_VERSION的commit换成最新的,把PKG_MIRROR_HASH改成skip,因为懒得去生成校验码
2.增加内核补丁,ndpi提供了5.4,6.1.38(在这里:/ndpi-netfilter/kernel-patch),我们编译5.15、6.1他没有补丁,我们需要自己改(你不加内核补丁,去改源码也能编译,开开心心以为能用,这是个错觉)。
但是改好之后一对比,特么5.15的和5.4的完全一样,所以6.1的应该也和6.1.38一样,5.10和5.4一样,我们偷懒吧,不改了:
找到 define Build/Compile ,下面加上3行即可,于是5.10,5.15,6.1的补丁都有了。
- define Build/Compile
- (ln -s $(PKG_BUILD_DIR)/ndpi-netfilter/kernel-patch/v5.4.diff $(PKG_BUILD_DIR)/ndpi-netfilter/kernel-patch/v5.10.diff )
- (ln -s $(PKG_BUILD_DIR)/ndpi-netfilter/kernel-patch/v5.4.diff $(PKG_BUILD_DIR)/ndpi-netfilter/kernel-patch/v5.15.diff )
- (ln -s $(PKG_BUILD_DIR)/ndpi-netfilter/kernel-patch/v6.1.38.diff $(PKG_BUILD_DIR)/ndpi-netfilter/kernel-patch/v6.1.diff )
复制代码 富强兄的patches可以删除不用,如果你很想用,自己可以根据新版源码修改。
然后make menuconfig选上iptables-mod-ndpi,编译就行了。
你可以打开源码包,在/ndpi-netfilter/找到 FLOW_INFO.txt,上面说了调试、使用方法。
我们把这一段东西放在“自定义防火墙”,按保存后重启系统:
- echo "xt_ndpi ndpi_enable_flow=1" > /etc/modules.d/ipt-ndpi
- iptables -t mangle -A INPUT -m ndpi ! --error -j NDPI --flow-info
- iptables -t mangle -A FORWARD -m ndpi ! --error -j NDPI --flow-info
- iptables -t mangle -A OUTPUT -m ndpi ! --error -j NDPI --flow-info
复制代码 进入系统然后 cat /proc/net/xt_ndpi/flows 可以看到实时的数据识别信息(是实时的,不是累计的),
如果你看到有数据了,那么可以进入实用篇:
终端输入iptables -m ndpi -h 可以输出详细使用帮助(但一般人看不懂),所以还是俺来说吧:
ndpi目前支持的协议有(当前有352个):
- <blockquote> 1kxun accuweather activision ads_analytic_track
复制代码 有qq有wechat,特么就是没有xunlei。哪位高人加上吧!
我试着做到了我自己的qos上:
用来做流控可能不太好,感觉它识别的是协议包,而不是流,也就是发起协议的包能控制,传输数据的流没法控制。所以用来做协议识别行,做协议控制行,做流控可能效果不好。
这玩意自定义协议很难,已有协议多数是国外软件,国内的少之又少,想要添加还得需要从源码里加,所以用来做行为控制也不现实
以上编译x86通过。mipsel通不过,linux的makefile有问题,
arch/mipsel/Makefile: No such file or directory,
肯定不存在啦,都是使用的arch/mips/,哪里有arch/mipsel/。
你要是改了也不行,还有更多的问题。浪费脑筋在这里,明显不值当。
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,并且积分可能会被清零,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|