V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
arielherself
V2EX  ›  分享创造

远离 ratio 焦虑,我写了一个 PT 免费下载小工具

  •  
  •   arielherself ·
    arielherself · 5 小时 2 分钟前 · 235 次点击

    我入坑 PT 也快一年了,之前偶然读到了一篇博客,讲的是 PT 机制的几个有意思的漏洞。正好我对 BT 也不是很了解,就一路从 bencode 学到 tracker 协议,现在也算是对这块比较熟悉了。

    PT 只靠客户端汇报的 downloadeduploaded 来统计数据,而这些字段原本不是设计来限制 ratio 的,所以自然就留下了很多可以做文章的点。我就跟着博客作者的思路,实现了一个 tracker “代理”,当 BT 客户端向代理汇报的时候代理就会检查缓存里是否有这个种子的 peer 列表,如果有并且没过期就直接返回,否则向真实 tracker 发起一个“开始下载”的请求,得到 peer 列表并存储。这样就可以实现不计入下载量的效果。

    而且可能还有一个额外的好处,就是如果两个人下载同一个种子,但是通过不同的 PT 站,那么 peer 列表会被整合,让每个人都能连接到更多的 peer 。

    因为我不太会前端,所以网页做得比较简单,就一个按钮,把种子上传之后会自动修改并下载修改后的种子,然后添加到 BT 客户端就可以下载了。如果感兴趣可以试一试。

    网站: https://tracker.submy.org

    仓库: https://github.com/arielherself/btc

    11 条回复    2025-09-29 06:08:36 +08:00
    slowman
        1
    slowman  
       4 小时 50 分钟前
    真是敢想敢干, 不过向上汇报用同样的 IP, PT 站会看到吧
    不同的种子不同的用户会用同一个 IP 汇报
    arielherself
        2
    arielherself  
    OP
       4 小时 42 分钟前
    @slowman 这方面确实也有考虑,不过正好手头有个代理池,就套上了,目前应该是每个请求会更换 IP
    slowman
        3
    slowman  
       4 小时 34 分钟前
    种子跨站转种,后台都会改 info.source 导致 hash 不同,应该是不能匹配上的吧
    slowman
        4
    slowman  
       4 小时 25 分钟前
    你可以把种子里的 info.source 和 private 都干掉,保证不同站点的种子处理后一致
    还能用上 DHT PEX
    info.source 也往 tracker url 里塞,或者塞原种子 hash
    arielherself
        5
    arielherself  
    OP
       4 小时 24 分钟前
    @slowman 据我的观察有一些确实是相同的,但也确实有改 source 的情况。
    arielherself
        6
    arielherself  
    OP
       4 小时 22 分钟前
    @slowman 有道理,我之后把这个加上
    Oni
        7
    Oni  
       4 小时 16 分钟前 via Android
    Account Disabled
    Reason: Ghostleeching
    arielherself
        8
    arielherself  
    OP
       4 小时 4 分钟前
    @Oni 这确实就是 ghostleeching 。但由于它跟开始下载后删除任务的行为相似,所以在不过度使用的情况下,可能并不是很容易排查。我在多个站点进行过长期的测试,目前没有遇到问题。
    arielherself
        9
    arielherself  
    OP
       4 小时 1 分钟前
    说到 `downloaded` 和 `uploaded`,还有一个思路:虽然汇报虚假上传量会导致种子总下载不等于总上传,但是可以在站点找免费种子,然后以接近 1:1 的比例汇报虚假的下载量和上传量。而由于种子是免费的,这仍然使得账号的 ratio 增加。当然还需要注意其他的问题,比如需要找有人在下载的种子来进行操作、速度不能太快等。这也是一个经过测试的方法。
    felixcode
        10
    felixcode  
       1 小时 24 分钟前 via Android
    PT 站长:这就 ban 一拨
    elboble
        11
    elboble  
       41 分钟前 via Android
    本来就是个互助的事,何必要取巧。

    有时间研究这个,不如想办法突破运营商 qos 上行网间流量。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 22:49 · PVG 06:49 · LAX 15:49 · JFK 18:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.