Skip to content

Releases: PBH-BTN/PeerBanHelper

v7.3.3

19 Jan 17:08
8c3cf52
Compare
Choose a tag to compare

提前祝各位新年快乐~ 在接下来的春节假期和元宵佳节期间,PBH-BTN 将暂停一段时间的开发、技术支持工作。除非有严重错误,我们在未来一段时间内都不会发布的新的正式版本。

享受假期,快乐过年!下次见!


Note

对使用 BiglyBT 下载器的用户:PeerBanHelper 自本版本起需要 PBH-Adapter-BiglyBT 的 1.2.9 或者更高版本,请升级您的适配器插件版本。当版本过低时,WebUI 将显示 “需要采取行动” 提示,并在升级之前无法正常工作。有关 PBH-Adapter-BiglyBT 的相关更改,请参见对应的版本发行说明

错误修复

  • 修复 NoGUI 模式下,日志队列发生内存泄漏的问题,可能导致长时间运行崩溃的问题 @Ghost-chu
  • 修复 BitComet 下载器的 “忽略私有种子” 功能不起作用的问题 @Ghost-chu
  • 修复 BTN 提交历史记录能力在遇到单次提交超过 10,000 条的时候会导致除最近 10,000 条的数据外剩余数据被丢弃的问题。现在将会正确的进行分批提交,并丢弃 30 天前的历史数据 @Ghost-chu
  • [WebUI] 修复更新日志在特定情况下内容区域背景颜色异常导致内容不可读的问题 @Gaojianli

改进

  • 降低提交历史记录时每批提交的数量(从 10,000 降低到 5,000),超过 5,000 的数据将拆分到下一个请求以降低生成提交数据时的 RAM 使用 @Ghost-chu
  • 优化 GUI 日志记录速度过快时的内存占用峰值问题 @Ghost-chu
  • 此前需要修改启动命令 -D 添加的自定义 Flags 现在支持通过环境变量传递 @Ghost-chu
    • 如果过去的自定义 Flag 包含符号 .-,则替换为 _
    • 所有 ASCII 字符均大写

安全改进

  • 现在不再暴露 WebAPI 端点列表到 /route-view @Ghost-chu
  • 现在将通过检查 User-Agent 的方式,屏蔽下列网络空间测绘引擎的请求,避免 PeerBanHelper 被如下测绘引擎或者端口扫描工具的端口扫描探测: @Ghost-chu
    • Censys
    • Shodan
    • ZoomEye
    • ThreatBook
    • FOFA
    • zmap (默认配置时)
    • nmap (默认配置时)
    • 所有以上 User-Agent 的请求都将返回 404 not found 提示信息和 404 状态码

BTN 更改

  • 协议版本号从 8 提升到 10 以对应协议更新 @Ghost-chu

实验室功能

  • 使用已知数据填充缺失的记录 @Ghost-chu
    • 使用上一个已知的数据记录填充查询的流量记录的空白条目以尝试修复流量统计不准确的问题。但当查询范围开头也无数据时,此功能不生效。需要手动开启实验。

数据收集范围更改披露

@Ghost-chu

PeerBanHelper 严格遵守和执行 PeerBanHelper 隐私政策,并确保用户的知情权。当我们在隐私政策或者收集的内容范围作出更改时,将通过公告等形式向您告知。

以下是有关本次更新中 “BTN 网络” 收集数据的更改告知以及其用途说明:

影响范围:PeerBanHelper v7.3.3 或更高版本,且使用了由 PBH-BTN 官方维护的 Sparkle BTN 的 BTN 实例 (btn-prod.ghostchu-services.top, sparkle.ghostchu-services.top, btn-dev.ghostchu-services.top, sparkle.ghostchu.com) 并且打开了 设置-基础设置-BTN-启用提交 开关的用户

新增收集的数据列表如下所示:

1. [新增] is_private_torrent

作用: 指示一个 torrent_identifier 对应的是否是一个私有种子
适用范围: 提交封禁列表和提交历史记录,包括之前的数据(如果被再次更新)
收集条件: 当对应下载器未启用 “忽略私有种子” 开关或者下载器不支持 “忽略私有种子”,并且连接到了 Sparkle BTN 实例,且打开了“启用提交”开关,并且产生了下列数据的情况下,新的数据可能会被收集
数据用途: 帮助 BTN 服务端程序识别对应 torrent_identifier 的 “私有种子” 类型,以便单独处理可能由 PT 站点等私有种子产生的数据,例如用于分析和统计用途。
收集的数据能够:

  1. 能够识别一条数据是否由一个私有种子产生

收集的数据无法:

  1. 无法在未提前得知 info_hash 的情况下推断数据对应的 info_hash 是什么,参见 BTN-Spec info_hash 匿名化哈希算法
  2. 无法推断出对应的数据是否来自某个具体的 Tracker

数据示例:

  • is_private_torrent = true // 指示本条数据由一个私有种子产生
  • is_private_torrent = false // 指示本条数据由一个公共种子产生

术语解释:

  1. torrent_identifier: 使用 BTN-Spec info_hash 匿名化哈希算法 将一个种子的 info_hash 转换为的匿名哈希值,以便在无需得知种子的实际 info_hash 的匿名情况下识别两个 torrent_identifier 对应的是否是同一个实际种子的技术
  2. 提交封禁列表: 向 BTN 提交自 PBH 启动/上次提交以来的新增封禁记录的过程 技术资料
  3. 提交历史记录: 向 BTN 提交自上次提交以来的新增 Peer 活动连接记录的过程 技术资料
  4. 私有种子: 由 BEP-0027 Private Torrents 中定义的一种种子类型,通常被 PT 站使用

