pt吧 关注:205,403贴子:10,902,690

【211220】qb下载+转种tr快较版+IYUU Plus辅种教程原理篇

只看楼主收藏回复

一、前言
之前写了篇教程,PT工具之Docker全家桶+HTTPS详细配置教程:https://tieba.baidu.com/p/7652615810,主要讲述了使用Docker部署常用工具及反向代理上https,之前预告过还写一篇辅种教程合集的,故有了此篇教程,但是发现内容实在太多,这是第一篇原理篇,还有一份操作篇另起一文。


IP属地:北京1楼2021-12-20 16:01回复
    二楼自留


    IP属地:北京2楼2021-12-20 16:02
    收起回复
      三楼自留


      IP属地:北京3楼2021-12-20 16:03
      收起回复
        二、服务种类
        之前一直使用qBittorrent下载、保种,因为数量不多,除了内存占用较大没发现什么问题,只是后来使用IYUU Plus辅种后,大文件重新校验实在等待太漫长,所以换成了Transmission快较版,也就是快速校验版本,和跳过检查相比,原理就是抽检,所以速度快了不少。
        本次教程里面主要包含下面几个服务:
        qBittorrent
        Transmission快较版
        IYUU Plus


        IP属地:北京4楼2021-12-20 16:03
        回复
          三、原理解释
          刚把IYUU Plus的源码clone下来看了一下,下面是我理解的IYUU Plus转种+辅种流程。
          因为我不是写Web的,也不会PHP语言,所以理解的不一定对,如果理解错了,欢迎指正。


          IP属地:北京5楼2021-12-20 16:03
          回复
            1. 辅种
            首先,我们用qb去A站点去下载我们想看的电影,A站点会生成一个有我们passkey的种子文件,我们的qb就可以使用这个种子去下载电影了,但是去哪里下载呢,这就是tracker的作用,A站的tracker实时的告诉我们当前有哪些人在下这个文件和下载了多少,这个时候qb就可以用这些信息直接去连接正在下载的这些人的电脑,所以这是为什么需要公网IP的原因,因为你有公网IP这样其他想下载相同文件的人才能更快地连上你。
            当我们下载完成后,只有A站点知道你下载了这个文件,而且正在做种,也就是将这个文件提供上传给其他正在下载相同文件的用户,但是实际上B站点和C站点,他们也有一个和你这个一模一样的资源,你也想为B站点和C站点的用户提供上传,并且让B站点和C站点知道(因为这样才能计算魔力是不是),这个时候我们用A站点下载的文件,也为B站点和C站的用户做种,这个过程就叫辅种。
            但是怎么让B站点C站点知道你有这个文件呢,是不是只要我们去B站点和C站点下载相同文件的种子,然后跳过下载这个过程(因为这个文件你已经从A站点下载完成了),直接告诉B站点和C站点的服务器,这个文件我已经下完啦,现在可以做种了! 这个时候B站点和C站点下载这个文件的用户是不是也可以连上你,然后从你这边下载文件了。
            因上面有告诉B站点和C站点你已经有这个文件了的过程了,所以这时候B站点和C站点tracker和A站点一样,也会告诉你现在有哪些人在下这个文件和下载了多少,也可以为你计算上传量和魔力了是不是。
            从服务器的角度来看,B站点和C站点看你和A站点一模一样,都是你有这么一个文件,你可以为其他人做种,唯一的区别的就是辅种的站点省去了下载这个过程,所以,B站点和C站点不会计算你的下载量。


            IP属地:北京6楼2021-12-20 16:04
            回复
              2. 检验
              看完上面,我们是不是有一个疑问,怎么保证我从A站点和B站点和C站点的种子下载的是同一个文件呢,所以当我们下载完上B站点和C站的种子时,你想跳过下载这个过程,证明你已经有这个文件的过程,就是校验过程。
              种子文件会记录你这个文件有多少块,已经每一块对应的hash,检验文件就是把你本地的文件读一遍,每一块都算一遍,看看是否与种子记录的信息一致。
              一个种子里包含的信息示列:

              但是当你文件很大的时候,你要辅种的站很多的时候,是不是每个站都要校验一遍,非常耗时?所以这也是我选择Transmission快较版的原因,就是告诉tr,差不检查检查就行了,开头,中间,结尾(简单化描述)都抽检一下,都对的话,我们就认为文件一致,这样的话是不是会快很多。


              IP属地:北京7楼2021-12-20 16:04
              收起回复
                3. 转种
                其实上面的辅种操作,我们完全可以在一个下载器里面完成,比如qb下载,qb辅种,但是正因为我觉得太慢,换成了tr快较版。
                将qb里面的的种子,转移到tr里面,这个过程就叫做转种(当然,不局限这2个)。


                IP属地:北京8楼2021-12-20 16:04
                收起回复
                  四、IYUU1.辅种
                  那辅种的难点在哪里呢,是不是就是我怎么知道A站点的种子对应着B站点和C站点的哪一个种子呢?所以IYUU解决的第一个痛点就是他的服务器数据库记录着相同文件,在不同的站点分别对应着哪一个种子,运行辅种任务的时候,将种子的信息发给服务器,服务器返回给我们其他站的种子信息,然后再将其他站的种子直接发送给我们用来保种的下载器不就行了。
                  这里多说两句,实际上我们查询时,我们的IYUU客户端IYUU服务端发起查询请求,请求参数包含我们微信扫码生成的Token和种子文件的info_hash:


                  IP属地:北京9楼2021-12-20 16:05
                  回复
                    IYUU服务器返回查询结果,查询成功的json文件示列如下:

                    返回信息中的sid对应着是哪一个站点,torrent_id对应着这个种子在这个站点的id,info_hash你可以理解为这个种子的身份号。
                    我们本地的IYUU客户端,就根据返回的信息,以及我们设置的是否需要https,我们设置的passkey,id就是返回信息中的torrent_id,拼接我们的种子下载信息,最终拼接如下:
                    https://xxxxx.org/download.php?https=1&id=377467&passkey=your_passkey
                    普通站点使用这个连接就可以直接下载种子了,所以我们直接将这个链接发给tr,tr使用链接添加种子。
                    但是有的站点毕竟严格,这样是无法直接下载的,必须要用验证cookie,所以这是有的站点需要配置cookie的原因,而这个时候我们模拟浏览器将这个种子文件给下载下下来,将这个种子文件直接推给tr就行了,这也是上图中B站点和C站点的区别。
                    第二个痛点就是批量操作,就算你知道其他站的种子是哪个,当你的种子和站点数量上去的时候,是不是就要操作m*n次?IYUU就是帮我们把下载种子,推送这个操作给自动完成了。


                    IP属地:北京10楼2021-12-20 16:06
                    回复
                      2. 转种
                      当我们使用qb下载的时候,是不是qb管理着这个种子文件着这个种子对应的电影的文件夹,但是我们想把这个种子让tr来做种的时候,tr是不是也需要知道这个信息。
                      IYUU做的就算要把这个种子和个种子对应的电影的文件夹传给tr,然后让tr去连接站点的tracker,告诉服务器,这个种子和他对应的文件我有呢,可以连接我进行下载!这个时候,我们的转种操作是不是就已经完成了,种子和他所存放的这个文件就是接力棒,qb将这个接力棒递给了tr。
                      这里多说一句,是不是选项里面有一个是否删除原种子,因为和接力的区别是这根接力棒是可以复制的,等于不删除的话,qb和tr手里是不是都有一根棒子,这个时候任一客户端都是可以做种的,但因为干的是同一件事,我们的电脑资源是有限的,这个事情让一个人干就行了,所以转种成功后,可以在qb里删除原种子。
                      但是不建议自动删除,因为万一你设置有误,tr没有成功,qb里的种子也删除了,是不是所有的种子都没有了。而且切记不要勾上删除硬盘上的文件,因为我们只是想让qb不要管理这些种子了,但是这些种子对应的文件还是需要的,因为一旦删除文件,tr那边就会发现文件没有了,然后报错。


                      IP属地:北京11楼2021-12-20 16:07
                      回复
                        绑定


                        IP属地:四川来自iPhone客户端12楼2021-12-20 16:43
                        回复
                          已收藏


                          IP属地:中国香港来自iPhone客户端13楼2021-12-20 16:46
                          回复
                            绑定,回家慢慢学习


                            IP属地:北京来自Android客户端14楼2021-12-20 16:47
                            回复
                              不错 ,绑定,楼主的几篇教程都很有用


                              IP属地:安徽15楼2021-12-20 16:55
                              回复