github PBH-BTN/PeerBanHelper v7.0.0-beta2
7.0.0-beta2

pre-release10 hours ago

Warning

这是一个测试版本,仅供测试用途。 对于普通用户,请继续等待正式版的发布。 如果您对改进 PeerBanHelper 感兴趣,欢迎参与 Beta 版本测试。
更新前,请注意备份数据。

Beta2 相对 Beta1 修复

  • PBH 重启后,持久化 Alerts 数据丢失 @paulzzh
  • WebUI 新增堆内存数据查看 @Gaojianli

WebUI 焕然一新

忘记编辑配置文件的麻烦吧!通过 WebUI 直接编辑 PeerBanHelper 的首选项和各个反吸血模块的设置,所见即所得。

PeerID 封禁 进度作弊检查 多拨封禁 反吸血模块合影
1 2 3 image

运行状态 随时掌握

在 WebUI 上直接查看程序状态、控制台日志和 BTN 网络连接状态,不再黑盒。

运行状态 BTN 状态
s1 s2

及时跟进 重要信息

新的 PBH 引入了 “警报” 消息推送中心系统。您可以在 WebUI 查看当前活跃的各类警报,亦可以通过电子邮件、Server酱、推送加(提供钉钉、微信公众号、企业微信、短信等渠道)和 Telegram 等方式发送至您的设备。

您还可以在 Active Monitoring 主动监测模块中设置每日流量告警阈值,避免不小心被吸干的情况发生,及时止损。

Warning

注意!由于 API 限制,每日流量告警阈值功能当前仅对 qBittorrent、qBittorrent EE、Deluge 和 BiglyBT 有效

警报中心 邮件推送
a1 a2

BTN 能力再升级

新增两种 BTN 协议:

  • 例外:BTN 侧的白名单,处于白名单内的 IP 不会被封禁;如果已被封禁将会自动解除封禁。这有助于我们的数据遭到污染后的去污染能力
  • Peers 历史:提交自启动或上次提交以来的所有 Peers 记录,以便 BTN 服务器分析统计在 BTN 网络上的恶意活动

实践:

通过 Peers 历史提交能力,我们在所有使用 v7.0.0 测试版用户的测试群体内进行了数据分析,在新的 BTN 能力加持下,我们成功捕获了多个从不同用户处反复重复下载文件的恶意 IP 地址。

注:相同 torrent 值为相同种子;total_uploaded 和 size 的单位是 bytes;upload_percentage 的单位是百分比,100% = 下载了种子 1 次。

image

生态扩展 支持广泛

新版本的 PeerBanHelper 中更新了对 BitComet 2.11 (20241022) 的 WebAPI 的支持。
除此之外,我们将 PeerBanHelper 的平台支持扩展到了:

  • macOS 的 Intel / Apple Silicon 设备
  • 运行 Linux 系统的 risc-v, ppp64le, 和 loongarch64 设备

其中,由于龙芯处理器平台的生态缺失,暂无 Docker 镜像可用。对于其它支持的平台,可下载安装程序或者拉取对应架构的 Docker 镜像使用。

至此,在 v7.0.0 版本中,我们已正式支持:

  • Windows x86_64
  • Windows arm64
  • macOS Intel/Apple Silicon
  • Linux x86_64/aarch64/riscv64/ppp64le/loongarch64
  • Linux (Alpine) x86_64/aarch64
  • FreeBSD x86_64/arm64

您现在可以在所有主流平台上运行 PeerBanHelper。


新增平台适配

  • 核心适配现在支持 loongarch64 (龙芯处理器 - 新世界)平台,感谢群友 lang @Gaojianli @Ghost-chu @paulzzh
  • 核心适配现在支持 riscv64 平台,感谢群友 lang @Ghost-chu
  • 核心适配现在“理论”支持 ppc64le 平台,欢迎各位持有对应平台设备的朋友进行测试 @Ghost-chu

其中,riscv64ppc64le 平台已添加 Docker 和安装程序支持。loongarch64 由于缺少基础设施,目前只能通过 JAR 手动部署的方式安装,我们也欢迎您贡献 loongarch64 的 Docker 镜像打包方案。