未实装的功能

以下功能因时间因素未在本版本中适配前端界面,但仍可通过 WebAPI 调用:

  1. 批量替换下载器的种子的 Trackers (暂仅支持 qBittorrent, Transmission, BiglyBT)

Docker

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

v7.3.2

13 Jan 16:10
acda442
Compare
Choose a tag to compare

v7.3.2 是 v7.3.0 的一个补丁,有关 v7.3.0 的主要更新内容,请参见 v7.3.0 更新日志

发布日期的近 3 天内的其它补丁更新:

错误修复

  • [WebUI] 在更新或重启 PeerBanHelper 时没有在浏览器中关闭已经打开的 WebUI 标签页时,可能引发多次失败请求,以致触发防暴力破解保护,封禁用户 IP @Gaojianli
    • 此修复需要下次升级时生效,本次升级前仍需要您关闭所有 PeerBanHelper WebUI 页面
  • [WebUI] 修复当种子名称过长时,悬浮显示的 InfoHash 气泡可能被遮挡的问题 @Ghost-chu
  • 修复某些 IPV6 地址无法在 IP 查询功能中搜索到有关记录 #849 @Ghost-chu
  • 修复某些情况下,可翻译组件在序列化/反序列化过程中被破坏的问题 @Ghost-chu @paulzzh
    • 由于序列化方式更改,本次升级后,PeerBanHelper 的未读消息通知会被清除
  • 修复 qBittorrent 下载器登录出错时,向用户错误地显示应静默处理的堆栈跟踪的问题 @Ghost-chu
  • 修复 IP 封禁排行搜索功能不起作用的问题 @Ghost-chu

Docker

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

v7.3.1

13 Jan 06:30
d1e411f
Compare
Choose a tag to compare

v7.3.1 是 v7.3.0 的一个补丁,有关 v7.3.0 的主要更新内容,请参见 v7.3.0 更新日志

错误修复

  • 修复暂停下载器的状态无法被保存的问题 @Ghost-chu
  • 修复 qBittorrent 下载器登陆状态/有效性检查不正确的问题 @Ghost-chu
  • 修复当下载器被暂停或者由于种种原因处于非活跃(登录失败等)状态时出现 Cannot invoke "java.util.Map.keySet()" because "provided" is null 异常的问题 @Ghost-chu
  • [WebUI] 修复更新日志宽度 @Gaojianli
  • [WebUI] 修复图表透明度问题 @Gaojianli

优化

  • 优化整体平均 CPU 使用率 @Ghost-chu
  • 使用内存映射文件(mmap)技术改善 GeoIP 读取性能,并充分利用操作系统内存文件缓存 @Ghost-chu
  • 使用内存映射文件(mmap)技术改善 SQLite 查询性能 @Ghost-chu
  • 在长时间运行 PeerBanHelper 时,定期执行 SQLite 优化查询 @Ghost-chu
  • 改进 ARB 和其它查询 BAN_LIST 列表的封禁模块的读性能 @Ghost-chu

已知问题

  • 暗色模式下,更新日志可能存在显示异常
    • 切换到日间模式查看可缓解此问题
  • 在更新或重启 PeerBanHelper 时没有在浏览器中关闭已经打开的 WebUI 标签页时,可能引发多次失败请求,以致触发防暴力破解保护,封禁用户 IP
    • 如果出现这种情况,请关闭所有 PeerBanHelper WebUI 标签页后,重新启动 PeerBanHelper 来解除对 IP 的封禁
    • 如果无法重新启动以解除 IP 封禁,则可以关闭所有 WebUI 标签页后,等待 30 分钟后再试(期间如有任何失败请求,都将重置计时器)

版本升级指南

由于经常有用户询问如何升级,我们在此列出几种主要安装方式的升级步骤以供参考:

使用 Windows、macOS、Linux(.sh) 安装程序 (install4j) 的用户

启动 PeerBanHelper 时将自动检查更新,并在更新可用时自动升级。
您也可以运行 "PeerBanHelper 检查更新" 程序,手动检查更新并升级。

手动升级的用户,请下载安装程序,并在安装向导中选择 “是,升级现有的安装”

使用群晖套件的用户

请等待矿神 SPK 源更新后在套件中心中升级。

使用 Docker-compose 的用户

更改镜像标签后重新部署即可。

使用 docker 命令的用户

请做好容器数据备份,删除旧的容器,并使用新的镜像标签重新运行 docker run 命令进行升级。建议配合 watchtower 自动更新。

使用 .deb, .pkg 等安装包的用户

请下载新版本安装包进行安装。

Docker

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

v7.3.0

09 Jan 17:50
4d0cdf3
Compare
Choose a tag to compare

2024 第四季度用户调研问卷正在收集,有任何建议意见吗,欢迎告诉我们:#856

