【原理篇】qBittorrent下载+转种Transmission快校版+IYUU Plus辅种教程

2023-05-16

一、前言

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

二、服务种类

之前一直使用qBittorrent下载、保种,因为数量不多,除了内存占用较大没发现什么问题,只是后来使用IYUU Plus辅种后,大文件重新校验实在等待太漫长,所以换成了Transmission快校版,也就是快速校验版本,和跳过检查相比,原理就是抽检,所以速度快了不少。

本次教程里面主要包含下面几个服务:

  • qBittorrent
  • Transmission快校版
  • IYUU Plus

三、原理解释

刚把IYUU Plus的源码clone下来看了一下,下面是我理解的IYUU Plus转种+辅种流程。

因为我不是写Web的,也不会PHP语言,所以理解的不一定对,如果理解错了,欢迎指正。

reseed

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站点不会计算你的下载量。

2. 检验

看完上面,我们是不是有一个疑问,怎么保证我从A站点和B站点和C站点的种子下载的是同一个文件呢,所以当我们下载完上B站点和C站的种子时,你想跳过下载这个过程,证明你已经有这个文件的过程,就是校验过程。

种子文件会记录你这个文件有多少块,已经每一块对应的hash,检验文件就是把你本地的文件读一遍,每一块都算一遍,看看是否与种子记录的信息一致。

一个种子里包含的信息示列:

seed_info

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

3. 转种

其实上面的辅种操作,我们完全可以在一个下载器里面完成,比如qb下载,qb辅种,但是正因为我觉得太慢,换成了tr快校版。

将qb里面的的种子,转移到tr里面,这个过程就叫做转种(当然,不局限这2个)。

四、IYUU

1.辅种

那辅种的难点在哪里呢,是不是就是我怎么知道A站点的种子对应着B站点和C站点的哪一个种子呢?所以IYUU解决的第一个痛点就是他的服务器数据库记录着相同文件,在不同的站点分别对应着哪一个种子,运行辅种任务的时候,将种子的信息发给服务器,服务器返回给我们其他站的种子信息,然后再将其他站的种子直接发送给我们用来保种的下载器不就行了。

这里多说两句,实际上我们查询时,我们的IYUU客户端IYUU服务端发起查询请求,请求参数包含我们微信扫码生成的Token和种子文件的info_hash:

iyuu_get

IYUU服务器返回查询结果,查询成功的json文件示列如下:

{
    "ret": 200,
    "data": [
        {
            "sid": 3,
            "torrent_id": 377467,
            "info_hash": "a444850638e7a6f6220e2efdde94099c53358159"
        },
        {
            "sid": 7,
            "torrent_id": 35538,
            "info_hash": "cf7d88fd656d10fe5130d13567aec27068b96676"
        }
    ],
    "msg": "",
    "version": "1.0.0"
}

返回信息中的sid对应着是哪一个站点,torrent_id对应着这个种子在这个站点的idinfo_hash你可以理解为这个种子的身份号。

我们本地的IYUU客户端,就根据返回的信息,以及我们设置的是否需要https,我们设置的passkeyid就是返回信息中的torrent_id,拼接我们的种子下载信息,最终拼接如下:

https://xxxxx.org/download.php?https=1&id=377467&passkey=your_passkey

普通站点使用这个连接就可以直接下载种子了,所以我们直接将这个链接发给tr,tr使用链接添加种子。

但是有的站点毕竟严格,这样是无法直接下载的,必须要用验证cookie,所以这是有的站点需要配置cookie的原因,而这个时候我们模拟浏览器将这个种子文件给下载下下来,将这个种子文件直接推给tr就行了,这也是上图中B站点和C站点的区别。

第二个痛点就是批量操作,就算你知道其他站的种子是哪个,当你的种子和站点数量上去的时候,是不是就要操作m*n次?IYUU就是帮我们把下载种子,推送这个操作给自动完成了。

2. 转种

当我们使用qb下载的时候,是不是qb管理着这个种子文件着这个种子对应的电影的文件夹,但是我们想把这个种子让tr来做种的时候,tr是不是也需要知道这个信息。

IYUU做的就算要把这个种子和个种子对应的电影的文件夹传给tr,然后让tr去连接站点的tracker,告诉服务器,这个种子和他对应的文件我有呢,可以连接我进行下载!这个时候,我们的转种操作是不是就已经完成了,种子和他所存放的这个文件就是接力棒,qb将这个接力棒递给了tr。

