Simple-Tracker / qBittorrent-ClientBlocker

一款适用于 qBittorrent/Transmission (Beta)/BitComet (Beta, Partial) 的客户端屏蔽器, 默认屏蔽包括但不限于迅雷等客户端. A client blocker compatible with qBittorrent/Transmission (Beta)/BitComet (Beta, Partial) which is prohibited to include but not limited to clients such as Xunlei.
MIT License
840 stars 20 forks source link

能不能对触发自动屏蔽的peer进行主动下载以探测对方客户端是不是真的有吸血行为 #68

Closed Trustedinstall closed 3 months ago

Trustedinstall commented 3 months ago

比如可以这样:根据对触发自动屏蔽的可疑客户端已上传的数据区块的数量,随机选取1~10个上传过的区块使用新的端口请求下载,如果是ipv6最好是能换一个新的ipv6地址去下载。如果对方没有回传数据或传输的数据校验有误(也可以允许一定的校验错误比例),则说明对方确实是吸血客户端甚至应该将ip直接ban掉。 如果吸血客户端想要绕过检测,就需要缓存已下载的所有区块数据并保持上传以应对随机的下载检测。从iknowwhatyoudownload.com这个网站可以发现这些吸血客户端的下载项目是相当的多,可见要绕过这个检测办法的存储和带宽成本是很大的,也算是强迫这些吸血客户端在下载期间保持做种了。 不知道qbittorrent有没有提供这方面的api?如果没有的话能不能让ClientBlocker使用libtorrent这个库来实现这个功能?

Simple-Tracker commented 3 months ago

感谢反馈!

  1. 没有;
  2. 复杂度太高, 暂不计划实现...;
  3. 对方可以将不同块放入内存或磁盘, 并"缓存"它们一段时间, 因此此方案可以提高攻击成本, 但不仅对自身和其它客户端形成了一定压力, 而且治标不治本 (另外注意: 并非所有客户端都可以接收主动连接, 只有拥有公网 IP 的客户端才能接收主动的入站连接);
Trustedinstall commented 3 months ago

感谢反馈!

  1. 没有;
  2. 复杂度太高, 暂不计划实现...;
  3. 对方可以将不同块放入内存或磁盘, 并"缓存"它们一段时间, 因此此方案可以提高攻击成本, 但不仅对自身和其它客户端形成了一定压力, 而且治标不治本 (另外注意: 并非所有客户端都可以接收主动连接, 只有拥有公网 IP 的客户端才能接收主动的入站连接);

原来是这样,不过这个功能对自己压力不大,因为只在触发自动封禁时才检测,反而是吸血端压力很大。不过客户端不能接入传入连接确实没想过。感谢