新功能

  • 暂停下载器 #833 @Ghost-chu @Gaojianli
    • 用户可以暂停一个或多个下载器,被暂停的下载器仍然在列表中可见,但不再参与任何检查
  • 全局暂停 @Ghost-chu @Gaojianli
    • 可以暂时停止 PBH 的检测任务,暂停期间不再检查和封禁 Peers
  • IP 地址反向域名解析黑名单模块 #834 @Ghost-chu @Gaojianli
    • 用户可以封禁 IP 地址反向解析为主机名(注意:是 IP 的主机名,而非 DDNS 或者普通域名的解析),与 PeerId/ClientName 相同使用 JSON 引擎匹配
    • 分为 JDK 实现和 dnsjava 实现,dnsjava 实现需要在 PBH Lab 中启用实验,否则默认使用 JDK 实现
    • JDK 实现在绝大部分 IP 上似乎都无法正常工作
  • SQLite 数据库自动增量、全量 VACUUM #843 #844 @Ghost-chu
    • 解决了 SQLite 数据库即使删除旧数据后仍然随着时间推移体积膨胀的问题
    • VACUUM 前将进行数据库备份操作,备份会在 VACUUM 操作成功后删除
    • 每次事务完成后都会增量 VACUUM,但完全 VACUUM 只会每 60 天在 PBH 启动时进行
  • 新增 BTN 获取配置文件失败原因,可查看获取配置文件出错时的服务器响应 @Ghost-chu @Gaojianli
  • 新增解封全部 IP 地址按钮 腾讯问卷#17358863#67 @Ghost-chu @Gaojianli
  • 现在订阅规则支持读取注释作为封禁原因之一 腾讯问卷#17358863#89 @Ghost-chu @paulzzh

优化

  • 改进封禁列表的搜索体验 #618 @Ghost-chu @Gaojianli
  • 封禁时如果订阅规则提供了对应 IP 地址的注释行,将显示注释上的信息,而不是仅仅提示命中订阅规则 @Ghost-chu @paulzzh
    • 此更新也加入了对行尾注释的支持
  • 封禁规则现在改善了其可读性

错误修复

  • 修复 AvaitorScript 脚本引擎配置初始化过晚,导致 BTN 下发的脚本无法使用 AV 脚本引擎的部分功能 @Ghost-chu
  • 更新 Tor Exit Node 规则订阅链接,旧的似乎已经不再更新 #845 @Ghost-chu @thrive7776
  • 修复从较旧版本升级到 v7.2+ 时,telegram 推送配置的 chat-id 没有正确迁移到 chatId 的问题 @Ghost-chu
  • 解决 统计-图表 界面不会刷新 #829,现在不支持刷新的页面不再显示刷新按钮 @Gaojianli
  • 修复捐赠页面倒计时在快速开关后可能被破坏的问题 @Gaojianli
  • 修复日志界面的“自动滚动到最新”选项不会滚动到最新日志条目的问题 #847 @Gaojianli
  • 修复安装器在某些情况下不会检测程序运行状态导致安装时卡住的问题,现在安装前将先运行上个版本的卸载程序 #718 @Ghost-chu
  • 修复解封 IP 地址的时候,ProgressCheatBlocker 的持久化数据和内存数据没有正确归零的问题 @Ghost-chu
  • 修复了 BTN 模块在配置文件重载后有时会显示 “已加载 0 个能力” 并停止工作的问题 @Ghost-chu

其它更改

  • Peer 是否已握手现在由各个下载器实现自行管理以更快更精准的判断 Peer 的握手状态 @Ghost-chu

Sparkle BTN 更新

  • 改善程序和数据库性能、优化分析过程,解决引发 Sparkle 两周停机的多项性能和网络瓶颈。之前暂停停止的 Peers 提交、过量下载分析和客户端发现功能现在恢复正常运行 @Ghost-chu
  • 用户应用程序页新增 “创建时间” 列,并按创建顺序倒序排序;新增 “状态” 列,指示 UserApplication 的封禁状态 @Ghost-chu
  • 新增个人资料页,显示账号基本信息(头像、昵称、电子邮件地址、帐号状态)以及账号积分信息 @Ghost-chu
  • 新增积分系统和积分(Bytes),用以衡量用户在 Sparkle BTN 上做出的贡献 @Ghost-chu
  • 新增 BTN 网络统计仪表盘,可登录 BTN 后在首页查看或者 点此跳转 @Ghost-chu
    • 可以自由选择时间区间以查看不同时间段的 BTN 网络整体状态,但大部分数据仅保留 30 天或者更短
    • 可查看封禁网段排行榜,以快速对比 IP 段之间的恶意活动强度
    • 新增 GeoIP 排行榜,分析不同地区的恶意活动强度
    • 新增封禁趋势图,帮助快速了解不同时段封禁的趋势,可通过 “封禁计数、封禁唯一 IP 数、会话数、GeoIP 地区、客户端名称” 等多个维度分析目前的恶意活动
    • 新增网络类型跟踪,可根据运营商和所属网络类型分析当前 BTN 网络上的恶意活动
    • 新增全球网络概览图,以便可视化查看不同国家/地区的恶意活动强度
    • 新增 Sparkle BTN 实时日志,按时间倒序查看、或者根据特定字段过滤最近的 Sparkle BTN 提交数据
    • 新增 Sparkle BTN 审计图表,可查看 BTN 上用户活动(仅部分审计操作对普通用户开放)
  • 改进 BTN-Collected-Rules 规则生成模块 @Ghost-chu
    • Tracker 分析、不受信任 IP 地址和过量下载三大模块支持透明度更新
      • 在每个被封禁的 IP 地址上方的注释行中现在详细显示 Peer 特征、不信任投票数和 BTN 网络统计的过量下载数据信息

