Skip to content

Releases: PBH-BTN/PeerBanHelper

7.0.1

31 Oct 18:13
Compare
Choose a tag to compare

这是 7.0.0 的累积错误修复。

重要安全提示

qBittorrent <= 5.0.0 版本出现安全漏洞(影响自 2010 年以来,14 年间发布的所有版本)。攻击者可以通过 RSS 订阅源,或者通过中间人劫持攻击Python下载、GeoIP库更新和检查更新等模块进行远程代码执行(RCE)从而获取权限并控制整台计算机。请考虑升级到 5.0.1 或者更高版本。

建议的操作: 更新 qBittorrent 下载器到 5.0.1 或者更新版本
注:当前 5.0.1 版本可能存在内存泄漏。

临时缓解措施: 1) 不要添加不可信的 RSS 订阅源,或者暂时禁用 RSS 订阅功能;2) 确保上网环境安全,避免被中间人劫持攻击 3) 不要使用高权限账户(如:管理员或 root)运行 qBittorrent,对于 Linux 用户,考虑在 Docker 的非特权容器中运行 qBittorrent

如果您的 qBittorrent 运行在高价值设备上(如存储重要数据的 NAS): 建议您使用 Docker 部署 qBittorrent,考虑到 qBittorrent 在过去多个版本的安全方面的表现来说,不能说很差,只能说几乎完全没有安全性可言。对 qBittorrent 做隔离是相当必要的操作。如果您的 NAS 主机系统被提权控制,快照保护和定期备份程序都可能面临失效的风险。你设置的文件系统快照在系统本身被拿下的情况下,很可能无法发挥作用。

原文:https://cyberinsider.com/rce-vulnerability-in-qbittorrents-ssl-handling-patched-after-14-years/

BTN 网络威胁提示

一般来说,我们不会在发行注记中发布 BTN 网络威胁信息,但由于相关地区的威胁以惊人的速度扩展,并且我们的云端规则无法很好的覆盖这些 IP 地址(前后缀都在随机更改),因此我们决定在发行注记中提及这一情况。

我们观察到最近 7 天,大连市出现大量异常连接记录,以一己之力追上海南省网的滥用情况。
恶意吸血者同时使用大量 IPV4 和 IPV6 地址,并通过频繁重拨、多拨更换 IPV6 前缀,并配合软件手段随机 IPV6 后缀,且客户端名称通常为 Transmission 2.94 或者 Transmission 3.00。相关样本与我们此前在海南省网发现的 Transmission 2.94 样本非常相似。但由于没有更多信息,我们暂时无法确认此样本的原始来源。
由于网络 IP 规则的局限性和时延性,我们推荐您通过 PBH 内置的 “城市” 规则选项卡,创建下列城市的黑名单规则(相关规则已经尽可能细化以避免影响其他正常地区):

  • 辽宁省 大连市 沙河口区
  • 辽宁省 大连市 中山区
  • 福建省 宁德市 古田县
  • 福建省 莆田市 涵江区
  • 海南省 海口市

操作示例如下:

43F2D27619F79BFDDFC1FDB9A3C11874

对于其它吸血行为并不那么泛滥的地区,我们将继续通过 BTN 和 IP 规则维护 IP 列表。在后续版本中我们将持续改进各种反吸血模块和技术,并重点改进云端反吸血的能力。

请注意:使用 6.x.x 的版本的用户在添加上述规则后重启可能丢失更改,请升级到最低 7.0.0 版本。

错误修复

  • [重要] 修复自 v6 版本以来,IP 订阅规则更新时缓存未被正确清除的问题,这会影响封禁效率和质量,并可能导致部分 IP 在一段时间内无法得到封禁 @Ghost-chu
  • 修复通过 WebUI 修改连锁封禁时,IPV6 前缀长度被错误限制在 32 的问题 @cddjr (首次贡献)
  • 修复正式版本提示当前为快照构建的问题 @Ghost-chu
  • 修复 WebUI 中 PCB 前缀数值的范围大小限制丢失的问题 @paulzzh
  • 修复 WebUI 表格内容有时出现偏移的问题 @SaikiCode (首次贡献) @Gaojianli
  • 修复 WebUI 的封禁列表出现跳变的问题 @SaikiCode

更改

Docker

DockerHub: ghostchu/peerbanhelper:v7.0.1
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v7.0.1

7.0.0

29 Oct 16:35
c5738bf
Compare
Choose a tag to compare

经过一段时间的沉淀,我们很高兴宣布 v7.0.0 版本现已正式发布~

2000 Stars ⭐ 庆贺

