github PBH-BTN/PeerBanHelper v9.0.0-alpha1

pre-release13 hours ago

Warning

此版本为早期测试版本,可能并不稳定或者存在严重问题。此版本仅用于高阶用户尝鲜和测试用途,请勿用于生产环境。使用测试版本前,请做好数据备份,测试版本数据不保证可平滑升级到稳定版本。普通用户请下载最新正式版

Warning

请做好数据备份,一旦升级到此版本,将无法降级到稳定版。如需降级则必须从备份中还原所有文件。

Note

测试版本不代表最终效果,如存在问题欢迎随时反馈。

新功能

【实验室】AutoSTUN

为无公网地址的私网 NAT1 用户提供自动化 NAT 打洞功能,在 NAT 出口的 IP 地址上打开一个端口,以获得近似公网的连接性。

支持的下载器:qBittorrent, Transmission, BiglyBT, BitComet v2.16 或更高版本

PeerBanHelper 不受通过 AutoSTUN 创建的连接的用户空间转发带来的原始 IP 地址丢失的影响,将能够自动还原其正确的 IP 地址信息。同时还能够直接阻断被封禁的 IP 请求隧道入口的连接尝试。
另外,PBH 还提供了一个简洁、直观的连接状态表,以便快速了解通过隧道的连接的统计和 GeoIP 信息。

AutoSTUN 配置 隧道状态 连接表
image image image

根据所使用的操作系统不同,PeerBanHelper 会在 io_uring, epoll, kqueue, nio 中自动选择性能最好的连接处理接口。
对于使用 Docker 的用户,要使用此功能,PeerBanHelper 必须运行在 host 网络驱动模式下。

为确保功能正常工作,建议启用光猫、路由器上的 UPnP 服务,并配置 DMZ。

拒绝服务攻击保护模块

新的功能模块能够帮助下载器识别占用连接池的无效连接,并断开它们。如果一个 Peer 连接到下载器握手后不进行任何响应,则在一段时间后 PeerBanHelper 将短暂封禁它们来断开其连接,以释放有限的连接池资源,避免连接池耗尽下载器无法连接其它 Peer,或者耗尽 ISP 的最大连接数限制导致断网。

这是一个实验性质的模块,默认处于禁用状态。若要使其生效,请启用对应模块并重新启动 PeerBanHelper。

image

同时有关此问题的新的议题也已在 libtorrent 的仓库中打开:arvidn/libtorrent#8023

仪表盘活动种子翻新

我们对仪表盘上的活动种子模态框进行了翻新,以便更加直观的显示 IP 地址的 GeoIP 信息。

旧界面 新界面
dd365e0fe8798f1e36abf5fe0445d599 image

WebUI 标签卡回归

现在在 Swing UI 上引入由 SWT 驱动的 SWT WebView,该功能曾作为 SWT UI 的一部分被一同移除,在完成技术改造后再次回归,并且将 SWT WebView 扩展到了 Windows x86_64、macOS Intel 和 macOS Apple Silicon。
现在 UI 将由 Swing 和 SWT 混合驱动。

image

破坏性重要内部更改

  • 现在使用 ZGC 作为默认垃圾收集器 @Ghost-chu
    • 现在无需再设置 -Xmx 和 -Xms 等内存设置,PeerBanHelper 的内存配置现在将与操作系统和 Docker 容器设置自动融合调整
    • 垃圾回收基准为 256MB,并会积极退还未使用的内存到操作系统
    • 由于内存分配机制的改动,LowRAM 模式已不再必要且现已删除
    • 过去自行更改 GC 参数的用户需要对参数配置进行调整,避免崩溃或者其它非预期错误
  • 优化了 BanList 模块的性能,现在检查 IP 是否处于已封禁状态的性能大幅提高,AutoRangeBan 的性能也随之得到改善 @Ghost-chu
    • 由于存储数据结构的改变,升级到此版本后,封禁列表将清空
  • 封禁内核改进,现在支持封禁列表中 CIDR 格式的地址段 @Ghost-chu
    • Transmission、BiglyBT、BitComet 现在均已提供原生 CIDR 地址的支持,将传递 CIDR 地址以提高这些平台上的封禁性能
    • 封禁项自动合并 CIDR 的功能将在未来版本提供、现阶段 CIDR 封禁只能通过 API 手动插入到封禁列表中。我们将持续收集有关反馈
    • qBittorrent 的原生 CIDR 支持现在正由 @KagurazakaNyaaqbittorrent/qBittorrent#23157 上推进,在有关补丁合并后我们也将提供 qBittorrent 的原生 CIDR 支持
  • 平台默认 docker-compose 行为现在使用 network_mode: host 以使 AutoSTUN 模块正常工作,这可能会破坏一些有自定义 compose 设置的用户的使用,特别是 ports 字段现在将不再起效 @Ghost-chu
    • 曾使用 172.x.x.x 网关地址的在本次更新后可能无法连接到下载器,出现此情况则可能需要将下载器 IP 更新为 127.0.0.1
    • Synology DSM 上是使用 SPK 套件的用户将由 PeerBanHelper 在更新配置文件时自动更新相关地址,但仍需登录检查是否更新正确有效
  • 改进了封禁列表对 IPV6 地址不同变体的搜索体验 @Ghost-chu
  • 修改了 PeerBanHelper#queryIPDB 的有关方法,可能破坏插件和部分脚本的兼容性。建议用户尽快迁移到 ipdbManager @Ghost-chu

错误修复

  • 修复 IPDB 下载失败时、错误消息被吞的问题 @Ghost-chu
  • 修复 WebUI 的意外请求尝试时可能被计算为失败登录的问题 @Ghost-chu @XiaoXice
  • 修复查看日志功能的 WebSocket 参数可能连续追加的问题 @copilot
  • 修复空间测绘引擎服务隐藏功能未正常工作的问题 @Ghost-chu
  • 修复无 Token 时可能调用两次 token 的问题 @XiaoXice
  • 修复 AWTTrayIcon 偶发的崩溃问题 @paulzzh
  • 修复 PeerFlags 反向解析时部分字段解析错误的问题 @Ghost-chu

安全性改进

  • 现在只信任来自本地回环和局域网的 XFF 头,以避免 Fail2ban 绕过 @Ghost-chu
  • Fail2ban 现在对 IPV6 地址实施封禁时,封禁 /50 而非 /60 @Ghost-chu

Docker 镜像

DockerHub: ghostchu/peerbanhelper-snapshot:sha-7211963
国内镜像加速: 测试版不提供

Don't miss a new PeerBanHelper release

NewReleases is sending notifications on new releases.