Sparkle Tracker 更新

PBH-BTN/Trunker 是一个使用 Golang 编写的高性能 BitTorrent HTTP Tracker 程序(不支持其它协议是刻意的)。其设计目标是使用尽可能少的 CPU 和网络资源处理 Tracker 服务器面临的高并发问题,同时收集和存储 Peer 特征数据以供 BTN 网络程序分析使用。
在不启用持久化的情况下,可以作为普通的 Tracker 程序使用。支持 Unix Domain Socket 以降低 CPU 网络软中断压力。

Trunker 运行高效且经过生产环境的压力验证,欢迎试用。

您也可以使用由 PBH-BTN 维护的 Trunker 实例,由此实例收集的数据会用于 BTN 分析。如果您是种子发布者,欢迎将其添加到 Tracker 列表中:

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

BTN-Collected-Rules 更改

新增规则

在 Sparkle BTN 完成更新后,我们对过去 6 个月的累积数据进行了分析,并创建了多个新规则,欢迎订阅它们或者用作参考:

  • 新规则:cevskxsnm-10-idc.txt (推荐订阅)某 IDC 刷流机房 IP 地址(静态公网 IP),IP 段完美符合其官网宣传的所有机房的地理位置分布,通过 IP 段和主机名确认关联,伪装特征为 qBittorrent/4.6.7,代表 IP 地址段:101.69.63.0/24。通过主机名确认至少有 82 台机器运行刷流程序,由于法律原因,更多证明信息和公司名称不对外公布。
  • 新规则:poonisxq-10.txt (用于参考)某电影分发的小微企业的边缘节点 IP 地址(动静混合),公司域名 ICP 备案于 24 年 8 月份完成,并在备案完成的 2 周内出现刷流 Peer(由 BTN 客户端发现模块记录)。通过 PeerID、主机名、部署的服务程序确认存在关联。特征为 Rain 0.0.0,代表 IP 段:185.107.45.0/24。由于法律原因,更多证明信息和公司名称不对外公布。
  • 新规则:gopeeddev.txt(用于参考)Gopeed dev 的节点 IP 地址(静态公网 IP),通过 IP 段和主机名确认存在关联。代表 IP 段:218.91.255.0/24。目前所有者不明。
  • 新规则:aria2c.txt(用于参考)使用 aria2 特征刷流的 IP 地址(动静混合),特征 aria2/1.37.0,代表 IP 段:114.227.158.0/24。目前所有者不明。

您无需修改 PBH 的配置,所有新的规则都会合并到 all.txt 中。

现有规则更改

  • Tracker 分析、不受信任 IP 地址和过量下载三大模块支持透明度更新
    • 在每个被封禁的 IP 地址上方的注释行中现在详细显示 Peer 特征、不信任投票数和 BTN 网络统计的过量下载数据信息
  • multi-dial.txt 规则清理
    • 清理了一部分过期、无效、重复和不值得再按段封禁的规则

尾言

