Skip to content

Releases: PBH-BTN/PeerBanHelper

v3.3.0

26 Apr 13:40
a761de4
Compare
Choose a tag to compare

重要优化

  • qBittorrent 现在支持并默认开启 “增量封禁” 模式,在繁忙的 qBittorrent 上有利于缓解频繁封禁导致的 WebUI 开销拖慢 qBittorrent 的问题
  • 现在支持规则模块检查结果缓存。对于可缓存结果的规则模块,在完成一次检查后,PeerBanHelper 不会再重复对其进行检查,以降低 CPU 开销,并节约能源
  • IP 地址现在支持处理缓存,对于相同 IP 地址不再进行重复解析以降低 CPU 开销,并节约能源
    • IP 规则模块将预先处理 IP 地址对象,替代随用随处理的方式,以降低 CPU 开销

新功能!

  • 封禁列表持久化
    • 现在 PeerBanHelper 支持在退出时保存内存中的封禁列表,并在下次重启时重新载入并应用到下载器,无需重新执行封禁流程
  • 在 Windows(桌面体验) 和 Linux(图形环境)以及 MacOS 上现在包含一个 GUI 窗口。在支持托盘图标的系统上,点击关闭窗口按钮时,PeerBanHelper 能够最小化到托盘菜单中
    • 若要避免显示黑色控制台窗口,请使用 javaw 启动
    • 在 Windows 上,如果您正确安装了 JDK,双击 jar 则默认使用 javaw 启动
  • Transmission 下载器现在支持自定义 RPC 端点,以兼容自定义 RPC 端点或处于反向代理之后的 Transmission WebAPI

错误修复

  • 未正确处理 WebUI 路由导致刷新时返回 Resources Not Found 的 404 错误的问题

已知问题

  • WebUI 的规则统计模块目前无法正常工作

Docker 用户

请拉取镜像更新:ghostchu/peerbanhelper:v3.3.0

v3.2.0

24 Apr 14:15
be5758a
Compare
Choose a tag to compare

这是我们在迁移到 PBH-BTN 组织后的首个新版本,本版本重点更新了规则引擎和 WebUI。

注意

Native-Image 从本版本开始放弃支持,不再提供二进制映像。建议使用 Docker 容器或者安装 JDK 环境运行。

新功能!

JSON 规则引擎

原先的简易规则解析引擎升级为 JSON 规则引擎,所有已有的规则都将自动转换为 JSON 规则。
新的规则引擎允许:

  • 使用 if 字段嵌套另一个规则,作为开关控制此规则是否应该被执行
  • 反转、更改规则的结果和行为
  • 提供更细粒度的控制

示例:

 client-name-blacklist:
    enabled: true
    banned-client-name:
      - '{"method":"STARTS_WITH","content":"-xl00"}'
      - '{"method":"CONTAINS","content":"xunlei"}'
      - '{"method":"STARTS_WITH","content":"taipei-torrent"}'
      - '{"method":"STARTS_WITH","content":"xfplay"}'
      - '{"method":"STARTS_WITH","content":"bitspirit"}'
      - '{"method":"CONTAINS","content":"flashget"}'
      - '{"method":"CONTAINS","content":"tudou"}'
      - '{"method":"CONTAINS","content":"torrentstorm"}'
      - '{"method":"CONTAINS","content":"qqdownload"}'
      - '{"method":"CONTAINS","content":"github.com/anacrolix/torrent"}'
      - '{"method":"STARTS_WITH","content":"qbittorrent/3.3.15"}'
      - '{"method":"STARTS_WITH","content":"dt/torrent"}'
      - '{"method":"STARTS_WITH","content":"dt"}'
      - '{"method":"STARTS_WITH","content":"go.torrent.dev"}'
      - '{"method":"STARTS_WITH","content":"github.com/thank423/trafficconsume"}'
      - '{"method":"STARTS_WITH","content":"taipei-torrent"}'
      - '{"method":"STARTS_WITH","content":"hp/torrent"}'
      - '{"method":"STARTS_WITH","content":"hp"}'

新版 WebUI

特别感谢由 @Gaojianli@XiaoXice 构建的现代 WebUI,您可以在这里找到 PBH 的前端程序:PBH-BTN/pbh-fe。新的 WebUI 包含现代界面、暗黑模式和手机端支持。

homepage maxban banlogs banlist

BTN-V2 协议

客户端的 BTN 协议已升级到 V2 版本(内部版本号:3),如果您正在使用 BTN 功能,请联系实例提供者获取新的 URL。

优化

  • 新增了 IP 解析缓存,降低执行规则匹配时因创建新的 IPAddress 实例导致的 CPU 时间的浪费
  • 优化了部分模块检查规则引发的 CPU 尖峰

移除功能

  • 移除了无人使用且存在法律风险的主动探测(Active Probing)模块

Docker 用户

请拉取镜像更新:ghostchu/peerbanhelper:v3.2.0

v3.1.4

17 Apr 12:52
6fa69ee
Compare
Choose a tag to compare

错误修复

还原 3.1.2 中引入的新表达式更改,此更改导致 3.1.2 & 3.1.3 本地封禁规则失效的问题

Docker 更新

请拉取镜像:ghostchu/PeerBanHelper:v3.1.4

v3.1.3

17 Apr 09:41
f62efb3
Compare
Choose a tag to compare

错误修复

  • 修复 HitRule 为空时,引发空指针错误的问题

Docker 升级

请拉取镜像:ghostchu/peerbanhelper:v3.1.3

v.3.1.2

17 Apr 05:16
1e6c101
Compare
Choose a tag to compare

安全漏洞修补

  • 修补特定的 WebUI 组件上存在 XSS 漏洞的问题。攻击者可使用特定的客户端发起 XSS 注入攻击。建议对客户端进行更新