在开始之前,请允许我感谢各位朋友们一直以来的支持,我谨代表 PBH-BTN 向各位致以诚挚的谢意 :)
在过去的一段时间内,我们的项目受到了大家的关注和热烈欢迎,这是我们远远未曾设想过的。PeerBanHelper 能发展到今天离不开大家的积极支持和鼓励,以及非常感谢在 Issues 上打开议题反馈错误的朋友们,帮助 PeerBanHelper 变得越来越好。

同时,我们也很感谢一直以来通过加入 BTN 网络来为反吸血贡献力量的伙伴们。在你们的支持下,自 2024 年 8 月 20 日以来,连接到 BTN 的 PBH 共拦截和封禁 Peer 超过 6,842,412 次。其中,通过 BTN 用户贡献的规则识别并拦截了来自 228,700 个 IP 地址的 3,323,527 次恶意刷流攻击。

这并不是完整的数据,因为还有更多的人未加入 BTN 网络,这些客户端和使用 IP 规则的拦截数据并未计入其中。但我相信,你们的贡献已经帮助到比这更多更多的人。

尽管关注 BitTorrent 技术的人越来越少。但我们坚信 BitTorrent 不可替代,它是互联网精神的体现:无私分享,不求利益,不求回报。

希望互联网精神能够延续下去,这是我们共同的心愿。共勉!


WebUI 焕然一新

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

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

运行状态 随时掌握

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

BTN 状态 运行状态
s2 s1

及时跟进 重要信息

新的 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 (musl) 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
  • 各类性能优化和代码清理

Docker

DockerHub: ghostchu/peerbanhelper:v7.0.0
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v7.0.0


公益 Tracker 项目正在公测

由 PBH-BTN 维护的 Sparkle Tracker 现在正在公测。这是一个高性能的公共 Tracker 服务,除提供基本 Tracker 功能外,它还和 BTN 进行了整合。通过结合两者的数据,我们可以更加了解当前对 BT 网络的攻击态势。

您可以将下面的 Tracker 地址添加到您的下载器的 Tracker 列表中使用。

https://sparkle.ghostchu-services.top/tracker/announce

鸣谢

  • 感谢 大河李斯特视频工作室 老师制作的 【看番教程39】怎么样从网上下载资源?磁链/种子到底是啥??评论区神秘代码要怎么用?什么是BT协议?BT入门保姆级教程,webUI、屏蔽吸血客户端PCDN详解 让更多人了解磁力链接和 BT 种子背后的故事和技术,降低了新人踏入 BitTorrent 世界的门槛,也让更多人知道如何保护自己的下载器免受恶意攻击的侵害。对于一个较小和相对固定的社区来说,入门门槛高是一个屡见不鲜的问题。感谢您制作的系列视频降低了新人入门的门槛,也让更多人了解了这些网络技术背后的所发生的事情。请允许我们对您的无私奉献致以敬意
  • 感谢 我不是矿神 在过去一段时间内对 PeerBanHelper 项目的支持,帮助在群晖 NAS 平台上的用户指导部署 PBH,以及在 SPK 软件源中分发 PeerBanHelper。NAS 用户因长期开机做种,更易成为吸血鬼攻击的目标,有时一不小心,可能一觉睡醒天就塌了。IMNKS 在 NAS 用户群体中的宣传让更多的 NAS 用户了解到了 BT 刷流吸血的存在,并避免了更多用户深受其害
  • 以及其他默默在背后支持我们的朋友们 :)

当前版本已知问题

  • 程序可能会提示你正在使用的测试版本,这是 BUG 导致的,实际上您正在使用稳定版本 :)
  • 调整连锁封禁的 IPV6 前缀长度时,会被错误的限制在最大 32。如果您不修改此值或者通过配置文件修改,则不会受到影响

7.0.0-RC2

29 Oct 09:13
1caee30
Compare
Choose a tag to compare
7.0.0-RC2 Pre-release
Pre-release

Note

这是一个“正式版候选发布版本”,如果没有重大更改,此版本将作为最终正式版本发布
更新前,请注意备份数据。

RC1 已被撤回,因选择的分支不正确,导致实际发布的是 6.4.8 的版本。请更新到 RC2。

点击查看详细更新日志

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
  • 各类性能优化和代码清理

7.0.0-beta2

27 Oct 04:02
b185b85
Compare
Choose a tag to compare
7.0.0-beta2 Pre-release
Pre-release

新的 RC 版本已发布:https://github.com/PBH-BTN/PeerBanHelper/releases/tag/v7.0.0-rc1

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
  • 各类性能优化和代码清理

6.4.8

18 Oct 17:35
a5614a2
Compare
Choose a tag to compare

错误修复

  • 修复通过 WebUI 删除城市规则时无法删除的问题
  • 撤销有关分代 ZGC 的更改,用户报告 ZGC 在部分系统上似乎不能很好的工作,回退到 G1GC

Docker 用户

