Releases: PBH-BTN/PeerBanHelper
v7.3.0
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 网络统计的过量下载数据信息
- Tracker 分析、不受信任 IP 地址和过量下载三大模块支持透明度更新
Sparkle Tracker 更新
- 现在由 @Gaojianli 创建的新的 PBH-BTN/Trunker 替代
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 作为过渡方案
-
- 封禁名单 或 封禁日志 能用更多的方式筛选(客户端、封禁原因等) 2. 能在PBH客户端管理BTN启用的能力,实现只上报数据,而不使用BTN下发的规则。原因有:我不想屏蔽掉Transmission 4.0.6客户端;我想知道peer被屏蔽的原因(而不仅仅因为该peer在ip封禁列表中)
-
- 封禁列表已在本版本中得到优化 2. 此功能可以在设置中禁用使用云端规则,而不会影响提交数据
- 如果可行,希望可以减少对SSD的写入量。
- 已经有内存缓存了~ 并不是暴力 I/O 的 SSD 捏
- 希望能支持Aria2
- 得 aria2 自己努力才行,它根本无法封禁 IP 地址,而且作者明确不想加 blocklist 功能
- PeerBanHelper:希望在Linux端的RPM包中引入全局配置目录,便于升级时不会覆盖部分自定义参数。 Sparkle(BTN网络):希望提供自建BTN网络的相关文档和软件包/代码包,并希望可以实现BTN网络节点联盟的构想,实现超级节点向边缘节点定期分发规则和封禁数据以及边缘节点向超级节点的数据上报功能,降低目前单中心处理能力不足导致的功能受限的影响。 PS:我这边有双路AMD 9754 1TB内存的服务器,应该处理性能不成问题?
-
- 更改数据目录:
-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
错误修复
- 修复检查更新失败时,用户侧会弹出检查失败的提示框的问题。现在将静默忽略错误处理 @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
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
与往常一样,我们持续更新 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
可显示/隐藏的图表项
现在图表页面可选择显示或者隐藏特定的图表。@Gaojianli
PeerBanHelper Labs
欢迎来到 PeerBanHelper 实验室!我们有时会对 PeerBanHelper 的一些功能做出实验性的更改。这些实验正在进行中,有的则可能被放弃。我们希望其中的多数会获得您的反馈意见,得以改进,并最终成为 PeerBanHelper 的一部分。PeerBanHelper 实验室的作用就在于此。
每个实验推出时都会随机的在一部分用户的 PeerBanHelper 上启用,以便获得新功能的反馈。但如果新功能的对您造成了困扰/或者想要提前尝鲜测试,您也可以随时在 “实验室” 菜单中手动开启关闭实验项目。@Ghost-chu @Gaojianli
install4j 自动更新支持
被大家心心念念的 Windows/Linux 平台的 install4j 自动更新的支持现已到来。对使用安装程序安装的 PeerBanHelper,在本次更新后将会添加自动更新功能。每次启动 PeerBanHelper 时,更新程序会在后台检查并下载更新,并在下一次启动时安装新的更新。
您也可以通过开始菜单中新增的 “PeerBanHelper 检查更新” 程序来手动检查更新:
对于非 install4j 安装程序安装的 PeerBanHelper:
- Docker:可使用 WatchTower 自动更新
- 群晖套件:继续由群晖的套件中心提供更新
- .deb 包:由用户自行管理更新
更新日志
现在可以直接在前端查看新版本的更新日志 @Gaojianli
(实验性功能)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 客户端。
使用 IPFS 网络可以做到人人都能创建合订阅规则,且无需购买服务器。使用的人越多,则帮助你一起分发规则的人也越多。 @Ghost-chu
DEB 安装包改进
感谢 @Anuskuss。本次更新后,使用 DEB 安装包安装 PeerBanHepler 的用户将会将数据文件和 PBH 主程序安装到更合适的位置。本次更新也同时改进了日志记录功能。#732
PBH Plus 许可证更改
在过去只有在爱发电上捐赠我们的用户可以使用 PBH Plus 的捐赠功能,但我们认为这可能有悖于非营利软件的定义。因此在 v7.2 版本中,我们添加了一个 “我不想捐赠” 的按钮,允许直接激活 PBH Plus 许可证而无需捐赠。
通过这种方式激活的 PBH Plus 许可证在功能上与捐赠用户的许可证完全相同,但有效期只有 15 天,且不会显示捐赠感谢信息。当许可证到期后,您可以重复相同步骤,再次点击 “我不想捐赠” 创建新的循环许可证。
尽管如此,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
文档修正
- 修正了多个文档中的拼写错误 @CreeperAWA
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
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
反吸血算法优化
- 优化进度反作弊检测模块对使用 “超级做种” 的 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
错误修复
- 修复了日志系统中的一个内存泄漏问题,导致长时间运行时出现内存耗尽的问题 @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
7.1.2
错误修复
- 修复进度反作弊检查在 qBittorrent 上对 “部分做种(Partial Seeds)” 的种子进行检查时未使用正确的总大小计算导致可能错误封禁 Peers 的问题 @maoruishan (first-time contributor)
- 修复 IP 列表查询的 IP 地址不显示总流量统计数据的问题 @Ghost-chu
- [WebUI] 修复WebUI的若干问题 @Ghost-chu @Gaojianli
- 封禁名单现在忽略 “Peer 快速测试” 的封禁记录
- 修复 IP 列表不输入任何内容就点击搜索按钮引发错误的问题
- 修复 Dashboard 下载器刷新的时候出现骨架屏的问题
- 修复流量统计图表 Y 轴刻度显示不全的问题
- 修复自动刷新图标进入刷新旋转动画时,会带飞悬浮信息框
- 新增一个控制按钮以控制新日志条目插入时页面跳动的问题
Docker
DockerHub: ghostchu/peerbanhelper:v7.1.2
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v7.1.2
注:有许多小伙伴询问是否可以使用 latest 标签,是可以使用的,只是如果你使用了镜像站,则 latest 标签可能不是最新的版本。
7.1.1
错误修复
- 修复流量统计图表在 7.1.0 被破坏的问题 @Ghost-chu @paulzzh
- 修复 httpd 可能在 IPDB 未下载完成之前就启动的问题 @Ghost-chu
- 修复 IPDB 下载超时时有时不会切换备用源的问题 @Ghost-chu
- 修复在非 zh-CN 的系统语言下,界面文本显示异常 @Ghost-chu
7.1.0
Caution
本版包含重要安全修复,不管出于任何理由,您都应该更新到此修复版本。
关键安全性修复
- 【重要】修复了因错误使用 ORM 框架导致潜在 SQL 注入的问题 @Ghost-chu @paulzzh
- 恶意攻击者可通过在查询参数中插入 SQL 片段,执行任意 SQL 查询
- 【重要】修复了登录接口的 POST 登陆方式没有覆盖暴力破解防护的问题 @Ghost-chu
- 恶意攻击者可能对登录接口发起暴力破解穷举 WebUI Token 以获取 WebUI 访问权限,并间接获取连接的下载器的 WebUI 权限
- 添加了
robots.txt
并拒绝任何搜索引擎索引并避免在搜索引擎中暴露,但依然可能被 Censys 等网络空间测绘引擎发现,建议使用防火墙保护 @Ghost-chu- 如果 PBH 部署在二级目录下,请自行管理
robots.txt
- 如果 PBH 部署在二级目录下,请自行管理
- 仅在登录阶段传递 Token,避免明文 WebUI Token 泄露
新功能
- 图表数据现在支持分下载器查看 @Gaojianli @Ghost-chu @paulzzh
- WebUI 现在支持自定义脚本编辑 @Gaojianli @Ghost-chu
- 通过编程的方式构建自己的反吸血逻辑
- 只有在局域网内直接访问 WebUI 才能添加和编辑脚本;通过互联网或者反向代理访问时,仅能查看脚本,不可添加修改编辑
- 安全警告:自定义脚本可执行任意代码,请仅添加来自可信来源的脚本
- 【重要】BTN 新增 “脚本规则” 规则类型,PeerBanHelper 现在可接收来自 BTN 服务器下发的脚本以提升基于云的检测防护能力,提高封禁的灵活和精确性 @Ghost-chu
- 需要手动在 “设置->基础设置->BTN” 开启 “启用脚本执行” 开关,此功能才会生效。请仅在可信 BTN 服务器上启用此功能。
- WebUI 现在可以进行堆内存转储 @Gaojianli
- BTN 能力列表页面现在可查看云端规则数量和规则版本号 @Gaojianli @Ghost-chu
- 其它用户体验改善
错误修复
- 【重要】优化了 IPMatcher 的CPU和内存占用,解决了困扰已久的规则过多时内存溢出的问题并大幅缩短了匹配 IP 时的 CPU 占用和匹配耗时,现在空载内存仅需要 92MB(GUI) @Ghost-chu @paulzzh
- 请注意:自 2024/11/06 后,旧版本(< 7.1.0) PBH 可能由于 IP 屏蔽列表的增长而耗尽内存,为了保证正常运行,请升级版本或者更改其最大堆内存
- 修复了当添加支持完整 PeerID 的下载器(如:BiglyBT/Azureus/Vuze、BitComet 或者 Deluge)时,查看 PeerID 饼图时完全不可读的问题 @Ghost-chu
- Windows GUI 的打开 WebUI 按钮现在能够自动填充 token 登录 WebUI
7.1.1
错误修复
- 修复流量统计图表在 7.1.0 被破坏的问题 @Ghost-chu @paulzzh
- 修复 httpd 可能在 IPDB 未下载完成之前就启动的问题 @Ghost-chu
- 修复 IPDB 下载超时时有时不会切换备用源的问题 @Ghost-chu
- 修复在非 zh-CN 的系统语言下,界面文本显示异常 @Ghost-chu
Docker
DockerHub: ghostchu/peerbanhelper:v7.1.1
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v7.1.1
注:有许多小伙伴询问是否可以使用 latest 标签,是可以使用的,只是如果你使用了镜像站,则 latest 标签可能不是最新的版本。
7.1.0 发行注记
Caution
本版包含重要安全修复,不管出于任何理由,您都应该更新到此修复版本。
关键安全性修复
- 【重要】修复了因错误使用 ORM 框架导致潜在 SQL 注入的问题 @Ghost-chu @paulzzh
- 恶意攻击者可通过在查询参数中插入 SQL 片段,执行任意 SQL 查询
- 【重要】修复了登录接口的 POST 登陆方式没有覆盖暴力破解防护的问题 @Ghost-chu
- 恶意攻击者可能对登录接口发起暴力破解穷举 WebUI Token 以获取 WebUI 访问权限,并间接获取连接的下载器的 WebUI 权限
- 添加了
robots.txt
并拒绝任何搜索引擎索引并避免在搜索引擎中暴露,但依然可能被 Censys 等网络空间测绘引擎发现,建议使用防火墙保护 @Ghost-chu- 如果 PBH 部署在二级目录下,请自行管理
robots.txt
- 如果 PBH 部署在二级目录下,请自行管理
- 仅在登录阶段传递 Token,避免明文 WebUI Token 泄露
新功能
- 图表数据现在支持分下载器查看 @Gaojianli @Ghost-chu @paulzzh
- WebUI 现在支持自定义脚本编辑 @Gaojianli @Ghost-chu
- 通过编程的方式构建自己的反吸血逻辑
- 只有在局域网内直接访问 WebUI 才能添加和编辑脚本;通过互联网或者反向代理访问时,仅能查看脚本,不可添加修改编辑
- 安全警告:自定义脚本可执行任意代码,请仅添加来自可信来源的脚本
- 【重要】BTN 新增 “脚本规则” 规则类型,PeerBanHelper 现在可接收来自 BTN 服务器下发的脚本以提升基于云的检测防护能力,提高封禁的灵活和精确性 @Ghost-chu
- 需要手动在 “设置->基础设置->BTN” 开启 “启用脚本执行” 开关,此功能才会生效。请仅在可信 BTN 服务器上启用此功能。
- WebUI 现在可以进行堆内存转储 @Gaojianli
- BTN 能力列表页面现在可查看云端规则数量和规则版本号 @Gaojianli @Ghost-chu
- 其它用户体验改善
错误修复
- 【重要】优化了 IPMatcher 的CPU和内存占用,解决了困扰已久的规则过多时内存溢出的问题并大幅缩短了匹配 IP 时的 CPU 占用和匹配耗时,现在空载内存仅需要 92MB(GUI) @Ghost-chu @paulzzh
- 请注意:自 2024/11/06 后,旧版本(< 7.1.0) PBH 可能由于 IP 屏蔽列表的增长而耗尽内存,为了保证正常运行,请升级版本或者更改其最大堆内存
- 修复了当添加支持完整 PeerID 的下载器(如:BiglyBT/Azureus/Vuze、BitComet 或者 Deluge)时,查看 PeerID 饼图时完全不可读的问题 @Ghost-chu
- Windows GUI 的打开 WebUI 按钮现在能够自动填充 token 登录 WebUI
7.1.0 - 重要安全修复
此版本已被更新版本取代。
Caution
本版包含重要安全修复,不管出于任何理由,您都应该更新到此修复版本。
关键安全性修复
- 【重要】修复了因错误使用 ORM 框架导致潜在 SQL 注入的问题 @Ghost-chu @paulzzh
- 恶意攻击者可通过在查询参数中插入 SQL 片段,执行任意 SQL 查询
- 【重要】修复了登录接口的 POST 登陆方式没有覆盖暴力破解防护的问题 @Ghost-chu
- 恶意攻击者可能对登录接口发起暴力破解穷举 WebUI Token 以获取 WebUI 访问权限,并间接获取连接的下载器的 WebUI 权限
- 添加了
robots.txt
并拒绝任何搜索引擎索引并避免在搜索引擎中暴露,但依然可能被 Censys 等网络空间测绘引擎发现,建议使用防火墙保护 @Ghost-chu- 如果 PBH 部署在二级目录下,请自行管理
robots.txt
- 如果 PBH 部署在二级目录下,请自行管理
- 仅在登录阶段传递 Token,避免明文 WebUI Token 泄露
新功能
- 图表数据现在支持分下载器查看 @Gaojianli @Ghost-chu @paulzzh
- WebUI 现在支持自定义脚本编辑 @Gaojianli @Ghost-chu
- 通过编程的方式构建自己的反吸血逻辑
- 只有在局域网内直接访问 WebUI 才能添加和编辑脚本;通过互联网或者反向代理访问时,仅能查看脚本,不可添加修改编辑
- 安全警告:自定义脚本可执行任意代码,请仅添加来自可信来源的脚本
- 【重要】BTN 新增 “脚本规则” 规则类型,PeerBanHelper 现在可接收来自 BTN 服务器下发的脚本以提升基于云的检测防护能力,提高封禁的灵活和精确性 @Ghost-chu
- 需要手动在 “设置->基础设置->BTN” 开启 “启用脚本执行” 开关,此功能才会生效。请仅在可信 BTN 服务器上启用此功能。
- WebUI 现在可以进行堆内存转储 @Gaojianli
- BTN 能力列表页面现在可查看云端规则数量和规则版本号 @Gaojianli @Ghost-chu
- 其它用户体验改善
错误修复
- 【重要】优化了 IPMatcher 的CPU和内存占用,解决了困扰已久的规则过多时内存溢出的问题并大幅缩短了匹配 IP 时的 CPU 占用和匹配耗时,现在空载内存仅需要 92MB(GUI) @Ghost-chu @paulzzh
- 请注意:自 2024/11/06 后,旧版本(< 7.1.0) PBH 可能由于 IP 屏蔽列表的增长而耗尽内存,为了保证正常运行,请升级版本或者更改其最大堆内存
- 修复了当添加支持完整 PeerID 的下载器(如:BiglyBT/Azureus/Vuze、BitComet 或者 Deluge)时,查看 PeerID 饼图时完全不可读的问题 @Ghost-chu
- Windows GUI 的打开 WebUI 按钮现在能够自动填充 token 登录 WebUI
Docker
DockerHub: ghostchu/peerbanhelper:v7.1.0
阿里云国内镜像加速: registry.cn-hangzhou.aliyuncs.com/ghostchu/peerbanhelper:v7.1.0
本版已知问题
- 流量图表可能显示为空