Releases: PBH-BTN/PeerBanHelper
v5.0.0-beta1
警告:测试版(Beta)是 PeerBanHelper 用于测试新功能/逻辑的特殊版本,可能存在代码错误并导致您的数据损坏。在使用测试版本前,请注意对数据进行妥善备份。我们不建议非熟练用户使用任何非正式版本。
破坏性更改
- 数据库部分得到了大修,不兼容之前的数据库文件。封禁历史记录和统计数据将不会继承
新功能
- GeoIP 模块现在也使用来自 ljxi/GeoCN 的 IP 数据
- 位于中国大陆的 IP 地址位置现在将能够精确到区县
- 位于中国大陆的 IP 地址现在将显示网络类型,支持以下网络类型的显示:
- 宽带
- 基站
- 政企专线
- 业务平台
- 骨干网
- IP专网
- 网吧
- 物联网
- 数据中心
- 各个功能模块的封禁时间现在可以独立调整,或跟随全局设定
- 封禁列表现在显示触发封禁的规则
- 用户现在能够在封禁列表界面上解除对特定 IP 的封禁
- 前后端现在全面支持 i18n,欢迎提交翻译 PR!
- PBH WebUI 现在添加了暴力破解防护
- PBH WebAPI 现在默认禁止 CORS 跨站请求,除非用户手动启用
- 现在允许用户从外部文件系统加载 WebUI 文件
- Peers 列表现在将显示 Peer Flags (仅在支持的下载器上显示)
- 配置文件 (config.yml) 新增代理服务器设置
用户交互体验改进
- GUI 日志框现在更换为了 ListView,并根据日志等级,为日志行染色,错误、提示、警告一目了然
- 新用户安装时不再弹窗提醒退出,而是直接启动,并在控制台引导进入 WebUI (并显示 WebUI Token)
- 配置文件升级时,将对丢失配置文件注释的配置项重新复制注释
- WebUI Peers 列表的种子和 Peers 现在按实时上传速度,倒序排序,方便用户快速定位高上传带宽的种子/Peers
- 多项 WebUI 细节优化
- 下载器出现错误时,WebUI 将提供更加有用的悬浮 Tooltip 提示信息
- 下载器出现错误时,控制台将提供更加有用的日志提示信息
性能优化
- 现在 Peers 封禁检查操作支持多线程并发
- GeoIP 查询任务现在采用懒加载机制,仅在需要时才查询 IP 的 Geo 信息
- 重构缓存系统,极大的改善了缓存命中率,并降低了 CPU 时间
- 现在 PBH WebUI 与 PBH 通讯、PBH 与下载器通讯,皆支持 gzip, deflate 压缩
- 调整 AviaorScript 缓存,不缓存编译结果以节省 RAM 使用
- 对于频繁返回的 CheckResult,进行静态重用
- 其它性能优化
错误修复
- 测试下载器配置创建的临时 Downloader 没有正确关闭导致资源泄漏
- 修复 WebUI 发生更改时,因缓存头设置指定错误,用户可能看到白屏的问题(您需要手动清理一次浏览器缓存,才能使此修复生效)
- 修复封禁日志、封禁列表中,当流量数据为 -1 时,渲染为 NaN Undefined 的问题
- 修复用户同时添加 Transmission 和其它非 Transmission 下载器时,Transmission 封禁可能会失效的问题
- 修复初始化 BTN 失败后,PBH 不再尝试重新初始化 BTN 的问题
- 修复提交封禁列表失败后,本次提交的封禁列表被就地丢弃,而不是排队到下次重试窗口的问题
- 修复 qBittorrent 的部分不交换 Client Name 的 Peers,获取 Client Name 无效/无意义的问题,现在将截取其 16 进制 PeerID 对应的前 8 个 ASCII 字符的字节,并转化为可读文字
- 修复 Transmission 和 qBittorrent 混合使用时,操作列表可能混入其它下载的数据,导致 Transmission RPC 调用时出现类型转换错误崩溃,并导致种子无法被重启、还原状态
- 修复编辑订阅规则后,编辑成功但却提示错误的问题
- 修复订阅规则中存在以
#
开头的注释行时,订阅规则解析可能失败的问题 - 修复 qBittorrent 下载器有时处理 PeerID 可能返回错误结果导致伪装检测脚本检测出错的问题
- 修复触发 BanWave Watchdog 时,创建对话框时出现 JavaFx 线程错误
- 修复创建 HTTP 协议为 HTTP 2.0 的下载器配置时,出现错误的问题
杂项
- 微调 qBittorrent 增量封禁逻辑
- 调整 docker-compose.yml / Docker 示例命令,给予 PBH 更多时间用来安全退出
- 封禁列表不再保存到 banlist.dump,而是存储到数据库
- 现在每个小时都会自动保存一次封禁列表
- 现在 PBH 启动完成后,不会清空暂存的封禁列表
- 32 位有关的支持库文件现在不再参与编译
- 现在存储时不再硬编码字符串,而是存储翻译组件,以支持前端动态 i18n
- 用户脚本现在支持返回 String 类型返回值作为封禁理由
- 如果返回值以 @ 打头,则设置 Action 为 SKIP
- Heap 最大内存从 256MB 调整为 386MB,除了 PBH 需要更多一点的内存以外,386 这个数字灵感来自 Intel 80386 CPU 名称
- PeerID/ClientName 模块不再等待流量,而是在有 PeerID/ClientName 获取成功后,立刻停止等待,进行检查
Docker 用户
请拉取测试镜像:ghostchu/peerbanhelper-snapshot:ff47db6
v4.4.1
v4.4.0 - XM0001
规则更新
- 新增
-XM0001-
和xm/torrent
特征到 PeerID/ClientName 黑名单中,已确认为hp/torrent
变种- 由 BTN 用户 @yujiangqaq 于 2024/07/03 20:31:24 提交的数据中首次发现,关联 IP 地址
221.11.96.74
处于 hp/torrent 规则集中 - 所有已连接到 BTN 网络的 PBH 客户端将在 20 分钟内自动更新新的云端规则
- 离线用户请更新您的 PBH 版本,或手动编辑规则文件
- 由 BTN 用户 @yujiangqaq 于 2024/07/03 20:31:24 提交的数据中首次发现,关联 IP 地址
新增功能
Docker 用户
全球源:ghostchu/peerbanhelper:v4.4.0
阿里云国内镜像源:registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v4.4.0
v4.3.1
v4.3.0
新功能
- Deluge 下载器的支持,需要安装 Deluge 适配器插件
- [WebUI] 封禁列表的客户端名称鼠标悬浮时现在可以显示 PeerID
错误修复
- 修复了使用 Windows 安装程序安装的 PeerBanHelper 使用 NoGUI 控制台运行时,输出的文本编码不正确的问题
- 修复了 Windows 安装程序创建的桌面快捷方式和程序图标模糊的问题
性能改进
- 改进了 BTN 模块匹配 IP 地址的性能
Docker 用户
全球源:ghostchu/peerbanhelper:v4.3.0
阿里云国内镜像源:registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v4.3.0
v4.2.4
性能调整
- 解决了下载器的 WebUI 存在大量 DOM 元素时,耗尽 PBH 内存并导致 GUI 失去响应崩溃的问题(使用命令行无 GUI 模式和 Docker 用户无需更新)
- 下载器 WebUI 功能暂时禁用,但可以通过
-Dpbh.enableDownloadWebView=true
附加参数重新启用
- 下载器 WebUI 功能暂时禁用,但可以通过
Docker 用户
全球源:ghostchu/peerbanhelper:v4.2.4
阿里云国内镜像源:registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v4.2.4
v4.2.3
这是阶段性稳定版本,目前测试没有发现更多严重错误。对于前几个版本造成的不稳定的情况我们深表歉意,在后续发版前会进行更多测试,并推出 Beta 测试版本。
错误修复
- 修复订阅规则添加失败的问题
Windows 安装程序(BETA)
- 为了降低 Windows 用户的上手门槛,现在提供 Windows 安装程序(测试版)(x64 和 arm64 平台),双击 EXE 文件即可安装 PeerBanHelper 到您的系统上
Docker 用户
全球源:ghostchu/peerbanhelper:v4.2.3
阿里云国内镜像源:registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v4.2.3
v4.2.2
v4.1.4
v4.1.3
错误修复
- 修复未配置 IPDB 的用户,可能无法加载封禁列表的问题
- 修复依赖下载窗口的 Tooltip 错误的问题
- 修复 Swing GUI 的已连接的 Peers 标签卡无法正常显示数据的问题
Docker 用户
全球源:ghostchu/peerbanhelper:v4.1.3
阿里云国内镜像源:registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v4.1.3
4.1.x 主更新日志
新功能!
- [GUI]基于 JavaFx 的 Windows/Linux/MacOS 桌面环境 GUI
- [Docker] 为处于中国大陆的用户提供了阿里云 Docker 镜像仓库
- [WEBAPI] WebAPI 现在支持动态添加、删除、编辑下载器,此功能将在 WebUI 适配后开放
- [模块] AviatorScript脚本引擎
- 新的 AviatorScript 为您提供高级编程能力。通过编写 AviatorScript 脚本,您将可以进行复杂规则匹配,或者执行 PBH 内部函数。支持反射和对象创建。您可以在这里 查看示例 AviatorScript 脚本。这些示例脚本也会在 PBH 首次启动时,释放在 data 目录下。
- [模块] [AviatorScript脚本] 智能迅雷识别
- 使用此功能前,请关闭迅雷的 PeerID/Client Name 过滤规则
- 仅支持 qBittorrent 下载器(目前)
- 智能迅雷识别根据 吸血雷快速判定对照表 并封禁吸血迅雷,并放行在下载期间提供上传的迅雷客户端
- [模块] [AviatorScript脚本] PeerID/ClientName 伪装检查
- 仅支持 qBittorrent 下载器(目前)
- PeerID/ClientName 伪装检查将会组合验证 Peer 的 PeerID 和 Client Name 是否对应其正式版客户端。如果 PeerID 和 ClientName 驴头不对马嘴(例如:
PeerID=-TR3000- ClientName=qBittorrent/4.5.0
),伪装客户端将立刻被封禁
- [配置] 白名单 IP 地址,在
profile.yml
中新增了ignore-peers-from-addresses
选项。被列入其中的 IP/CIDR 地址将跳过所有检查,完全放行。 - [数据库] PBH 现在将会自动删除在解封到期时间后 N 天的过期封禁日志(由配置
ban-logs-keep-days
决定),以清理数据库并提高访问性能
错误修复
- 修复了 4.1.1 中 Transmission 封禁了所有的 Peers 的问题
- 修复了 Transmission 不封禁 Peers 的问题
- 修复了 4.0.8 显示为 4.0.7 的问题
- 修复了错误封禁本地 IP 地址的问题
- 修复了反向 DNS 查找不起作用的问题
- 修复 PBH WebAPI 监听 API 不遵守 address 设定,总是监听所有网络接口的问题
性能优化
- 优化封禁路径和规则模块执行性能,降低 CPU 时间
- 优化 IP 处理相关操作性能,降低 CPU 时间
- GeoIP 查询现在使用懒加载方式,降低 CPU 时间和磁盘 I/O