之前我对 OpenWrt 的网络控制插件试用总结 ,最后只留下了插件 应用过滤(OpenAppFilter) 。 应用过滤(OpenAppFilter) 的特征库虽然开发者有 VIP 服务,提供了更丰富的特征库,但我的需求只针对个别的一些网站过滤,所以研究了一下如何自己添加特征码。 对特征库有刚需的可以购买 VIP 支持一下开发者,也不算贵 39。 特征库文件 首先在这里下载免费的特征库: 网址:https://www.openappfilter.com/#/feature 解压后有三个文件,两个 bin 文件是特征库,可以看升级说明两个文件的不同: 继续解压 bin 文件,可以看到一个 feature.cfg,一个 app_icons,很好理解了。 特征码格式 特征库文件用于存储所有 APP 的特征码,为非加密的文本文件,一般 .cfg 格式,可以通过文本文档编辑。 特征库文件说明:https://github.com/destan19/OpenAppFilter/wiki/self%E2%80%90define-feature-file 特征码用于定义每个 APP 的协议特征,比如可以定义端口号、域名、七层内容字典等: $id $name:[$proto;$sport;$dport;$host url;$request;$dict] $id: 唯一的 APP 编号,不能重复 $name: APP 的名称,比如抖音 $proto: 传输层协议,tcp 或 udp $sport: 源端口,1-65535,不设置表示匹配所有,一般不用设置源端口 $dport: 目的端口,1-65535,不设置表示匹配所有 $host: http或者https请求的域名,比如 www.baidu.com $dict: 七层内容字典,格式 xx:aa|yy:bb,其中 xx,yy 是位置,表示第几个字节,而 aa,bb 表示十六进制内容,示例:00:a0|02:08|03:0a,表示第 0 个位置为 0xa0,第 2 个位置为 0x08,第 3 个位置为 0x0a,注意第一位从 0 开始,如果位置为负数,表示从最后一个开始,一般不要用负数表示。 自定义特征库 打开特征库文件 feature.cfg 后可以看到如下内容: #c...