新功能

  • WebUI 设置界面 @Gaojianli @paulzzh
    • 通过 WebUI 的设置界面,管理和修改 PeerBanHelper 的首选项和反吸血模块设定
  • WebUI 支持查看实时日志 @Gaojianli
  • 新增告警功能,可在 WebUI 显示需要注意的提示,并通过推送渠道推送通知 @Ghost-chu @paulzzh
    • 支持下列推送渠道:
      • SMTP 邮件发信
      • 推送加
      • Server 酱
      • Telegram
  • 新增适配 macOS 系统 @Ghost-chu @paulzzh
  • 新增 BTN Peers 累积流量数据上报协议 @Ghost-chu
  • 新增 BTN 例外规则协议 @Ghost-chu
  • 新增 BTN 状态页,可显示 PBH 连接到 BTN 的情况 @Gaojianli @Ghost-chu
  • 新增流量超限告警,可设置每日上传告警阈值,超限后通过推送渠道发送通知 @Ghost-chu
  • 新增下载器登录故障告警,如果下载器可连接但无法正确登录或返回错误响应,达到一定次数后,将发送告警提示信息 @Ghost-chu
  • 新增内存使用感知,当 PeerBanHelper 的内存即将耗尽且无法释放足够空间时,将发送告警提示信息 @Ghost-chu

更改

  • 适配 BitComet 2.11 (20241022) 更新的 WebAPI @Ghost-chu
    • 适配新的解除封禁 API 接口,快速 PCB 测试现在在 BitComet 上可用
    • 改进 BitComet 的是否登录检查的性能,大幅降低请求数
    • 限制 BitComet 最大并发数到 4,避免连接数过多导致 BitComet 的 HTTP Server 关闭部分连接引发查询错误
  • 将部分提示和错误信息本地化 @Ghost-chu
  • 多拨追猎支持为 v4 和 v6 地址分别设置阈值 @Ghost-chu

错误修复

  • 修复 Windows 资源管理器重启后无法再与托盘图标交互的问题 @paulzzh
  • 修复如果下载器未就绪,则 PeerBanHelper 启动时更新封禁列表会出错的问题 @Ghost-chu
  • 修复安装器版本 PeerBanHelper 无法正确生成和保存日志文件的问题 @Ghost-chu
  • 修复 BTN 规则更新时出现的空指针报错的问题,此错误并不影响使用 @Ghost-chu
  • 修复处理多下载器时可能在一个 BanWave 中封禁同一个 Peer 多次(于不同下载器),从而触发 DUPLICATE_BAN 提示并触发强制全量同步的问题 @Ghost-chu
  • 修复非 Windows 平台上的系统语言检测问题 @Ghost-chu
  • 修复日志窗口会随机调到最顶部的问题 @Ghost-chu
  • 修复日志窗口每次新日志插入时都跳到最下面的问题 @Ghost-chu
  • 修复 BitComet 上可能意外解析 IP 地址为域名并引发错误的问题 @Ghost-chu
  • 修复了执行重载操作时,程序代理服务器设置未正确重载的问题 @Ghost-chu
  • 修复了执行重载操作时,没有从封禁列表中自动解除已在白名单地址段的 IP 地址 @Ghost-chu
  • 修复了 BTN 网络规则模块的 peer_id 以及 port 的规则判断检查不生效的问题 @Ghost-chu
  • 修复 UNBAN_IP 检查条件错误反转的问题 @Ghost-chu

删除的功能

  • 删除了 JavaFx GUI @Ghost-chu
    • 集编程困难、依赖繁琐、容易崩溃等多个问题于一体的 UI 框架,我们回到了 Swing 的正路上,并节约了 12MB 的磁盘空间
    • 由于现在只使用 Swing UI,因此 GUI Safe-Mode (Swing) 启动方式已被移除
  • 运行时依赖下载和加载工具 @Ghost-chu
    • 在过去的多版本中,证明在中国大陆的网络环境下,在运行时解决依赖不是一种好的方式
    • 通过更改打包方式,现在所有依赖将一次性全部打包,全量分发,不再在运行时处理
  • 移除规则命中率统计页面 @paulzzh
    • 在过去的版本中,它起到的作用比它带来的麻烦多太多了,通过移除几乎没有人使用的规则命中率统计页面解决了困扰已久的内存泄漏问题

内部更改

  • 更改了打包方式,不再输出 uber jar,而是通过 -cp 加载 jars 并引导主类启动 @Ghost-chu @paulzzh
    • 解决了因重定位 jar 导致破坏数字签名,并导致编译失败/运行时类加载失败的问题
  • 在执行重载过程时,解除位于白名单 IP 段配置的 IP 地址的封禁 @Ghost-chu
  • 从 takari 换回传统编译 @Ghost-chu
  • 使用 logback 代替 log4j2 @Ghost-chu
  • 各类性能优化和代码清理

Don't miss a new PeerBanHelper release

NewReleases is sending notifications on new releases.