DockerHub: ghostchu/peerbanhelper:v6.4.8
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v6.4.8

6.4.7

18 Oct 06:59
e6b3df2
Compare
Choose a tag to compare

用户体验改进

  • 用户添加下载器时,自动去除末尾的 / @Gaojianli
  • 移除总是卡住的 163 镜像源 @Ghost-chu
  • 扩展默认可用最大内存空间到 512MB,并启用分代 ZGC 垃圾回收器,不使用的部分内存将会在空闲时返回系统

错误修复

  • 修复通过 WebUI 编辑区域规则时,写入了修改到错误的配置文件位置,并导致重启后更改失效的问题 @Ghost-chu
  • 修复 JavaFx 图形用户界面的一处内存泄漏 @Ghost-chu
  • 修复规则/数据更新后,PBH 因高速缓存可能导致生效不及时的问题 @Ghost-chu
  • 修复用户更改规则后,规则可能因高速缓存可能导致生效不及时的问题 @Ghost-chu
  • 修复删除端口规则时,删除了一个寂寞的问题 @Ghost-chu
  • 修复 Deluge 下载器出现的反序列化数值溢出导致的错误问题 @Ghost-chu

Docker 用户

DockerHub: ghostchu/peerbanhelper:v6.4.7
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v6.4.7

6.4.6

13 Oct 13:26
e693f39
Compare
Choose a tag to compare

本版本有望成为 6.4.x 的稳定版本。如果没有任何实质性的重大更改或错误,PBH-BTN 倾向于在一定期限内暂停滚动发布以降低用户更新负担。

改进

  • 优化了 50MB 以下的种子文件的反吸血措施
  • 快速反作弊检测现在为 BitComet 用户自动关闭,直至 BitComet 补全所需的 API
  • Portable 也更新到 Java 23,缓解 selector manager closed 的问题,请注意替换除了 data 文件夹以外的所有文件
  • 默认最大内存已提升到 512MB 以增强稳定性,无需担心内存使用变大,其中不使用的内存将被释放回系统

错误修复

  • 修复 BiglyBT 出现错误的任务时,PBH 可能报错获取 Peers 时的 404 错误

Docker 用户

DockerHub: ghostchu/peerbanhelper:v6.4.6
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v6.4.6

尾言

在今天(2024/10/13)的凌晨时分,我们发现有用户在 BTN-Collected-Rules#24 发布充满恶意的言论。PBH-BTN 鼓励用户使用正当手段表达自己的不满,通过滥骂和问候家人并非适当的反馈手段,并可能导致问题被关闭和可能的法律后果。由于该言论下出现演变为滥骂战和教唆实施电信犯罪的情况,我们不得不立刻锁定了话题并折叠了有关评论以保护双方。
本版发布时,已对主要仓库的 Issue 模板做出了修改,以便提醒通过恶意手段进行人身攻击和其它行为时 PBH-BTN 可能会做出的行动。您将在打开新的 Issue 时看到这些更改。请特别注意的是,这些更改不仅仅适用于 Issues,它还适用于所有由 PBH-BTN 直接管理的平台和服务。

我们再次公共地回答一些问题:我们的主要目标是打击无限制滥用 BT 网络的行为,而很多 PCDN 用户(或者ISP内鬼、PCDN公司,个人PCDN用户、PCDN大户甚至出现了数据中心)已经在大规模滥用 BT 网络大量吸血,其中不乏 PCDN 公司在其边缘节点内嵌 BT 刷流服务的情况。
PCDN 大类不是 PBH-BTN 打击的目标,但是伤害 BitTorrent 网络环境的 PCDN,已经触碰到了每一个在如今网络环境下仍然愿意发挥互联网精神、无私奉献的用户。

在 PBH 项目开展的数个月来,我们亲眼目睹和感受了大量这些通过牺牲他人来谋取私利的事情发生。受害者包括核心开发者在内的大量普通宽带用户,被这些谋取私利的行为引发了包括但不限于:

  • 宽带限速(或进入黑名单 IP 段),失去传家宝套餐
  • 上门检查
  • 签署保证书
  • 停机
  • 拆机
  • 被 ISP 拉黑

等种种恶劣后果。

是我们年入百万吃饱了没事干吗?不是,是有人在通过伤害我们的方式,谋取那不值一提的私利。
这个组织完全是自发建立的公益组织,这也意味着一定有一股力量让我们走在了一起——不再被别人当作肥美的绵羊,合法合理的阻止自身合法利益再次受到损害。

我们会继续努力前行。即便我们倒下了,我们留下的公共代码资产也可以被任何人轻易的重建一套完全相同的反吸血的世界。这不是因为利益的关系,而是出于每个人心中正义的反抗。

您可以 Star、Fork 或者将存储库克隆到本地,来保护这份代码资产。或者加入我们,一起参与到反吸血的前线。