这里多说一句,是不是选项里面有一个是否删除原种子,因为和接力的区别是这根接力棒是可以复制的,等于不删除的话,qb和tr手里是不是都有一根棒子,这个时候任一客户端都是可以做种的,但因为干的是同一件事,我们的电脑资源是有限的,这个事情让一个人干就行了,所以转种成功后,可以在qb里删除原种子。

但是不建议自动删除,因为万一你设置有误,tr没有成功,qb里的种子也删除了,是不是所有的种子都没有了。而且切记不要勾上删除硬盘上的文件,因为我们只是想让qb不要管理这些种子了,但是这些种子对应的文件还是需要的,因为一旦删除文件,tr那边就会发现文件没有了,然后报错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【原理篇】qBittorrent下载+转种Transmission快校版+IYUU Plus辅种教程 的相关文章

  • 介绍一款非常好用的截图软件-《Snipaste》

    目录 Snipaste介绍 Snipaste下载 Snipaste功能介绍 总结 Snipaste介绍 非常好用的截图软件 xff0c 一句话 xff0c 非常非常好用 xff0c 比你用过任何的截图软件都好用 xff0c 不好用你顺着网线
  • 推荐一款卸载软件的小工具-《UninstallToo》

    目录 UninstallToo介绍 UninstallToo下载 UninstallToo使用 总结 UninstallToo介绍 Uninstall Tool 是一款可以用来替代 添加 删除程序 的工具 它允许您显示隐藏的安装程序 xff
  • 【MySQL】下载(超详细教程)

    目录 First 下载 Second 安装 Third 检测是否安装 Last 总结 First 下载 首先 xff0c 我们一步一步跟着我的操作来 xff0c 不能越步骤 xff0c 很容易报错 xff0c 就芭比Q了 第一步直接进入这个
  • 【ASP. Net Mvc】毕设之【在线考试项目】

    前提 这个项目是毕设 xff0c 是用asp net mvc和SQL server数据库完成的 xff0c 分为前端和后台 后台功能 xff1a 老师添加试卷 xff0c 上传试卷 xff0c 审核试卷 xff0c 管理学生 前端功能 xf
  • 继承——Person为父类,Teacher和Student都继承Person

    一 题目 按照要求完成以下操作 创建Person xff0c Teacher xff0c Student类 其中 xff0c Person为父类 xff0c Teacher和Student都继承Person Person中有属性 xff1a
  • c语言求数组中10 个整数中最大值

    c语言求数组中10 个整数中最大值 要求在数组中输入10个整数 xff0c 输出最大值 这里先用一种简单的方法 xff0c 创建一个变量max xff1d 0 xff0c 用max与这10个数依次比较 xff0c 如果比max大就把它的值赋
  • c语言详细解答辗转相除法求两个数的最小公倍数

    C语言详细解答辗转相除法求两个数的最小公倍数 1 辗转相除法的用法 最大公约数 辗转相除法是用一个大的数除以一个小的数 xff0c 如果有余数 xff0c 就用被除数 余数 xff0c 如果还有余数就继续用 xff08 上一个公式的 被除数
  • Linux 嵌入式 笔记 NFS网络文件系统

    文章目录 Linux 嵌入式 笔记 提示 xff1a 写完文章后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 文章目录前言一 nfs 相关命令二 原理1 第一点2 第二点 总结 前言 注意 xff1a
  • linux下cpu锁定频率以及频率设置

    linux下cpu锁定频率以及频率设置 环境如下 ubuntu22 04cpu为5700g 前期准备 使用工具为 xff1a cpufrequtils span class token function sudo span span cla
  • CentOS7安装xrdp(windows远程桌面连接linux)

    前提 CentOS安装桌面 xff0c 如果无桌面 xff0c 请执行 xff1a yum y groups install 34 GNOME Desktop 34 startx 方法一 配置源 yum install epel y 安装x
  • Linux CPU超频设置

    查看当前cpu运行频率 xff1a cat proc cpuinfo grep i cpu mhz 开始设置 xff1a cpupower c all frequency set g performance 或者 cpupower freq
  • Ozone调试经验总结

    如何查看内存 view gt memory打开内存窗口即可查看 如何读写内存 Target ReadU32 addr Target WriteU32 addr value 遇到不会的 xff0c 可以使用help命令找找看
  • 元宇宙创作者必备技能TouchDesigner

    元宇宙的资源清单又更新啦 github com shadowcz007 awesome metaverse 感谢ML211 提供线索metaworld app 感谢ML1462 提供线索 The Sims Resource opus Git
  • 栈的入栈和出栈的顺序规律

    栈的入栈和出栈的顺序规律是先进后出 xff0c 所以出栈的可能数目跟入栈的可能排列数目是一致的 a的出入有2中可能 xff0c b的出入有2种可能 xff0c c的出入有2种可能 xff0c d只需要关系入 xff0c 只有一种可能 所以出
  • TCP和UDP协议发送数据包的大小

    在进行UDP编程的时候 我们最容易想到的问题就是 一次发送多少bytes好 当然 这个没有唯一答案 xff0c 相对于不同的系统 不同的要求 其得到的答案是不一样的 这里仅对像ICQ一类的发送聊天消息的情况作分析 xff0c 对于其他情况
  • Nodejs开发:如何让node app的程序一直运行?

    情境 运行nodejs的程序 xff0c 使用命令 xff1a node xxx js xff0c 但是关掉终端 xff0c 程序也关闭了 xff0c 如何让node app的程序一直运行 xff1f 解决 1 安装forever npm
  • Godot基础教程02:全都是节点

    在这里先劝退一波人 xff1a 本教程只会涉及2D内容 xff0c 不会涉及3D内容 创建节点 接上一章 xff0c 在左侧的场景面板中 xff0c 可以看到 xff1a 由于本教程只讲2D内容 xff0c 所以这里我们应该选择2D场景 x
  • docker安装gitlab-ce镜像,使用其他端口,亲测可用

    首先鄙视一下那些直接复制粘贴当自己博文的 xff0c 误导别人 xff0c 害我改了好久T T 安装步骤 xff1a 创建数据目录 mkdir p data gitlab config mkdir p data gitlab logs mk
  • iOS 录音,播放,转码MP3,上传语音文件

    语音文件 AVAudioRecorder recorder NSTimer timer NSString urlPlay BOOL isPlay pragma mark 61 61 61 61 61 61 61 61 61 语音文件 61
  • CentOS使用yum安装MySQL5.7报检索密钥错误解决方法

    在CentOS上使用yum安装MySQL时检索密钥错误的解决方法 参考 使用yum安装MySQL时报错 yum y install mysql mysql server yum y install mysql community serve