新功能!

  • 规则表达式现在支持在最前面添加 ! 来反转表达式判断结果
  • 新增 isEmptyisBlank 规则表达式

更改

  • Top 50 最多封禁 IP 现在仅查询近 30 天的数据
  • BanList 现在按时间顺序倒序排序

错误修复

  • 修复客户端传入空 PeerID 或空 Clientname 时,无法保存记录到持久化数据库的问题
  • 修复端口封禁规则返回了非本地化字符串的问题

Docker 升级

请拉取镜像:ghostchu/peerbanhelper:sha-1e6c101

v3.1.1

15 Apr 09:42
743a903
Compare
Choose a tag to compare

升级注意事项

v2.x 与 v3.x 配置文件不兼容,请注意删除 config.yml 和 profile.yml 让它们重新生成。

新功能!

  • BTN 网络
    • 用户加入 BTN 网络后,可获取云端规则
  • 外部执行器
    • 在触发 PBH 封禁/解封/重置banlist 时,可针对性执行外部命令

优化

  • 对不需要握手检查的模块现在不等待完成握手

v2.10

14 Apr 07:01
f29edb8
Compare
Choose a tag to compare

修复错误(相对 v2.8)

  • 修复了部分边界情况下,客户端一闪而过的握手 Peers 可能被计算为有效 Peers 应用规则。在此 Peers 断开重连后,WebUI 提供的遗留数据可能导致错误封禁的问题 #51
  • 修复了 Docker/Podman 等容器部署的 PBH,退出时不处理 SIGTERM 信号的问题,现在替换为 exec 方式启动

更改

  • 更改 build-artifacts 名称,并自动发布二进制文件(@zhongfly

Docker 用户

请拉取镜像: ghostchu/peerbanhelper:v2.10

v2.8

11 Apr 16:49
14ec560
Compare
Choose a tag to compare

重要错误修复

  • 修复了 Peer 在重新连接到下载器时,如果此前连接过但未完成数据传输断开并重连时,因下载器提供了数据(但因未完成交换数据和握手)而导致数据不完整的情况下,进度检查其出现错误封禁的问题

重要规则更改

  • 默认规则配置文件新增 hp/torrent, -HPXXXX-
    • 旧的规则配置文件不会自动升级,如果您是从旧版升级,请手动添加它们(或者删除 profile.yml 使其重新生成)

新功能!

IP段连锁封禁

批量部署的恶意客户端通常在同一个 IP 段下,PBH 现在允许用户分别为 IPv4 和 IPv6 设置一个前缀长度。在封禁发现的吸血客户端时,会将其所处 IP 地址的指定范围的其余 IP 地址均加入屏蔽列表,实现链式封禁。

(图片仅供演示,默认配置文件不会封禁整个 /24 而是更合理的 /30)

旧的规则配置文件不包含此模块的配置项,请从 Github 复制对应配置段,或者删除 profile.yml 使其重新生成。我们正在对配置文件系统进行改造,完成后将支持配置文件升级功能。

Snipaste_2024-04-11_00-12-43

Snipaste_2024-04-11_00-12-35

封禁历史

在 PBH 引入嵌入式数据库后,现在有能力持久记录封禁的历史记录。你可以在这里找到目前和过去被封禁的客户端的具体情况。

Snipaste_2024-04-11_00-08-18

简易分析

提供了分析最常被封禁的 IP 的功能

Snipaste_2024-04-11_00-08-33

错误修复

  • 修复默认配置文件的特殊符号错误 (@BUnipendix ) (首次贡献)
  • 收到 SIGTERM 信号量后,现在 PBH 能够安全退出(@Gaojianli )

Docker 升级

请拉取镜像:ghostchu/peerbanhelper:v2.8

2.7

08 Apr 12:46
ba2e0b7
Compare
Choose a tag to compare
2.7

新功能!

  • 新增 server.prefix 字段,允许用户调整发送给下载器(如:Transmission)的 URL 前缀,以便通过互联网或者反向代理访问 blocklist 提供端点,以解决非本地部署的 Transmission 无法对接 PBH 的问题。
    • 更改 JS 脚本中的 API 端点,去除前缀 / 已解决通过反向代理从 subpath 访问时,API 请求错误的问题

错误修复

  • 修复在 Windows 平台上使用 JVM 版本启动时,因为错误地触发更改 chcp 代码页导致控制台编码错误问题 (#21 )
  • 修复在 Docker 容器中运行 PBH 时,PBH 未正确响应 SIGTERM 信号量,而必须等待 Docker 强制终止容器的问题
    • 此修复也同时修复了退出状态码非 0 的问题

Docker 更新

请拉取镜像:ghostchu/peerbanhelper:sha-ba2e0b7

2.6

08 Apr 11:05
6b3b337
Compare
Choose a tag to compare
2.6

错误修复

  • 修复进度检查模块的种子大小过滤器失效的问题,并可能导致在小型 Torrent 上错误地封禁 Peer
  • 修复 Transmission 模块在读取客户端 RPC 响应解析时报告 Expected a boolean but was NUMBER at line l column 60 path $.idle-seeding-limit 错误的问题
  • 修复在经过使用 HTTP/2 的反向代理时,因 GOAWAY received 的错误导致请求失败的问题。因此问题涉及 JVM 内部实现而无法进行有效修复,因此现在默认禁用 HTTP/2 协议,并提供了 http-version 配置项可供调整 (#28@Gaojianli 首次贡献)

检查

  • 对不支持的 Transmission 进行版本兼容性检查

Docker 更新

请拉取镜像:ghostchu/peerbanhelper:sha-6b3b337