PBH-BTN / 2024-10-13

6.4.5

12 Oct 14:34
59a2c8b
Compare
Choose a tag to compare

错误修复

  • 再次修复了 BitComet 下载器在 Docker 容器中下载依赖时因提前类加载导致意外调用 GUI 代码崩溃的问题

注:我们已经收到了一些有价值的错误报告,但由于开发者身体健康原因,在短期内无法实施可靠修复,因此非致命问题/修复困难的问题将被暂时推迟。对此造成的不便,深表歉意。

出现网络问题无法下载依赖的用户,可请求其它相同版本、相同系统(如 Windows/macOS/Linux)的正常用户触发可选依赖补全后,打包 libraries。

比特彗星用户,特别注意事项

  • BitComet 用户请务必将 data/profile.yml 中的 fast-pcb-test-percentage 的值设置为 -1,否则会出现大量误封禁。
  • BitComet 用户可能频繁遇到 “正在封禁的 Peer 已处于封禁列表中”,此问题是由于 BitComet 的封禁操作是异步处理的,您可以安全的忽略这个警告(除非它连续不停地一直在提示)。
  • 如果您遇到封禁线程未响应或 "Unable to retrieve peers" 的错误提示,这通常是由于 BitComet 的 WebAPI 超时未响应的问题。该问题已被汇报给 BitComet,但目前尚未得到修复。请您无需担心,PBH 会在下一次封禁流程中,重新获取。
  • BitComet 的支持目前处于高度实验性的状态,对封禁效果和运行稳定性不做任何保证。

Docker 用户

DockerHub: ghostchu/peerbanhelper:v6.4.5
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v6.4.5

由于 Portable 为人工打包,本版暂不提供 Portable 包。
基于过往版本 Portable 替换 JAR 升级的用户,请更换 jre 文件夹中的 JRE 到 Java 23 版本以缓解 selector manager closed 的错误问题。该错误将在未来版本中通过更换 HTTP 客户端修复。届时我们可能会回调最低 Java 版本到 21 版本。如果您是使用安装器的用户,非 nojava 安装器将自动为您安装 Java 23 版本。

6.4.4

12 Oct 02:21
23b19c4
Compare
Choose a tag to compare

特别提示

BitComet 用户务必设置 data/profile.yml 中的 fast-pcb-test-percentage 的值设置为 -1,否则会出现大量误封禁。其它下载器无需进行此设置。

调整

  • 安装器捆绑 Java 运行时版本提升到 Java23 以尝试修复 selector manager closed 的问题
  • 暂时停用 Windows aarch64 打包,直至下一个 Java LTS 版本

错误修复

  • 修复下载依赖时可能卡住的问题
  • 修复 Docker 内触发下载依赖时错误的在非桌面环境中调用 GUI 代码导致崩溃的问题

Docker 用户

DockerHub: ghostchu/peerbanhelper:v6.4.4
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v6.4.4

本版暂不提供 Portable 包。

6.4.3

10 Oct 11:53
ad4040f
Compare
Choose a tag to compare

新东西

  • 为 FreeBSD 系统添加了 FreeBSD 包 @Gaojianli

更改

  • BitComet 支持现在适配 v2.10 正式版预览 版本接口 @Ghost-chu
    • 现在 BitComet 所需的 BouncyCastle 依赖库将在运行时下载,以解决出现的一部分奇怪的签名问题
  • 在出现 WebUI 端口监听失败的错误时,显示更加友好的提示信息 @Ghost-chu

错误修复

  • 修复用户在城市过滤器中添加空白项时,PeerBanHelper 没有拒绝并接受了请求,导致用户可能意外添加空字符串规则,导致 PBH 封禁所有 Peer。 @Ghost-chu
  • 修复在保存封禁列表时,使用 callBatchTasks 避免特殊情况下,用户丢失封禁列表的问题。 @Ghost-chu
  • 对 PeerRecords 停止使用 ObjectCache,其优化并不明显,并增加了内存消耗。 @Ghost-chu
  • 修复使用数据透视时,部分 IP 查询时错误的显示 “这个 IP 没有被观测到过,但你仍然可以在这里查看他的部分信息” 的问题 @Ghost-chu
  • 修复使用数据透视时,可能无法查询到刚刚产生的记录。现在查询时将强制保存缓存的记录。 @Ghost-chu
  • 缓解规则统计缓存导致内存溢出崩溃的问题(特别是在加入了 BTN 网络的用户上发生)。晚些时候将重构该模块。 @Ghost-chu
  • 修复了 6.4.2 中初始化 BitComet 下载器时提前类加载导致的崩溃的问题

Docker 用户

DockerHub: ghostchu/peerbanhelper:v6.4.3
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v6.4.3