反吸血没有屏蔽不报告进度的吸血客户端

上传了好久都没有报告进度,一直是 0.0%,BitComet 也没有屏蔽,吸了至少 491.6 MB 血。

1個讚

反吸血只对下载任务起效果,图中看到你是100%完成度的种子,种源设计之初就是给别人吸血用的

做种任务如果想要屏蔽特定的客户端,可以封禁ip地址
如果是下载任务,直接启用反吸血并且设置为自动就可以了,可以完美实现0误封精准封禁吸血者
如果是上传任务,针对ip地址目前只能通过Windows内置的系统防火墙实现,设置对应的进程名然后拉黑需要封禁的ip
也可以直接在高级设置,设置peerid封禁,设置客户端名称封禁
也可以直接在选项BT下载里,客户端列表中启用白名单,仅允许连接勾选的客户端,未勾选的客户端将会被封禁

1個讚

不过如果不阻止的话,可能会有恶意客户端不停下载,占用带宽,忘了在哪个论坛看到有帖子说有人挂 PT,为了平衡上传/下载流量,开发了个 Traffic-consumer 还是叫什么的软件,不停 BT 下载且不写入硬盘。
对于 NAS 来说更需要能自动化屏蔽,有的人开着 NAS,可能挂着 BT 做种就不管了,这样会白白浪费上传带宽和流量。

今天又出现了客户端名称为 n/a(空)的 peer,这玩意还有一个非常重要的特征:无论上传多少,进度永远是 0%(不报告/谎报进度),比特彗星在默认情况下就应该屏蔽这样的 peer。
反吸血只对下载任务起效果这点很糟糕,应该像 eMule 的 DLP 一样,对下载、上传都起作用。

BT协议设计之初就是为了快速分享文件,没有排队系统,这是要技术倒退去回归等待排队吗
白名单已有,但是根据白名单来屏蔽不是根本解决办法,攻击者可以轻松伪造任意客户端名称来过白,所以应该设计一套新算法来针对种子任务反吸血(虽然BT协议里说明了种子就是专门用于被他人吸血用的)

GitHub - PBH-BTN/PeerBanHelper: 自动封禁不受欢迎、吸血和异常的 BT 客户端,并支持自定义规则。PeerId黑名单/UserAgent黑名单/IP CIDR/假进度/超量下载/进度回退/多播追猎/连锁封禁/伪装检测 支持 qBittorrent/Transmission/Deluge/BiglyBT/Vuze(Azureus) 这个项目就提到了我说的不报告/谎报进度的行为。

虚假进度检查器

此模块可谓是 PeerBanHelper 的灵魂,有助于您在不更新规则的情况下,发现那些伪装过的异常客户端。其大体原理如下:

大部分吸血客户端都不会正常上报下载进度(如:进度一直是0%,或者每次连接进度都不同),虚假进度检查器通过我们上传给此对等体的数据量,计算此对等体的最低真实进度,如果对等体汇报的进度比最低真实进度差别过大,或者给此对等体的总上传量超过了种子本身的体积很多,判定为异常客户端

然而它并不支持 BitComet。

1個讚

可以参考这个方案:链接

还有一种检测方法:对于同时连接了 IPv4、IPv6 的客户端,如果用户 ID 相同,都在下载,都有下载速度,进度却相差很大(比如一个 1%,一个 3%),且最后报告进度的时间间隔不大(避免由于 IPv4 或 IPv6 连接中的一个断开导致误报),那么可以认为是吸血客户端。这个方法可以实现自动化。

不过似乎大部分吸血客户端报告进度是一致的,所以检测能力有限。

1個讚


这张图里 39.75.. 和 2408:*:0001 就是典型例子

这不是排队的问题,可以不模仿 eMule 排队,保持现状嘛。

虽然BT协议里说明了种子就是专门用于被他人吸血用的

只能说“理想很丰满,现实很骨感”,谁会想到今天会有刷下行流量这种操作呢?就像 eMule 设计之初也是没有考虑吸血的问题,甚至官方版 eMule 一直都没有 DLP(动态反吸血保护)。

屏蔽 IP 以外,还非常需要有根据行为自动化检测吸血的功能(针对上传的,即使协议发布时没有明确规定是吸血行为,因为吸血行为是会不断升级的)。一些已知的恶意行为(除了前面提到的)

  1. 虚假的客户端版本(比如当前(20240821)比特彗星只有 2.08,我却在列表中看到有 2.09)。注意:可能只能检测低于当前版本的版本号,否则如果客户端没有及时更新,会导致误拦截,为此需要内置一个列表,记录所有已知客户端的 ID(比如 TR2990,即 Transmission 2.99),此外像 qBittorrent Enhanced Edition,它的版本号、客户端 ID 是和 qBittorrent 不一样的。
  2. 客户端 ID 和报告的客户端名称不同,甚至是随机字符串,比如 BitComet 2.09 应该是 BC0209,如果不是,大概率是有问题的,如果是随机字符串,几乎 100% 有问题,如果再加上谎报下载进度,直接封禁不会错。
  3. 客户端 ID 格式不正确,比如 BitComet 2.09 应该是 BC0209, 如果是 BC2090 则是有问题的。注意:有些客户端可能不是两个字母+4个数字,比如 Tixati 3.28 是 TIX0328,不过我不知道这个是不是吸血客户端。

开发者,比特彗星的WEB网页很久没更新了。太原始了。。。

要给BiComet提建议的话可以去置顶帖,每个版本的测试版帖子都是用来反馈bug提建议之类的,如果你说的是WebUI的话,2.09版本就是着重完善WebUI的

在搞了 在搞了(