在本次问卷调查中,我们收到了很多伙伴们的建设性建议。其中一部分建议已在本次更新中加入 PeerBanHelper 中,但仍有部分留言由于系统限制无法回复。我们在此统一对这些问题进行回答:

  • 土豆不能熟
    • 我们已经采取了一系列措施改进服务器的稳定性,本周以来 Sparkle 的服务稳定性已经显著提升,会在未来持续优化
  • 江苏南通ip的Gopeed dev无法封禁,一直提示已在封禁列表,但始终无法封禁,希望可以改进
    • 经过测试无法复现这个问题
  • 误封好严重,建议添加一个能力开关或者到一定的上传量再封禁
    • 本次更新也对规则进行了一次性里,可以看看误封情况是否有所好转
  • 封禁列表支持按条件搜索
    • 本次更新已新增了对封禁列表的任意搜索功能,可搜索任意字段的任意内容
  • 如果使用的存储设备为flash设备,最好内置读写计数,帮助用户评估磨损情况
    • 读写是不可控的,并且由于目前有内存缓存功能,实际上读写次数不会太多了
  • 同ip端口不同种子合并下载上传总量统计
    • 底层代码限制,短时间内是搞不了了
  • 加入根据封禁原因筛选封禁记录的功能
    • 封禁日志由于底层代码限制,搜索功能受限,我们还在寻找解决方案
  • 目前已经非常满意,如果可能希望减少资源占用
    • 其实大部分时候内存 PBH 并没有在使用,但是 JVM 更倾向于先申请这些内存以备不时之需。本次更新已调低了这部分阈值,但由于 JVM 的设计,它可能还是很会倾向于申请一些内存自己囤着
  • 建议BTN的前端恢复装修前的封禁记录查询,并加上历史记录查询、图表(如各个地区各个客户端的封禁量柱状图折线图之类的)等比较直观的数据查看方式 另外,建议PBH加上对BTN各个能力的自定义开关(ClientName封禁、PeerID封禁这些)避免误封,最近在下海盗湾的种子时有很多用libtorrent名字的客户端连上来,然后立刻被PBH封了:(
    • 我们已在本版本改善了一部分的误封情况,数据查看和图表已推出新的 Sparkle Dashboard 作为过渡方案
    1. 封禁名单 或 封禁日志 能用更多的方式筛选(客户端、封禁原因等) 2. 能在PBH客户端管理BTN启用的能力,实现只上报数据,而不使用BTN下发的规则。原因有:我不想屏蔽掉Transmission 4.0.6客户端;我想知道peer被屏蔽的原因(而不仅仅因为该peer在ip封禁列表中)
      1. 封禁列表已在本版本中得到优化 2. 此功能可以在设置中禁用使用云端规则,而不会影响提交数据
  • 如果可行,希望可以减少对SSD的写入量。
    • 已经有内存缓存了~ 并不是暴力 I/O 的 SSD 捏
  • 希望能支持Aria2
    • 得 aria2 自己努力才行,它根本无法封禁 IP 地址,而且作者明确不想加 blocklist 功能
  • PeerBanHelper:希望在Linux端的RPM包中引入全局配置目录,便于升级时不会覆盖部分自定义参数。 Sparkle(BTN网络):希望提供自建BTN网络的相关文档和软件包/代码包,并希望可以实现BTN网络节点联盟的构想,实现超级节点向边缘节点定期分发规则和封禁数据以及边缘节点向超级节点的数据上报功能,降低目前单中心处理能力不足导致的功能受限的影响。 PS:我这边有双路AMD 9754 1TB内存的服务器,应该处理性能不成问题?
      1. 更改数据目录:-Dpbh.datadir=/path/to/data 单独更改配置目录:-Dpbh.configdir=/path/to/config 单独更改日志目录:-Dpbh.logsdir=/path/to/logs
    • 暂不考虑网络节点联盟问题
    • 谢谢,我们暂不接受服务器捐赠。根据隐私政策所述,我们不得将数据提供给第三方,使用他人捐赠服务器实质上还是将数据传输给了第三方
  • 建议开发一键解封ip
    • 本版已添加 “解封全部IP地址” 功能,点击即可解封封禁列表的所有 IP 地址,感谢您的建议
  • pbh可以说对我相当有帮助,我一开始本着分享原则,能不给上传限速就不限,导致上传带宽天天被占满,以至于没法正常上网。用了pbh上传从20m降到平均几百k,我才知道以前基本全是给吸血上传。不过因为我不是非常了解屏蔽的原理,其实我有时候还是有些担心会误封一些真正下载人的账号,请问这部分是否可以根据违反规则情况给每个封禁IP分级,来使用户更加了解其是否具有较大危害?
    • 谢谢,建议已收到。我们会考虑根据动态分数计算来封禁 IP,但是涉及到底层代码修改,短期内暂时不会看到这个功能
    • Sparkle BTN 内部已经是如此工作了,现在新增的封禁原因备注也有望改善封禁透明度问题
  • 可能要对libertorrent的规则做一些调整,现在这样全杀不太好。还有对做种上传的应该存在误封
    • 我们正在对 libtorrent 的情况展开调查,在调查完成前我们施加了一个临时的措施。在情况明了后就会做出更进一步的举措
  • 为开发团队的大量付出致敬。 与恶意吸血客户端的斗争还在继续。希望各个被全量封禁的地区能尽快恢复正常。
    • 谢谢,我们已解除了这部分地区的一部分 IP 地址;但由于部分 IP 段仍然疯狂进行恶意活动,仍有大量 IP 段未得到解封
  • github更新不便,BTN链接不便
    • 我们会考虑添加国内分发源,BTN 现在提交数据已经是国内 CDN 了,但是页面浏览可能会被 302 到全球节点,我们会考虑改善这个问题
  • peer id、client name规则提供注释,说明是哪款软件 提供白名单规则,例如:只允许XX的peer连接
    • 感谢建议,已添加
  • 超量下载(进度回退)再智能一些
    • 它已经是不跑 AI 大模型的情况下比较智能的状态了
  • 能否优化一下peerbanhelper长期运行的表现?我的peerbanhelper是跑在旧电脑改造的服务器上的,但是经常不过几天pbh就完全卡死不能工作,不管是gui mode还是控制台模式,都是一样的结果。希望能加以改进,我相信pbh还是有很多需求是长期稳定运行的。除此之外,这个软件非常完美,就是这个问题让人很难受。
    • 请升级版本,不要继续使用 6.x 了
  • PeerBanHelper 应取得更加广泛的运用才可以更好得从用户端遏制PCDN的猖獗,但是现阶段对于配置 PeerBanHelper 和 Sparkle(BTN网络)的门槛依旧较高,不适合吸纳更加广泛的用户加入进来。
    • 谢谢,我们会在有空闲的时候优化用户体验
  • 内存占用过高 peerbanhelper 0.08% 787.4MiB / 15.54GiB
    • 你升级了吗?
  • 增加复制webui链接到剪贴板的功能,我不希望我的密码直接暴露在浏览器的历史记录里
    • 你可以使用随机密码的,登陆一次就记住了
    • 试试看浏览器的一个传奇功能:网页收藏夹
  • 希望btn服务器能更加稳定,不要经常无法连接
    • Powered by GLaDOS (Potato Edition),它已经很努力了
  • 希望可以推出季度報告等方式介紹最近的封鎖效果,總是覺得好像效果不太好但又不肯定 RAM和CPU的佔用未至於影響使用,但確實有點偏高,希望可以改善。
    • 已经有图表了
    • 封禁效果取决于所有人共同的努力,考虑加入 BTN 网络帮助一起改善封禁效果吧

转眼又是新的一年,转眼 PeerBanHelper 就快要一周年啦(2 月 7 日)。
时间飞逝,希望有 PeerBanHelper 陪伴下,今年也会是快乐 BT 的一年。提前拜个早年,2025 新年快乐~

已知问题

  • 封禁备注为空、奇怪的文本
    • BTN-Collected-Rules 仍未完成改造,属于正常现象

Docker

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

v7.2.2

12 Dec 21:16
2476139
Compare
Choose a tag to compare

错误修复

  • 修复检查更新失败时,用户侧会弹出检查失败的提示框的问题。现在将静默忽略错误处理 @Ghost-chu
  • 修复 Transmission 适配器空指针错误 @Ghost-chu

更改

  • Docker 中运行的 PBH 默认情况下强制 AWT 无头模式运行

Docker

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

v7.2.1

11 Dec 08:07
818f802
Compare
Choose a tag to compare

v7.2.1 是 v7.2.0 的一个首日补丁,用于修复 v7.2.0 中已知的错误。

错误修复

  • 修复 .deb 安装包安装时可能因为文件夹已经存在导致报错的问题 @Anuskuss
  • 修复警报提示框中警报内容文本丢失的问题 @Gaojianli
  • 修复启动时 IPFS Share BanList 提示出错,导致 0 号测试组用户无法启动 PBH 的问题,我们暂时禁用了此功能,并将随下一个修复版本一同修复。 @Ghost-chu

Docker

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

v7.2.0 更新日志请见:https://github.com/PBH-BTN/PeerBanHelper/releases/tag/v7.2.0

v7.2.0

10 Dec 15:56
2b22b5d
Compare
Choose a tag to compare

与往常一样,我们持续更新 PeerBanHelper 以改进反吸血能力,并持续改进用户体验。
v7.2.0 是一次次要更新,本次升级涉及配置文件重要变更,请在继续之前备份 data/config 文件夹内的文件。

旧版本生命周期提醒

由于旧版本中存在的内存泄漏和在线 API 等问题,我们将很快放弃 v7.1.5 版本前的 PeerBanHelper 版本的在线支持。

如果您仍在使用 v7.1.5 之前的版本,则建议您在 2025 年 1 月 1 日前完成版本升级,更新到最低 v7.1.5 或者更高的 v7.2.0 版本。 在该日期后,我们将逐步停止旧版本 PeerBanHelper 的在线 API 支持,包括但不限于 GeoIP 库更新和 BTN 网络等服务。
在线 API 停止对旧版本的支持后,旧版本 PeerBanHelper 将无法更新 GeoIP,且也将无法从 BTN 网络获取新的云端规则。
同时由于上面提到的内存泄漏问题,旧版本 PeerBanHelper 可能频繁面临因内存泄漏产生的崩溃问题(在此之前我们通过控制规则数量减缓旧版本的崩溃问题)。

建议您总是保持运行最新版本 PeerBanHelper 以获取重要错误修复和功能更新。

反吸血算法改进

改进了对 BEP-0021 Extension for partial seeds 规范的支持,现在能够对下列情况做出正确的过量下载/进度回退的反吸血判定:

  • 种子处于下载状态,部分文件没有完整下载
  • 用户/Peer在 “内容” 选项卡中只选择了部分文件下载,而不是整个完整的 torrent (BEP-0021)
  • 下载过程中出现错误,导致下载停止,进入了仅上传状态(如 I/O 错误,或者在下载 torrent 过程中磁盘空间不足)

现在 PeerBanHelper 的进度反作弊能够正确处理上面列出的情况。 @paulzzh

Deluge 用户需要更新适配器

通知渠道管理

现在可在 WebUI 上管理通知推送渠道。当出现警告或者错误的高等级信息时(如:上传量达到每日告警阈值;PBH 内存不足等),您将会收到通知推送。 @Gaojianli

image

image

可显示/隐藏的图表项

现在图表页面可选择显示或者隐藏特定的图表。@Gaojianli

image

PeerBanHelper Labs

欢迎来到 PeerBanHelper 实验室!我们有时会对 PeerBanHelper 的一些功能做出实验性的更改。这些实验正在进行中,有的则可能被放弃。我们希望其中的多数会获得您的反馈意见,得以改进,并最终成为 PeerBanHelper 的一部分。PeerBanHelper 实验室的作用就在于此。

每个实验推出时都会随机的在一部分用户的 PeerBanHelper 上启用,以便获得新功能的反馈。但如果新功能的对您造成了困扰/或者想要提前尝鲜测试,您也可以随时在 “实验室” 菜单中手动开启关闭实验项目。@Ghost-chu @Gaojianli

PeerBanHelper Labs

install4j 自动更新支持

被大家心心念念的 Windows/Linux 平台的 install4j 自动更新的支持现已到来。对使用安装程序安装的 PeerBanHelper,在本次更新后将会添加自动更新功能。每次启动 PeerBanHelper 时,更新程序会在后台检查并下载更新,并在下一次启动时安装新的更新。

您也可以通过开始菜单中新增的 “PeerBanHelper 检查更新” 程序来手动检查更新:

image

de9aa83ed64e53850d3abcc10b49eb35

对于非 install4j 安装程序安装的 PeerBanHelper:

  • Docker:可使用 WatchTower 自动更新
  • 群晖套件:继续由群晖的套件中心提供更新
  • .deb 包:由用户自行管理更新

@Ghost-chu

更新日志

现在可以直接在前端查看新版本的更新日志 @Gaojianli
image
image

(实验性功能)IPFS/IPNS 规则订阅支持

Note

这是一个实验性功能,不建议普通用户使用

作为 #622 的一部分,本次 v7.2 版本中新增了 IPFS/IPNS 去中心化网络支持。IPFS(星际文件系统) 是一个类似 BitTorrent 的完全去中心化点到点超媒体传输协议,而 IPNS 则充当 IPFS 网络中的 DNS。

要使用 IPFS/IPNS 规则订阅,则需要部署 Kubo IPFS 客户端,在实验室中启用 IPFS 实验并在 config.yml 手动启用和配置。配置完成后,您就可以使用 IPFS 和 IPNS 协议地址来添加订阅。

您可以在配置文件中修改 Kubo RPC 地址为您自行安装的 Kubo IPFS 客户端,或者使用新的 docker-compose.yml 部署,将会自动配置 IPFS 客户端。

  • 对于 IPFS 来说,你需要使用 ipfs://CID 格式的 URL,但缺点是每个文件被提交到 IPFS 后都无法再次被修改
  • 您也可以使用 IPNS,IPNS 是可修改的,并可以指向任意 CID,格式为 ipns://ID,你可以在 IPFS Desktop 中将不同的文件发布到同一个 IPNS 上来完成更新操作

同时,PeerBanHelper 也会每隔 1 个小时(可修改)将自身的 Banlist 发布到 IPFS 和 IPNS 上,IPNS 地址可在 IPFS 客户端上看到。如果您的 IPFS 客户端连接了多个 PeerBanHelper 客户端,则您可以通过后缀(安装ID)来识别不同的 PeerBanHelper 客户端。

Kubo Client IPNS

使用 IPFS 网络可以做到人人都能创建合订阅规则,且无需购买服务器。使用的人越多,则帮助你一起分发规则的人也越多。 @Ghost-chu

DEB 安装包改进

感谢 @Anuskuss。本次更新后,使用 DEB 安装包安装 PeerBanHepler 的用户将会将数据文件和 PBH 主程序安装到更合适的位置。本次更新也同时改进了日志记录功能。#732

PBH Plus 许可证更改

在过去只有在爱发电上捐赠我们的用户可以使用 PBH Plus 的捐赠功能,但我们认为这可能有悖于非营利软件的定义。因此在 v7.2 版本中,我们添加了一个 “我不想捐赠” 的按钮,允许直接激活 PBH Plus 许可证而无需捐赠。

通过这种方式激活的 PBH Plus 许可证在功能上与捐赠用户的许可证完全相同,但有效期只有 15 天,且不会显示捐赠感谢信息。当许可证到期后,您可以重复相同步骤,再次点击 “我不想捐赠” 创建新的循环许可证。

image

尽管如此,PBH-BTN 仍在维护多个需要持续投入的基础设施,如 BTN 和公共 BitTorrent Tracker。
如果 PeerBanHelper 确实有帮到您,我们仍然希望您能够考虑捐赠此项目。

错误修复

  • 修复了 BTN、检查间隔 等配置项在 WebUI 调整设置后重载配置不生效的问题 @Ghost-chu
  • 修复了新安装首次启动时清理任务报告 SQL 错误的问题 @Ghost-chu
  • 修复端口占用时,弹出的提示没有显示被占用的端口号的问题 @Ghost-chu

性能优化

  • 改进了加载 BTN 规则时产生的内存尖峰,避免极端情况下可能导致 OOM 的问题 @Ghost-chu
  • 改进了例外列表 IP 判断的性能和内存占用 @Ghost-chu

用户体验优化

  • 安装向导结束时,添加 “启动 PeerBanHelper” 复选框 @Ghost-chu
  • 连接到 qBittorrent 下载器时,在首次登陆时自动关闭需要关闭的 “允许同一 IP 地址的多重连接” 开关 @Ghost-chu

文档修正

BTN / Sparkle 改进

Sparkle BTN 改进

自上一个版本发布以来,我们对 Sparkle BTN 做了大量的改进,以提升其分析精确度和分析性能。

  • BTN 对提交的数据进行分析时,现在按照时间块进行切分来统计数据,以避免短时间内同一 Peer 触发多个 BTN 客户端,导致连续上报被立刻标记为不可信的问题
  • 将统计时间区间从 45 天缩短到 14 天。由于动态 IP 地址的特性,一个 IP 很少能够被同一个用户持续使用超过 7 天。对于普通用户来说,这改善了误封禁的问题;对于数据中心 IP 来说,因为其 IP 一直没有变化,因此这个调整不会对其产生影响;对于动态吸血 IP 来说,它们遵循与普通用户一样的 IP 轮换规则,因此 IP 被污染抛弃后,BTN 现在可以加快过期速度,释放原先的 IP 地址
  • 与 Sparkle Tracker 联动

Sparkle Tracker 改进

  • 大幅改进了 Sparkle Tracker 的性能,解决了因繁重的 Tracker 任务导致的多次 Sparkle 程序宕机、崩溃和数据库服务器宕机的问题
  • 现在支持与 Sparkle BTN 服务交叉联动,BTN 现在能够分析 Sparkle Tracker 的数据以生成反吸血 IP 地址规则
  • 后期将进一步深度集成两者,以便聚合分析数据

回退支持

v7.2.0 是一次次要更新,因此支持版本回退。目前支持的回退路径为回退到最低 v7.1.5。
您可通过还原 v7.1.5 的 data/config 中的文件备份后,重新安装 v7.1.5 版本以降级到 v7.1.5。

Docker

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

已知问题|Known issue

  • 警报的内容可能无法显示

7.1.5

26 Nov 14:36
18c1ef3
Compare
Choose a tag to compare

7.1.5 是 7.1 系列的一个错误修复版本,不包含功能更新。与往常一样,我们持续更新 PeerBanHelper 以修复一些已知问题。

错误修复

  • 修复 PeerBanHelper 在 Windows 操作系统下,即使使用 NoGUI 运行依然加载 AWT 相关组件,并触发 AWT 的漏洞导致程序崩溃的问题 @Ghost-chu
    • 现在使用 NoGUI 模式启动时,将阻止 AWT 注册
    • GUI 崩溃的问题是 Java VM 的问题,我们仍在等待 Java 24 发布以解决此问题
  • [WebUI] 修复不输入任何 IP 的情况下点击 IP 查询按钮引发 WebUI 页面错误的问题 @Gaojianli
  • [WebUI] 修复编辑城市规则时在罕见情况下可能删除现有的城市规则的问题 @Gaojianli

调整

  • 新的 PeerBanHelper 安装在规则订阅中默认包含未启用的 Tor Exit Node 规则 @Ghost-chu
  • 优化运行内存(Heap)占用 @Ghost-chu

已知问题

  • 在 Windows 平台上运行带有 GUI 版本的 PeerBanHelper 时如遇屏幕分辨率更改(如连接远程桌面 RDP 等)会导致崩溃
    • 这是 Java VM 的 AWT 组件的故障,只能由 Java VM 团队修复,我们仍在等待修复
    • 受影响的 Windows 用户在更新到 v7.1.5 后,使用 NoGUI 模式运行即可解决崩溃问题
    • Linux 和 macOS 的 GUI 界面不受此问题的影响
  • 在未完成/不完整/部分做种的种子上做种时,可能错误标记此种子上的其它 Peer 为吸血
    • 通过 #748 修复,将与 7.2 版本一同发布修复

Docker

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

7.1.4

11 Nov 15:58
97115cc
Compare
Choose a tag to compare

反吸血算法优化

  • 优化进度反作弊检测模块对使用 “超级做种” 的 Peer 的误封禁的问题。现在在对方未从 PBH 所关联的下载器下载数据的情况下,PCB 进度反作弊检测模块将不会动作,以避免错误的封禁使用 BEP-0016 规范进行超级做种的 Peer(超级做种启用时,将不会汇报真实的任务进度给其它人) @Ghost-chu

默认配置文件调整

自 2024 年年初以来,已经度过了快一年了。在军备竞赛中火拼了数月后,吸血 Peer 的特征经历了一波又一波的变化。PBH 自带的部分配置已不再适应目前的现状,我们对不再需要的规则进行了删除,以下是删除的清单:

  • 删除 anacrolix/torrent-GT0003 规则,现在的吸血客户端已不再使用 anacrolix/torrent 进行吸血,转为伪装其它正规客户端。根据 BTN 收集的数据来看,此规则挡住了一些基于 anacrolix/torrent 开发的正规客户端(如番剧下载器等),因此我们删除了此规则
    • 后续如果卷土重来,将通过 BTN 云端规则下发重新屏蔽
  • 删除 go.torrent-GT0002 规则,在目前 BT 环境变得愈加恶劣的情况下,百度网盘的离线下载功能能够起到有效分流、减少流量上传的作用,且经常被用于救种。值得一提的是,我们注意到百度网盘的离线下载在下载期间会上传数据,这有助于 BT 文件分发并改善 Peer 之间的连接性;综上所述,我们没有理由再继续屏蔽百度网盘的离线下载功能
  • 删除 ljyun.cn/hangzhou/monitoring 规则,因为这家边缘云厂商现在显然不再使用这个 ClientName 下载文件了

已经安装过 PBH 的用户需要手动进行上述修改,该更改不会自动应用到现有安装。

错误修复

  • 修复 qBittorrent EE 连接到 Web Seed 时报告 IP 地址转换错误的问题 @Ghost-chu
  • 修复 BTN 模块中存在的一个问题导致 PBH 不会执行 BTN 规则的问题 @Ghost-chu
  • 修复 BTN 云端规则未获取完成的情况下,状态面板的 BTN 状态可能显示为空 @Ghost-chu

Docker

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

7.1.3

10 Nov 09:28
ddb76f0
Compare
Choose a tag to compare

错误修复

  • 修复了日志系统中的一个内存泄漏问题,导致长时间运行时出现内存耗尽的问题 @Ghost-chu
  • 修复 qBittorrent 下载器连接到 WebSeed 的 Peer 后出现 IP 转换错误报错的问题 @Ghost-chu
  • 修复 GUI 托盘右键菜单对中日韩统一表象文字(CJK)在 Windows 操作系统下出现乱码的问题 @Ghost-chu
  • 修复暗色模式下,图标部分元素对比度较差的问题 @Gaojianli
  • 修复暗色模式下,堆内存大小文本颜色未正确更改的问题 @Gaojianli
  • 修复 WebUI 的日志查看器的多个问题,并提升性能 @Gaojianli

Docker

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