随机推荐

  • 安装django

    使用pip安装 pip install django 61 61 span class hljs string 39 1 8 39 span 检查django版本 python c span class hljs string 39 imp
  • python,pycharm报错 ModuleNotFoundError: No module named PIL最简单的解决方法

    python pycharm报错 ModuleNotFoundError No module named 39 PIL 最简单的解决方法 1进入cmd命令 2输入pip install Pillow即可 如图 如果对你有帮助 xff0c 请
  • docker中使用Ubuntu中文乱码问题解决

    一 前言 最近在docker中使用Ubuntu作为编译环境 xff0c 遇到了中文乱码情况 xff0c 分为不同的解决场景 xff0c 下面分别给出解决方法 下面的方法都不是将系统的语言修改为中文 xff0c 而是能够正确显示和输入中文 g
  • 在docker的centos镜像中使用systemctl启动slapd服务报错

    前言 使用docker搭建服务环境 xff0c 拉取了一个Centos7镜像 xff0c 在镜像中使用systemctl命令启动sladpd服务 xff0c 已经使用 privileged 61 true启用特权模式 xff0c 但还是报错
  • 逻辑卷管理器(LVM)

    一 什么是LVM xff1f LVM Logical Volume Manager 逻辑卷管理是在Linux2 4内核以上实现的磁盘管理技术 它是Linux环境下对磁盘分区进行管理的一种机制 现在不仅仅是Linux系统上可以使用LVM这种磁
  • Ubuntu使用Docker搭建编译环境完整教程

    前言 因为只有一台编译服务器 xff0c 但是我们需要在服务器上搭建不同的编译环境 xff0c 不同的编译环境区别巨大 xff0c 甚至可能需要是不同的Ubuntu版本 xff0c 所以我们可以使用Docker xff0c 搭建不同的编译环
  • 最新Gerrit2.16.15版本用户指南-中文文档

    这是为Gerrit最终用户准备的Gerrit指南 它说明了标准的Gerrit工作流程以及指导用户可以根据个人喜好来设置并使用Gerrit 为了更好地理解本指南 xff0c 读者最好了解Git xff0c 并熟悉基本的git命令和工作流程 什
  • Ubuntu 14.04安装Sambaf服务并设置为开机启动

    1 需求 我的需求是将Ubuntu服务器上的用户目录 xff08 比如 home yasin xff09 映射给Windows访问 xff0c 这样就可以在Windows下编辑代码 xff0c 修改完成后在Linux环境编译 2 安装 sp
  • Git Commit message编写指南

    一 Commit message 的作用 格式化的Commit message xff0c 有几个好处 1 提供更多的历史信息 xff0c 方便快速浏览 比如 xff0c 下面的命令显示上次发布后的变动 xff0c 每个commit占据一行
  • Windows下写代码并使用 SSHFS快速部署到 Linux 进行调试

    前言 很多时候 xff0c 因为不熟悉vim或者更喜欢Windows下的一些IDE xff0c 我们需要在Windows写代码并部署到Linux服务器上进行调试 相信很多程序员都有这个需求 xff0c 也有很多自己的解决方法 常见的有使用G
  • Android开发——java.lang.SecurityException: Permission Denial

    记录一个在日常开发当中遇到的错误 xff1a java lang SecurityException Permission Denial startForeground from pid 61 2345 uid 61 10395 requi
  • OpenWrt打开和关闭指定端口shell脚本

    最近使用小米路由器插件Misstar Tools xff0c 因为它在小米路由器3上使用的端口为1024 xff0c 而且没有密码 xff0c 所以把这个端口暴露在公网上就非常不安全 但有时候我们确实就想在公网上使用这个插件 xff0c 比
  • Windows使用阿里云RAM访问控制API实现自建DDNS动态域名解析

    前言 因为最近将家里的电信宽带换成了公网IP xff0c 在二手鱼上面淘了点破烂 xff0c 搭建了一些服务 xff08 比如NAS xff09 而电信的公网IP并不是固定的 xff0c 要想持续稳定的访问到搭建的服务 xff0c 我们可以
  • 使用rsync每天自动进行远程增量备份的shell脚本

    rsync incremental backup 可配置的bash脚本 xff0c 使用rsync将数据的增量备份发送到本地或远程目标 项目地址 xff1a https github com pedroetb rsync increment
  • 使用docker-compose搭建Nextcloud个人云盘并开启https教程

    一 前言 之前一直采用LANMP直接搭建服务 xff0c 但后来使用docker后 xff0c 搭建和迁移数据都很方便 xff0c 所以将服务都容器化 下面介绍一下使用docker compose搭建Nextcloud xff0c 并且使用
  • 使用docker-compose搭建WordPress网站并开启https教程

    一 前言 之前一直采用LANMP直接搭建服务 xff0c 但后来使用docker后 xff0c 搭建和迁移数据都很方便 xff0c 所以将服务都容器化 下面介绍一下使用docker compose搭建WordPress网站 xff0c 并且
  • 使用Docker搭建自己的在线密码管理器软件-Bitwarden

    前言 因为现在网络安全问题愈发严重 xff0c 黑客经常通过互联网已泄露的用户和密码信息进行撞库攻击 xff0c 而且很多用户在不同网站使用的是相同的帐号密码 xff0c 所以为不同的网站设置不同的密码就非常重要 但密码不同尤其是使用随机生
  • 如何在Docker容器里开启fail2ban防止SSH暴力破解

    一 前提介绍 Docker容器里开启了SSH服务 xff0c 但是发现有大量的暴力破解进程 xff0c 需要使用fail2ban防止SSH暴力破解 xff0c 将攻击的IP拉黑 二 原因分析 但是直接安装fail2ban xff0c 和没有
  • PT工具之Docker全家桶+HTTPS详细配置教程

    一 前言 因为使用Docker的隔离性 可移植性比较好 xff0c 所以自己使用的服务一般都使用Docker部署 xff0c 这样每次迁移时将挂载的目录备份即可 xff0c 不需要考虑机器的版本和兼容性 xff0c 更换设备时基本可以做到一
  • 【原理篇】qBittorrent下载+转种Transmission快校版+IYUU Plus辅种教程

    一 前言 之前写了篇教程 xff0c PT工具之Docker全家桶 43 HTTPS详细配置教程 xff0c 主要讲述了使用Docker部署常用工具及反向代理上https xff0c 之前预告过还写一篇辅种教程合集的 xff0c 故有了此篇