比特派官方网址是多少|bittorrent

作者: 比特派官方网址是多少
2024-03-07 17:23:54

专业磁力种子下载工具 qBittorrent 使用教程 - 知乎

专业磁力种子下载工具 qBittorrent 使用教程 - 知乎首发于利器切换模式写文章登录/注册专业磁力种子下载工具 qBittorrent 使用教程crystal​前言种子和磁力链接是现在使用最为广泛的资源下载形式了,但是资源找到了,如何顺畅地下载下来也是个问题。qBittorrent 是一款开源免费的种子和磁力链接下载工具,支持 Windows、Mac 和 Linux,且功能非常强大。由于国内大部分用户并没有公网 IP,直接使用可能会有个很现实的问题——下载没速度!本文就介绍下 qBittorrent 从安装到使用的详细教程。qBittorrent 简介:下载、安装和使用qBittorrent 支持使用种子文件和磁力链接下载,包括了做种、tracker 编辑、下载优先级设置、RSS 订阅等功能非常丰富。官网:qBittorrent Official Website大家别光拿资源啊,都看到这里了,点个赞再走支持下作者呗 O(≧口≦)O请仔细阅读全文,一些常见的问题文中已经有说明了的!!!# 下载 & 安装进入官网,Download 页面,选择适合自己的版本下载。双击安装,一路点击 “下一步” 完成安装即可,无需特别调整。安装完启动时会弹出一个声明,“同意”。# 添加下载点击左上角两个图标,分别添加磁力链接或种子。重点! 添加磁力链接可能会一直显示 “正在检索元数据…” 很久,建议全部使用种子文件下载,比较快。如果只有磁力链接,可以先将其添加到迅雷极速版下载 -> 右键 -> 另存为种子文件。# 界面介绍主下载界面Trackers 和 用户 - 显示资源的连接和下载情况内容 - 资源内文件管理和进度qBittorrent 高级设置及使用教程安装完成后首次打开需要设置下,以后直接使用即可。# 路由器开启 UPnP / NAT-PMP 功能大多数用户都是内网网络,连接不上节点造成下载没速度,虽然有时也能用,但速度有限。路由器开启端口映射可以改善资源连接情况,热门资源可以满速下载。查看说明书登陆路由器后台,在设置中找到 UPnP/NAT-PMP 选项,开启并保存,然后重启。ps. 现在比较新的路由器有的找不到该选项,一般都会默认开启,具体可以询问下客服。# 添加 trackers 优化下载速度(重要!)添加 trackers 可以帮助我们连接到更多的资源节点,解决下载没速度的问题,给下载加速,是必备操作!可以在搜索引擎和 GitHub 中搜索 trackers list 获取列表,添加到 qBittorrent 中。trackers 是用来优化下载速度的,多多益善。复制 trackers 们打开 qBittorrent -> 工具 -> 选项 -> BitTorrent,下拉到末尾,将 trackers 粘贴进输入框,并勾选 “自动添加以下 trackers 到新的 torrents”,OK。粘贴进 qBittorrent 中建议每天使用前都先更新 trackers 一次。也可以在 Trackers 界面通过右键 -> 添加新的 tracker。# 连接 DHT 节点软件底部状态栏有一个 “DHT 节点”,连接上后可以通过 DHT 网络进行下载,改善下载情况。开启软件后会自动连接,连上 DHT 节点需要一定时间,连上后尽量不要关闭客户端,因为每次重启都要重新连接。连不上可以进入选项 -> 连接 -> 点随机,修改下监听端口,建议使用高位端口,也可以勾选 “在每次启动时使用不同的端口”。# 调整下载优先级qBittorrent 可以对文件的优先级进行调整,优先下载级别更高的文件。在 内容 界面,右键选择文件 -> 优先。Tips(常见问题)1、状态栏的 “插头” 是黄色的(不是绿色):不影响下载,只有文件有上传了才会变绿。2、添加磁力链接,qBittorrent 一直显示 “正在下载元数据”:这个最常见了,相当于在等待下载种子信息。强烈建议使用种子文件进行下载,就不会出现这个了。3、连不上 DHT 节点:先下一个热门种子试试,DHT 涨起来了再下载。4、理论上 trackers 和 DHT 网络有一种连上了在工作,就有速度。还没速度查看下用户、种子、trackers 等的连接情况,如果都为 0 可能是死链,建议换热门的资源。5、磁力种子的下载速度依赖于资源数量和广大用户的上传做种,上传分享的人越多,速度越快。6、建议下载完后不要急着移除任务,上传做种,可以设置下上传速度或时间,原因就是上一条。结语qBittorrent 的使用方法和常见问题等上面基本都介绍到了,看起来可能有点麻烦,但只要第一次使用时设置好就行了,以后打开直接添加任务使用即可。其它的如做种、种子搜索等功能根据提示操作就好,不再介绍。常见的还有 uTorrent、BitComet 等,都是纯正的 BT 下载软件,功能上也差不多。大家别光收藏啊,码文不易,都看到这里了,点个赞再走呀 ╰( ̄▽ ̄)╭ ~编辑于 2023-04-19 16:56・IP 属地河南软件下载工具互联网​赞同 6174​​364 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录利器优质应用软件、网站和工具推荐,实用技巧、教程

下载 BitTorrent Classic Torrent 客户端

itTorrent Classic Torrent 客户端产品查看所有Torrent 下载器BitTorrent WebBitTorrent WebBitTorrent ClassicBitTorrent Android加密BitTorrent TokenBitTorrent SpeedBitTorrent File System内容实用程序BitTorrent RemoteMore ProductsBTT帮助语言English中文(简体)中文(繁體)DeutschEspañolFrançaisहिन्दीItaliano日本語한국어NederlandsPolskiPortuguês (Brasil)PortuguêsРусскийTagalogTürkçe产品BTT帮助语言查看所有BTT is now available onAvailable to U.S users, you can purchase BTT in USD or EUROIncrease your BTT balance, leverage it within the BitTorrent Speed AppDrive faster download speedsLearn more>查看所有交易所>感谢下载。BitTorrent Classic等待下载完成。*运行 BitTorrent.exe, 进行安装。安装完成后, BitTorrent Classic 即会运行。 * 如果您的下载未自动启动, 请 重试。您的设备与 Windows 版 BitTorrent Web 不兼容。是否要下载 Windows 版 BitTorrent Web?[是][不,请让我从该页面继

BitTorrent Classic | 原始桌面版 Torrent 客户端

orrent Classic | 原始桌面版 Torrent 客户端产品查看所有Torrent 下载器BitTorrent WebBitTorrent WebBitTorrent ClassicBitTorrent Android加密BitTorrent TokenBitTorrent SpeedBitTorrent File System内容实用程序BitTorrent RemoteMore ProductsBTT帮助语言English中文(简体)中文(繁體)DeutschEspañolFrançaisहिन्दीItaliano日本語한국어NederlandsPolskiPortuguês (Brasil)PortuguêsРусскийTagalogTürkçe产品BTT帮助语言查看所有BTT is now available onAvailable to U.S users, you can purchase BTT in USD or EUROIncrease your BTT balance, leverage it within the BitTorrent Speed AppDrive faster download speedsLearn more>查看所有交易所>BitTorrent Classic原始版 desktop torrent 应用快速从桌面进行 torrent 批量下载高级自定义,适合 torrent 下载 工具老手安装文件体积较小,资源占用少 免费下载 功能功能BitTorrent Classic Safe Torrenting 软件功能批量下载 torrentBitTorrent Classic 是批量 torrent 下载器,可帮助您同时下载多个文件。优先快速下载正在下载多个 torrent?向特定 torrent 分配更多带宽,使其下载速度更快。节省网络资源设置下载/上传速度限制,释放网络资源,供其他任务使用。远程管理 torrent使用远程功能,从 Android 版 BitTorrent 或在任意设备上通过浏览器添加 torrent。了解更多避免慢速下载下载之前和下载过程中,快速检查 torrent swarm 的状况。调度最佳时间使用调度程序,为 torrent 程序指定最佳时间,用于下载和 torrent 做种。使用 RSS 自动下载设置 RSS 订阅源,自动从您喜爱的站点下载 torrent。支持 Windows XP 及以上版本BitTorrent Classic 是最好的 Windows 10 种子客户端,但同时也支持 XP、Vista 以及 Windows 7 和 8 版本。对比对比BitTorrent Classic 各个版本对比PRO+VPN for Classic在线隐私 $69.95年 马上购买 WEB CLASSIC 包含 Pro 版所有功能1 年 CyberGhost VPNVPN 可同时在 5 台设备上使用一流的在线隐私保护provpnBullet5最热门新PRO for Classic安全的Torrent下载 $19.95年 马上购买 或免费试用 14 天 WEB CLASSIC 阻止恶意软件无广告,无杂讯内置文件转换媒体播放器高级支持AD-FREE for Classic无干扰 $4.95年 马上购买 WEB CLASSIC 占用带宽较少下载更简便高级支持BASIC for Classic免费 Torrent 应用 免费  马上下载 原始版 Torrent 应用basicBullet2basicBullet3详细了解 BitTorrent Classic 高级产品。BitTorrent Classic/ 常见问题BitTorrent 的工作原理?BitTorrent 是点对点通信协议,用于通过互联网高效发送所有类型的文件,无论大小。如需使用该协议发送或接收文件,则需要使用 BitTorrent Classic 等安全的流下载软件。由于全世界的家用计算机上安装了超过 1 亿个活跃 torrent 程序,该协议可以从多个接收人有效地将文件分发到多个下载器。分发的所有文件均被分割为许多文件碎片,最终可组成完整的文件。该进程结束后,可以将相同的碎片做种,使之成为其他下载器的资源。该协议通过这种方式成为由数百万活跃 torrent 客户端组成的分散式生态系统。如果您需要高级配置以及 torrent 文件批量下载功能,BitTorrent Classic 绝对是最佳的桌面版 torrent 软件。我可以使用 BitTorrent 做些什么?如需通过 BitTorrent 协议发送或接收文件,您需要 Web 版或桌面版 torrent 客户端,例如 BitTorrent Classic。找到要下载的 torrent 文件后,您可单击或将其拖拽到您的免费 torrent 下载软件中。由于该协议得益于全球家用计算机上安装的数亿计活跃 PC torrent 程序,因此可以快速高效地将文件从许多接收人分发到您的家用计算机。如果您让 torrent 程序保持运行,可以将从他人那里收到的相同的文件做为种子,并在其他人下载时与之共享。什么是做种?做种即为文件分享。但是,在做种之前,您需要一个 BitTorrent 客户端。某个特定文件的首个上传者即该文件的种子。下载器也称为对等程序,可以下载文件,然后充当其他人的种子。由于全世界有数以亿计的用户使用活跃 torrent 程序,因此对等程序和种子的数量非常丰富,从而形成了健康的 torrent 生态系统。BitTorrent Classic 具有日程安排功能,可以将下载和做种设置为在一天的特定时间运行,是当之无愧的最优秀 torrent 下载器。您的设备与 Windows 版 BitTorrent Web 不兼容。是否要下载 Windows 版 BitTorrent Web?[是][不,请让我从该页面继续。]公司关于联系新闻职位博客广告下载WindowsMacAndroid平台WindowsMacAndroid支持帮助论坛Site FeedbackTip of the DayFacebookTwitterInstagramDiscord语言 English Español Русский 中文(简体) 한국어 فارسی العربية 日本語Version 1.2.19 © 2024 BitTorrent Limited All Rights Reserved.最终用户许可协议 | 版权 | 使用条款 |

BitTorrent Web | 最优秀的在线 Torrent 下载器

orrent Web | 最优秀的在线 Torrent 下载器产品查看所有Torrent 下载器BitTorrent WebBitTorrent WebBitTorrent ClassicBitTorrent Android加密BitTorrent TokenBitTorrent SpeedBitTorrent File System实时直播DLive内容实用程序BitTorrent RemoteMore ProductsBTT帮助语言English中文(简体)中文(繁體)DeutschEspañolFrançaisहिन्दीItaliano日本語한국어NederlandsPolskiPortuguês (Brasil)PortuguêsРусскийTagalogTürkçe产品BTT帮助语言查看所有BTT is now available onAvailable to U.S users, you can purchase BTT in USD or EUROIncrease your BTT balance, leverage it within the BitTorrent Speed AppDrive faster download speedsLearn more>查看所有交易所>BitTorrent Webnow.bt.co content displayed pursuant to license.下载时流式传输 torrent。 只需几步,即可搜索并下载 torrent直接播放 torrent 文件和磁力链接线上Torrent下载与播放 免费下载 now.bt.co content displayed pursuant to license.功能功能BitTorrent Web Torrent 客户端 功能使用 BTT 加密货币提高下载速度BitTorrent Speed 自动向其他用户提供 BitTorrent (BTT) 以获得更快速度。了解更多通过做种获得 BTT 加密货币当文件下载完成后,可让其做种以赚取 BitTorrent (BTT)。轻松查找 torrent使用安全 torrent 扫描程序,轻松几步,快速查找、下载和播放 torrent。实时播放 torrent 文件边下载 torrent 文件和磁力链接边播放,全部都在浏览器窗口中进行。马上从 BitTorrent 传输 torrent Access our vast library of independent artist content on now.bt.co to download and stream torrents.下载任意类型的文件BitTorrent Web 不仅仅适用于视频。下载任意文件,将它存储到您选择的本地文件夹中。节省网络资源设置下载/上传速度限制,释放网络资源,供其他互联网任务使用。提供 15 种语言支持已本地化为俄语、葡萄牙语、西班牙语、法语、韩语、意大利语等十几种语言!对比BitTorrent Web 各个版本对比PRO+VPN for Web在线隐私 $69.95年 马上购买 WEB CLASSIC Buy with crypto包含 Pro 版所有功能1 年 CyberGhost VPN5 台设备均可确保隐私绕过审查provpnBullet5最热门PRO for Web安全的Torrent下载 $19.95年 马上购买 WEB CLASSIC Buy with crypto安全:阻止威胁保证 PC 安全 显示有用的 torrent 信息:+ 文件大小+ 分辨率+ 种子和“吸血”用户高级客户支持proBullet5AD-FREE for Web无干扰 $4.95年 马上购买 WEB CLASSIC  占用带宽较少简便的流下载高级支持BASIC for Web免费的在线 torrent 下载 软件 免费  马上下载  最优秀的原始版 torrent 应用basicBullet2basicBullet3详细了解 BitTorrent Web 高级产品。BitTorrent Web/ 产品提示我应该如何使用 BitTorrent Web?BitTorrent简单易用, 是使用您默认浏览器的线上torrent下载客户端。如果您已经知道在哪里查找您的 torrent 文件,可单击该文件或将 torrent 拖入 BitTorrent Web 的浏览器窗口。或者,您也可以使用 BitTorrent Web 窗口顶部的搜索框,搜索 torrent 下载内容。如果您安装了安全的 torrent 扫描程序(在安装 BitTorrent Web 后随即提供),则该程序可帮助您从搜索结果下载 torrent 文件,您无需再访问潜在的有害网站。您可以指定 pc torrent 下载的目标硬盘或文件夹。您还可在 BitTorrent Web 设置中更改默认下载文件夹。如果这是一个视频或音频文件,您还可在媒体播放器内传输 torrent 文件,该播放器内置在基于浏览器的 Web 版 torrent 客户端中。如何播放torrent文件BitTorrent Web 使 torrent 文件传输更轻松。在将 web torrent 下载 工具客户端安装到您喜爱的浏览器后,您即可使用它将任意类型的文件下载到您选择的文件夹中。而且如果是音频或视频文件,您可直接通过内置播放器在浏览器窗口流式传输该文件。更妙的是,您无需再等待文件下载完成——您几乎可以在下载开始后即播放文件。可将BitTorrent Web 用作优选播放器在线播放torrent文件。您的设备与 Windows 版 BitTorrent Web 不兼容。是否要下载 Windows 版 BitTorrent Web?[是][不,请让我从该页面继续。]公司关于联系新闻职位博客广告下载WindowsMacAndroid平台WindowsMacAndroid支持帮助论坛Site FeedbackTip of the DayFacebookTwitterInstagramDiscord语言 English Español Русский 中文(简体) 한국어 فارسی العربية 日本語©2022 Rainberry Inc. All Rights Reserved最终用户许可协议 | 版权 | 使用条款 | 隐私 | Now 使用条款我们将 Cookie 用于分析、广告宣传和网站改进目的。如需了解更多信息,请单击此处。 单击’我接受’,即表示您接受我们使用 Cookie;继续使用我们的服务,即表示您同意我们的隐私政策和使用条款。

BitTorrent_百度百科

orrent_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心BitTorrent播报讨论上传视频一种内容分发协议收藏查看我的收藏0有用+10本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。比特流(BitTorrent)是一种内容分发协议,由布拉姆·科恩自主开发。它采用高效的软件分发系统和点对点技术共享大体积文件(如一部电影或电视节目),并使每个用户像网络重新分配结点那样提供上传服务。一般的下载服务器为每一个发出下载请求的用户提供下载服务,而BitTorrent的工作方式与之不同。分配器或文件的持有者将文件发送给其中一名用户,再由这名用户转发给其它用户,用户之间相互转发自己所拥有的文件部分,直到每个用户的下载都全部完成。这种方法可以使下载服务器同时处理多个大体积文件的下载请求,而无须占用大量带宽。中文名比特流外文名BitTorrent简    称BT发明时间2003年发明者Bram Cohen特    点上传速度越快,下载速度越快目录1技术特点2实现原理3技术依赖4下载特点▪种子▪下载注意▪存在问题5网络技术6相关概念7功能8浏览器9BT软件10历史11合法性▪简介▪BitTorrent12用途▪技术框架▪阻塞算法▪真实体验技术特点播报编辑2003年,软件工程师Bram Cohen发明了BitTorrent协议。BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。而在FTP,HTTP协议中,每个下载者在下载自己所需文件的同时,各个下载者之间没有交互。当非常多的用户同时访问和下载服务器上的文件时,由于FTP服务器处理能力和带宽的限制,下载速度会急剧下降,有的用户可能访问不了服务器。BT协议与FTP协议不同,特点是下载的人越多,下载速度越快,原因在于每个下载者将已下载的数据提供给其他下载者下载,充分利用了用户的上载带宽。通过一定的策略保证上传速度越快,下载速度也越快。在很短时间内,BitTorrent协议成为一种新的变革技术。实现原理播报编辑普通的HTTP/FTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。 BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”。.torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入种子文件(.torrent)中。所以,种子文件(.torrent)就是被下载文件的“索引”。技术依赖播报编辑图1bittorrent 的发展依赖于peer-to-peer技术。对等网络 (Peer - to - Peer 简称 P2P) 的研究一直是国外知名学府和知名企业以及研发机构最关注的重点。它甚至被美国《财富》杂志称为改变因特网发展的四大新技术之一 , 被认为是代表无线宽带互联网未来的关键技术。现广泛应用于新技术与软件等工程。P2P是近年来互联网最热门的技术 ,在VoIP、下载、流媒体、协调技术等领域得到飞速发展 , 被财富杂志评为影响互联网的四大科技之一。P2P技术体现了互联网最根本的内涵——自由和免费,它的主要优点如下:和检索相关的节点上去 , 存储有和该检索 ;对等性高 : 非中心化 , 互联网回归本色——联系和传输 ;扩展性强 : 用户扩展与资源、服务、系统同步扩展 ;健壮性高 : 服务分散和自适应 , 耐攻击、高容错性 ;性价比高 :P2P成本低、存储和技术能力强 ;负载均衡 :分布存储和技术 , 整个网络负载得以均衡。图2在P2P网络中,每个参与的节点既是服务器又是客户端, 既是信息的提供者又是信息的消费者。P2P信息检索的目的就是网络中的任意节点都可以提交检索的请求 ,然后这些检索通过相关信息的节点将会回应请求 ,把本地相某种路由机制被路由到关的内容以对等的形式直接传送到请求节点上 , 如图 2 所示。图中的检索过程分为以下几个阶段 :每个节点在加入网络的时候 , 会对存储在本节点上的内容进行索引 , 以满足本地内容检索的目的。然后按某种预定的规则选择一些节点作为自己的邻居 , 加入到P2P网络当中。发起者P提出检索请求q,并将 q发送给自己的邻居 P的邻居收到 q后 , 再按照某种策略转发给它在网络中的其它邻居节点。这样 ,q就在整个网络中传播开来。收到请求 q 的节点如果存储有相应内容信息 , 则将对应的内容返回。如何在一个大规模分布的环境下定位资源是个十分具有挑战性的问题。集中在如何组建P2P网络,如何选择有效的资源请求路由策略以便以较少的消息通信开销 ,获得较多的相关查询结果返回 , 同时能够保证较好的服务均衡性。 [1]下载特点播报编辑和常规下载文件不一样的是,当你进行BT下载时,你开始链接的地址都是.torrent结尾的文件。其实只要下载此文件,在本机运行此文件一样可以进行BT下载工作。而网上的BT下载链接都是由广大用户自己发布提供的,这样使得下载资料非常广,不受常规管理人员的限制。 [2]种子BT原理示意图无论何种BT客户端程序,默认设置都未对下载速度和上传速度进行限制,这是因为BT软件会给上传速度较快的用户优先提供服务,也就是说上传速度越快,下载速度也越快,因此如果你使用的是宽带的话,下载时就不要去限制上传速度了。当下载结束后,如果未关闭BT客户端程序(例如一边运行BT提供上传服务,一边浏览网页、编辑文档等),这时你将成为一个传递圣火的使者,即“种子”(seed)。换句话说,如果一个文件被分成10个部分,但拥有第9部分的人只有一个,即只有一个种子,如果这位用户由于某种原因断线或关机,那么其他用户就只能下载到90%了,在进行BT下载时是令人最为苦恼的。想想自己下载时遇到的“种子数为0”的痛苦吧,将心比心,尽可能在下载结束后不要立即关闭BT程序窗口,做一个传递圣火的使者吧。下载注意下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载。下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别对方告知自己已经有的块,然后交换对方没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。下载者每得到一个块,需要算出下载块的Hash验证码与.torrent文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。存在问题一般的HTTP/FTP下载,发布文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,种子也会越来越多,下载速度就越快。而有些人下载完成后关掉下载任务,提供较少量数据给其他用户,为尽量避免这种行为,在非官方BitTorrent协议中存在超级种子的算法。这种算法允许文件发布者分几步发布文件,发布者不需要一次提供文件所有内容,而是慢慢开放的下载内容的比例,延长下载时间。此时,速度快的人由于未下载完必须提供给他人数据,速度慢的人有更多机会得到数据。网络技术播报编辑又发展出DHT网络技术,使得无Tracker下载成为可能。DHT全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。使用支持该技术的BT下载软件,用户无需连上Tracker就可以下载,因为软件会在DHT网络中寻找下载同一文件的其他用户并与之通讯,开始下载任务。有些软件(比特精灵)还会自动通过DHT搜索种子资源,构成种子市场。另外,这里使用的DHT算法叫Kademlia(在eMule中也有使用,常把它叫做KAD,具体实现协议有所不同)。这种技术好处十分明显,就是大大减轻了Tracker的负担(甚至不需要)。用户之间可以更快速建立通讯(特别是与Tracker连接不上的时候)。相关概念播报编辑Tracker:收集下载者信息的服务器,并将此信息提供给其他下载者,使下载者们相互连接起来,传输数据。种子:指一个下载任务中所有文件都被某下载者完整的下载,此时下载者成为一个种子。发布者本身发布的文件就是原始种子。也指.torrent文件。做种:发布者提供下载任务的全部内容的行为;下载者下载完成后继续提供给他人下载的行为。功能播报编辑bittorrent下载界面BitTorrent对于大型文档和自由软件如Linux、FreeBSD的发布帮助很大。对于发布数百MB以至数GB的档案时,如Fedora的光盘镜像格式档,BitTorrent的使用能大大减低服务器的数据流量从而减低发布的成本。另外,一般有新版本软件推出时,服务器必定人山人海,使用BitTorrent也能大大减低繁忙时间服务器的负担。浏览器播报编辑Opera 9BT软件播报编辑p2psearcher [3]BT Plus!BitBuddyBitTornadoAzureus比特精灵比特彗星(BitComet)BitTorrent迅雷FrostwireuTorrent脱兔FlashgetQQ旋风历史播报编辑2002年,Bram Cohen在CodeCon初次露面,发表首个BT软件BitTorrent。它以Python写成,以MIT许可证发布。合法性播报编辑简介BT下载方式引起社会的广泛讨论。利用BT免费发布版权内容肯定损害版权所有者的合法权益,但传播非收费性内容的好处有目共睹。争论的焦点是,是否应因此立法全面禁止BT,并且对从事BT下载的人作出惩罚。但到目前为止,中华人民共和国大陆和西欧国家等,如德国,对BT仍没有任何法律上的约束。而在香港,已经有人(绰号为古惑天皇)因为发布电影的种子而被海关拘捕。2005年10月24日,香港司法机关裁定“古惑天皇”的侵权罪成立,需要即时“监禁”三个月。香港工商贸易部门领导曾俊华与“海关关长”汤显明对今次裁决感到欢迎,并表示香港将不容忍任何侵权行为的存在,同时政府亦会随时与商人合作打击侵权行为。BitTorrent(简称BT,俗称BT下载)是一个多点下载的源码公开的P2P软件,使用非常方便,就像一个浏览器插件,很适合新发布的热门下载。其特点简单的说就是:下载的人越多,速度越快。 BitTorrent下载工具软件可以说是一个最新概念P2P的下载工具、它采用了多点对多点的原理,一般简称 BT(BitTorrent) 也就是大家所说的变态下载。该软件相当的特殊,一般我们下载档案或软件,大都由 HTTP 站点或FTP 站台下载,若同时间下载人数多时,基于该服务器频宽的因素,速度会减慢许多,而该软件却不同,恰巧相反,同时间下载的人数越多你下载的速度便越快,因为它采用了多点对多点的传输原理。BitTorrent 强大实用的原因(原文是Incentives Build Robustness in BitTorrent,不知道怎么翻译比较好?)Bram Cohen2003年5月22日翻译:小马哥日期:2004-6-1用途播报编辑BitTorrent 文件发布系统采用针锋相对(tit_for_tat)的方法来达到帕累托有效,与当前已知的协作技术相比,它具有更高的活力。本文将解释BitTorrent 的用途,以及是怎样用经济学的方法来达到这个目标的。BitTorrent 用来做什么当通过HTTP协议来下载一个文件的时候,所有的上载开销都在主机上。而使用 BitTorrent,当多个人同时下载同一个文件的时候,他们之间也相互为对方提供文件的部分片断的下载。这样,就把上载的开销分摊到每个下载者那里,也就可以在理论上支持无限多个下载者来下载同一个文件。研究人员以前也在寻找一种达到这种效果的可实用的技术[3]。这种技术原来并没有在大的范围内运用过,因为逻辑和的问题非常棘手。如果仅仅计算哪些 peers 拥有文件的哪些片断以及这些片断应该被发送给谁,那么很难只产生比较小的系统开销。Peers之间的连接很少会超过几个小时,通常是几分钟而已。最后,有一个普遍的问题,就是公平性。我们将解释BitTorrent 是如何很好的解决这些问题的。1.1.BitTorrent接口BitTorrent 的接口可能是最简单的。用户点击希望下载的文件的超级链接,然后会弹出一个标准的“保存到”对话框。此后,出现一个下载进度的窗口,在这个窗口中,除了显示下载速率外,还显示一个上载速率。BT在使用上非常简单,使得BT能广泛的被运用。1.2.部署决定采用BitTorrent的原因是因为有一些文件需要发布。而下载者使用 BitTorrent,是因为这是他们获取所需要的文件的唯一途径。下载者经常一完成下载,就停止为别人上载,虽然说,在BT客户端完成下载之后,继续为别人提供一段时间的上载是一种礼貌的行为。标准的实现是让客户端一直保持上载,除非窗口被关闭。在一个典型的部署中,未完成的下载者一台主机负责提供原始的文件,下载者通过BT来下载这个文件。下载者在下载的同时,为其它人提供上载,最后,离开这个系统。技术框架2.1发布内容为了部署 BT,首先将一个扩展名为 .torrent 的文件放在一个普通的web服务器上。.torrent文件包含了要共享的文件的信息,包括文件名、大小、文件的散列信息和一个指向tracker的url。Tracker负责帮助下载者能够获取其它下载者的信息。Tracker和下载者之间使用一种很简单的基于HTTP的协议进行交互,下载者告诉tracker自己要下载的文件、自己使用的端口以及类似的信息,tracker告诉下载者其它下载同样文件的下载者的联系信息。下载者利用这些信息相互之间建立连接。一个被成为“种子”的下载者,必须首先被启动,它知道完整的文件信息。对tracker和web服务器的带宽需求很低,而种子必须至少发送原始文件的一份完整拷贝。译注:P2P的核心思想就是没有服务器的概念,任何一个下载者既是client,又是server。下载者从别人那里取文件的时候,称为下载,而为别人提供文件的时候,称为上载(传)。为了完成一次部署,至少需要一个tracker和一个seed。所谓tracker,是一个服务器,负责帮助peers之间相互建立连接。而seed,通常是第一个向tracker注册,然后它就开始进入循环,等待为别人提供文件,也就是说,第一个seed只负责上传文件。一旦有一个peer向tracker注册后,就可以取得seed的信息,从而与seed建立连接。从seed处读取文件。由于原始的文件,只有seed拥有,所有说,seed至少要上传原始文件的一份完整拷贝。如果又有一个peer加入进来,那么它可以同时和seed和前一个peer建立连接,然后从这两者处获取文件。2.2对等发布所有和文件下载相关的逻辑问题,通过 peers之间的交互来解决。一些关于下载和上传的速率的信息被发送给tracker,tracker搜集这些信息用于统计。Tracker的职责被严格限定为“帮助peers相互发现对方”。尽管tracker是peers之间相互发现的唯一途径,也是peers之间相互协作的唯一地点,标准的tracker算法返回一个随机的 peers的列表。随机图具有非常强大的特性,许多的peer选择算法最终产生了一个幂律图,幂律图能以少量的搅拌来获得分片。注意,peers之间的连接都是双向传输的。为了跟踪每个peers都拥有什么,BT将文件切割为固定大小的片(典型的大小是256k)。每个下载者必须通知其它peers,它拥有哪些片。为了验证文件的完整性,对每个片断都通过SHA1算法计算出它的hash信息,并保存在torrent文件中。Peers只有在检查了片断的完整性之后,才会通知其它peers它拥有这个片断。删除代码是一种被建议使用的帮助文件分布的技术,但是这种更简单的方法(既分片)也是可用的。Peers不断的从它能连接到的peers那里下载文件片断。当然,它不能从没有跟它建立连接的peers那里下载任何东西。即使是建立了连接的peers,有的也并不包含它想要的片断,或者还不允许它去下载。关于不允许其它peers从它那里下载文件片断的策略,被称为 阻塞choking,后文将进行讨论。其它关于文件分布的方法通常都要用到麻烦的树结构,而且树叶的上载能力并没有被利用起来。简单的让 peers 宣布它拥有什么会导致不到 10 % 的带宽开支,却可以可靠的使用所有的上载能力。2.3流水作业构架在TCP之上的应用层协议,例如BT,很重要的一点是应该同时发送多个请求,以避免在两个片断发送之间的延迟,因为那样会严重影响传输速率。为了达到这种目的,BT将每个片断又进一步分为子片断,每个子片断的大小一般是16k,同时,它一直保持几个请求(通常是5个)被流水的同时发送。流水作业所选择的data(应该是指的同时发送的请求数目,也就是5个request)的依据是能使得大多数连接变得饱和。译注:也就是说,每次发送5个请求,然后过一段时间,又发送5个请求。流水作业在HTTP 协议1.1版本中被广泛运用。2.4片断选择选择一个好的顺序来下载片断,对提高性能非常重要。一个差的片断选择算法可能导致所有的片断都处于下载中,或者另一种情况,没有任何片断被上载给其它 peers。2.4.1严格的优先级片断选择的第一个策略是:一旦请求了某个片断的子片断,那么该片断剩下的子片断优先被请求。这样,可以尽可能快的获得一个完整的片断2.4.2最少的优先对一个下载者来说,在选择下一个被下载的片断时,通常选择的是它的peers们所拥有的最少的那个片断,也就是所谓的“最少优先”。这种技术,确保了每个下载者都拥有它的peers们最希望得到的那些片断,从而一旦有需要,上载就可以开始。这也确保了那些越普通的片断越放在最后下载,从而减少了这样一种可能性,即某个peer当前正提供上载,而随后却没有任何的被别人感兴趣的片断了。译注:也就说说,每个peer都优先选择整个系统中最少的那些片断去下载,而那些在系统中相对较多的片断,放在后面下载,这样,整个系统就趋向于一种更优的状态。如果不用这种算法,大家都去下载最多的那些片断,那么这些片断就会在系统中分布的越来越多,而那些在系统中相对较少的片断仍然很少,最后,某些 peer 就不再拥有其它 peer 感兴趣的片断了,那么系统的参与者越来越少,整个系统的性能就下降。在BT系统中,充分考虑了经济学的概念,处处从整个系统的性能出发,参与者越多,系统越优化。信息理论显示除非种子上传了文件的所有片断,否则没有任何下载者可以完成所有文件的下载。如果在一个部署中,只有一个种子,而且种子的上载能力比它的大多数下载者都要差,那么,不同的下载者从种子那里下载不同的片断,性能就会变得比较好,因为,重复的下载浪费了种子获取更多信息的机会。“最少优先”使得下载者只从种子处下载新的片断(也就是整个系统中其它peer都没有的片断),因为,下载者能够看到其它peers那里已经有了种子已经上传的片断。在某些部署中,原始的种子由于某些原因最终关闭,只好由剩下的这些下载者们来负责上传。这样显然会带来一个风险:某些片断任何一个下载者都不拥有。“最少优先”也很好的处理了这种情况。通过尽快的复制最少的片断,减少了这种由于当前的peers停止上载后带来的风险。2.4.3随机的第一个片断“最少优先”的一个例外是在下载刚开始的时候。此时,下载者没有任何片断可供上传,所以,需要尽快的获取一个完整的片断。而最少的片断,通常只有某一个peer拥有,所以,它可能比多个peers都拥有的那些片断下载的要慢。因此,第一个片断是随机选择的,直到第一个片断下载完成,才切换到“最少优先”的策略。2.4.4最后阶段模式有时候,从一个速率很慢的peer那里请求一个片断。在下载的中间阶段,这不是什么问题,但是却可能潜在的延迟下载的完成。为了防止这种情况,在最后阶段,peer向它的所有的peers们都发送某片断的子片断的请求,一旦某些子片断到了,那么就会向其它peer发送cancel 消息,取消对这些子片断的请求,以避免带宽的浪费。实际上,用这种方法并没有浪费多少带宽,而文件的结束部分也一直下载的非常快。阻塞算法BT并不集中分配资源。每个peer自己有责任来尽可能的提高它的下载速率。Peers从它可以连接的peers处下载文件,并根据对方提供的下载速率给予同等的上传回报(你敬我一尺,我敬你一丈)。对于合作者,提供上传服务,对于不合作的,就阻塞对方。所以说,阻塞是一种临时的拒绝上传策略,虽然上传停止了,但是下载仍然继续。在阻塞停止的时候,连接并不需要重新建立。阻塞算法并不属于BT对等协议(指peers 之间交互的协议)的技术部分,但是对提高性能是必要的。一个好的阻塞算法应该利用所有可用的资源,为所有下载者提供一致可靠的下载速率,并适当惩罚那些只下载而不上传的peers。3.1帕累托有效帕累托有效是指资源配置已达到这样一种境地,即任何重新改变资源配置的方式,都不可能使一部分人在没有其他人受损的情况下受益。这一资源配置的状态,被称为“帕累托最优”(Pareto optimum)状态,或称为“帕累托有效”(Pareto efficient)在计算机领域,寻求帕累托有效是一种本地优化算法BitTorrent的阻塞算法,用一种针锋相对的方式来试图达到帕累托最优。(原文不太好翻译,我简化了)。Peers对那些向他提供上传服务的peers给予同样的回报,目的是希望在任何时候都有若干个连接正在进行着双向传输。3.2 BitTorrent的阻塞算法从技术层面上说,BT的每个peer一直与固定数量的其它 peers 保持疏通(通常是4个),所以问题就变成了哪些peers应该保持疏通?这种方法使得TCP的拥塞控制性能能够可靠的饱和上传容量。(也就是说,尽量让整个系统的上传能力达到最大)。严格的根据当前的下载速率来决定哪些peers应该保持疏通。令人惊讶的是,计算当前下载速率是个大难题。当前的实现实质上是一个每隔20秒的轮询。而原来的算法是对一个长时间的网络传输进行总计,但这种方法很差劲,因为由于资源可用或者不可用,带宽会变化的很快。为了避免因为频繁的阻塞和疏通 peers造成的资源浪费,BT每隔10秒计算一次哪个peer需要被阻塞,然后将这种状态保持到下一个10秒。10秒已经足够使得TCP来调整它的传输性能到最大。3.3.optimistic unchoking如果只是简单的为提供最好的下载速率的peers们提供上载,那么就没有办法来发现那些空闲的连接是否比当前正使用的连接更好。为了解决这个问题,在任何时候,每个peer都拥有一个称为“optimistic unchoking”的连接,这个连接总是保持疏通状态,而不管它的下载速率是怎样。每隔30秒,重新计算一次哪个连接应该是“optimistic unchoking”。30秒足以让上载能力达到最大,下载能力也相应的达到最大。这种和针锋相对类似的思想非常的伟大。“optimistic unchoking”非常和谐的与“囚徒困境”合作。3.4.反对歧视某些情况下,一个peer可能被它所有的peers都阻塞了,这种情况下,它将会保持较低的下载速率直到通过“optimistic unchoking”找到更好peers。为了减轻这种问题,如果一段时间过后,从某个peer那里一个片断也没有得到,那么这个peer认为自己被对方“怠慢”了,于是不再为对方提供上传,除非对方是“optimistic unchoking”。这种情况频繁发生,会导致多于一个的并发的“optimistic unchoking”。3.5仅仅上传一旦某个peer完成了下载,它不能再通过下载速率(因为下载速率已经为0了)来决定为哪些 peers 提供上载了。采用的解决办法是,优先选择那些从它这里得到更好的上载速率的peers。这样的理由是可以尽可能的利用上载带宽。真实体验BitTorrent不仅仅早已经实现,而且早已经被广泛的使用,它为许多并发的下载者提供成百兆的文件下载。已知的最大的部署中,同时有超过1000个的下载者。当前的瓶颈(实际还没有达到)看来是trakcer的带宽。它(trakcer的带宽)大概占用了带宽总量的千分之一,一些小的协议扩展可能会使它降到万分之一。新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

BT下载软件哪个好用? - 知乎

BT下载软件哪个好用? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册生活下载调查类问题下载工具BT下载软件哪个好用?BT下载软件:比特精灵、μTorrent、qBittorrent、比特彗星、BitTorrent、BitTorrent、Vuze、Free Downl…显示全部 ​关注者573被浏览11,295,622关注问题​写回答​邀请回答​好问题 65​1 条评论​分享​65 个回答默认排序财阀秋天的美好,晚霞会告诉你​ 关注现在严打,好多软件都用不了,或者资源各种被封,近期我用着能放的也就是磁力网盘了,复制磁力链接过去粘贴上传就行。不过这个只有苹果的,没有android平台的,Android的话我之前用的磁力宅,那个也可以,没被限制 。发布于 2020-10-20 13:10​赞同 27​​4 条评论​分享​收藏​喜欢收起​crystal​​ 关注强烈推荐 qBittorrent,开源免费无广告,添加 trackers 后热门资源速度能跑满速,支持 Windows、Mac 和 Linux 三平台使用。有图有真相qBittorrent 是一款开源免费的种子和磁力链接下载工具,功能非常强大。使用 BT 下载,直接使用可能会有个很常见的问题——下载没速度!本文就介绍下 qBittorrent 从安装到使用的详细教程。qBittorrent 简介:下载、安装和使用qBittorrent 支持使用种子文件和磁力链接下载,包括了做种、trackers 编辑、下载优先级设置、RSS 订阅、磁力搜索(需安装插件)等功能非常丰富。官网:qBittorrent Official Website网盘搬运:Win + Mac + Linux 版下载请仔细阅读全文,一些常见的问题文中已经有说明了的!!!# 下载 & 安装进入官网,Download 页面,选择适合自己的版本下载。双击安装,一路点击 “下一步” 完成安装即可,无需特别调整。安装完启动时会弹出一个声明,“同意”。# 添加下载点击左上角两个图标,分别添加磁力链接或种子。重点! 添加磁力链接可能会一直显示 “正在检索元数据…” 很久,建议全部使用种子文件下载,比较快。如果只有磁力链接,可以先将其添加到迅雷极速版下载 -> 右键 -> 另存为种子文件。# 软件界面介绍主下载界面Trackers 和 用户 - 显示资源的连接和下载情况内容 - 资源内文件管理和进度qBittorrent 高级设置及使用教程安装完成后首次打开需要设置下,以后直接使用即可。# 添加 trackers 优化下载速度(非常重要!!!)添加 trackers 可以帮助我们连接到更多的资源节点,解决下载没速度的问题,给下载加速,是必备操作!Trackers 一般能在 GitHub 找到:GitHub - ngosang/trackerslist: An updated list of public BitTorrent trackers进入 trackers 更新页面,全选 → 复制。trackers 是用来优化下载速度的,多多益善。复制 trackers 们打开 qBittorrent -> 工具 -> 选项 -> BitTorrent,下拉到末尾,将 trackers 粘贴进输入框,并勾选 “自动添加以下 trackers 到新的 torrents”,OK。粘贴进 qBittorrent 中也可以在 Trackers 界面通过右键 -> 添加新的 tracker。# 路由器开启 UPnP / NAT-PMP 功能大多数用户都是内网网络,连接不上节点造成下载没速度,虽然有时也能用,但速度有限。路由器开启端口映射可以改善资源连接情况,热门资源可以满速下载。查看说明书登陆路由器后台,在设置中找到 UPnP/NAT-PMP 选项,开启并保存,然后重启。ps. 现在比较新的路由器有的找不到该选项,一般都会默认开启,具体可以询问下客服。# 连接 DHT 节点软件底部状态栏有一个 “DHT 节点”,连接上后可以通过 DHT 网络进行下载,改善下载情况。开启软件后会自动连接,连上 DHT 节点需要一定时间,连上后尽量不要关闭客户端,因为每次重启都要重新连接。连不上可以进入选项 -> 连接 -> 点随机,修改下监听端口,建议使用高位端口,也可以勾选 “在每次启动时使用不同的端口”。# 调整下载优先级qBittorrent 可以对文件的优先级进行调整,优先下载级别更高的文件。在 内容 界面,右键选择文件 -> 优先。Tips(常见问题)1、添加磁力链接,qBittorrent 一直显示 “正在下载元数据”:这个最常见了,相当于在等待下载种子信息。强烈建议使用种子文件进行下载,就不会出现这个了。2、连不上 DHT 节点:先下一个热门种子试试,DHT 涨起来了再下载。3、理论上 trackers 和 DHT 网络有一种连上了在工作,就有速度。还没速度查看下用户、种子、trackers 等的连接情况,如果都为 0 可能是死链,建议换热门的资源。4、磁力种子的下载速度依赖于资源数量和广大用户的上传做种,上传分享的人越多,速度越快。5、建议下载完后不要急着移除任务,上传做种,可以设置下上传速度或时间,原因就是上一条。6、有手机端下载需求的看这篇:手机高速下载磁力链接 & BT种子的方法总结结语qBittorrent 的使用方法和常见问题等上面基本都介绍到了,看起来可能有点麻烦,但只要第一次使用时设置好就行了,以后打开直接添加任务使用即可。在找资源时,尽量找热门点的,比如知名字幕组等发布的资源,做种的人多,下载速度也快。对于冷门资源,没人做种了,速度就比较差了,这类资源还是找找网盘更合适。大家别光收藏啊,码文不易,都看到这里了,点个赞再走呀 ╰( ̄▽ ̄)╭ ~编辑于 2023-12-24 00:26​赞同 66​​添加评论​分享​收藏​喜欢

BitComet(比特彗星) - 高效好用的BT下载软件,BT资源的下载利器

BitComet(比特彗星) - 高效好用的BT下载软件,BT资源的下载利器

功能

下载

BitComet(比特彗星)

BitComet(比特彗星)是一款免费的BT/HTTP/FTP下载软件!

功能强大速度快,操作简单的BT下载软件,BT资源下载利器!

Windows / macOS / Linux / Android

版本

2.06

极速下载

长效种子

磁盘缓存

边下边放

极速下载

BT下载又被称为变态下载,通过种子文件或者磁链可以和其他用户交换数据,下载的同时也上传数据,所有用户都速度飞快!BitComet(比特彗星)完美支持各种主流BT下载协议,保证安心下载!

长效种子

BitComet(比特彗星)独有长效种子功能,可以尽量避免种子用户离开导致下载卡在99%,而且能够显著增加下载速度!

磁盘缓存

早年有部分下载软件会伤硬盘,BitComet(比特彗星)首先使用了磁盘缓存技术,将磁盘的读写次数降到最低从而提高硬盘寿命。

边下边放

BitComet(比特彗星)在下载视频文件的时候,优先下载文件头尾,这样可以实现边下边放,用户可以在下载过程中提前预览视频内容。

支持

使用帮助

联系我们

工具

老旧工具

关于

许可协议

版权声明

切换语言

English

Japanese 日本語

Traditional Chinese 繁體中文

Simplified Chinese 简体中文

Copyright © 2003 - 2024 BitComet. All rights reserved.

BitTorrent 简介 - 知乎

BitTorrent 简介 - 知乎切换模式写文章登录/注册BitTorrent 简介riba2534​字节跳动 服务端研发工程师BitTorrent 简介从 P2P 说起经常在网上飙车的老司机应该都知道 BT 下载,但是有时候拿到了种子却下载不动,会不会很抓狂,是不是还觉得是自己网不行,那作为一个合格的老司机,我们需要探究一下下载不动的原因是什么,BT的运作方式是怎样的,如果你也有这样的疑惑,那么,系好安全带,我们一起来了解一下什么是 BT。2001年4月,程序员布莱姆·科恩设计了一种协议,然后在2001年7月2日,他发布了 BitTorrent 客户端的第一个实现。BT(BitTorrent)是 P2P 的一种实现,P2P也叫「对等网络」(英语:peer-to-peer, 简称P2P),是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种网络形式。在P2P网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,每个节点既充当服务器,为其他节点提供服务,也能作为客户端,享用其他节点提供的服务。P2P有着很广泛的应用,比如 P2P金融(雾),区块链,BT下载等。它的关键字是去中心化,依靠用户群(peers)来互相传输数据,符合这种特征的都可以称之为 P2P。BitTorrent大家肯定有在互联网上下载各种资源的经历,比如电影电视剧,我们在网上一搜,就会搜到一些不知名的小网站,网站上通常会提供一个叫做「种子」的东西,我们使用时只需要把种子下载到电脑上,通常是一个后缀为 .torrent 的文件, 然后用迅雷或者其他的下载工具下载。在实际操作中,如果我们使用迅雷进行下载,有时候会发现种子下不动,有时候发现下的特别慢,有时候还被提示资源敏感,无法下载,还有时候迅雷提示你开会员可以加速(这个时候开一个会员基本就可以满速下载了,因为迅雷已经把资源提前下载到自己服务器了),我们可能产生一些疑惑: 种子是什么? 为什么资源有时候下不动,有时候速度那么慢? 如何才能让我的BT下载速度变快?为了解决这个疑问,我们需要了解一下 BT 协议,全称是 BitTorrent,这个协议被设计用来实现 P2P(Peer to Peer) 下载。普通的 HTTP/FTP 下载使用 TCP/IP 协议,BitTorrent 协议是架构于 TCP/IP 协议之上的一个P2P文件传输通信协议,是一个应用层协议。传统的下载是客户端请求服务器获取资源,下载方和资源提供方的角色很清楚。这样做的优点是简单,易于理解,我要下载东西,我就去请求服务器,缺点也很明显: 一旦服务器故障,大家都无法下载 服务器带宽有限,下载的人多速度必然下降而 P2P 则不一样,每一个客户端同时也是服务器,从别人那里下载资源的同时,也提供资源给到别人。这样一来,就规避了服务器模型的缺点: 每个人都是服务器,除非所有机器都故障了,否则网络依旧可以运转 不会去请求单一机器,而是从多个机器获取资源,这样可以使带宽得到最大利用种子的格式与作用我们对 BT 的认知,一般是从种子开始的,所以首先需要了解一下种子的格式与作用。我们一般下载下来的文件是一个以 .torrent 结尾的文件,通过文本编辑器打开,会看见一堆乱码,它并不是一个纯文本文件,而是一个二进制文件,通过查资料,可以发现种子文件中采用了一种文件编码,叫做 Bencode ,这种编码以 ACSII 字符来进行编码,里面包含几种简单的数据结构,我们一起来了解一下:Bencode 编码字符串将一个字符串的前面加上长度标识和符号(冒号),这就是 Bencode 编码后的字符串了,比如:'hello' -> 5:hello

'How are you' -> 11:How are you整数一个整数起始以 i 作为标识,结尾以 e 来作为标识,把数字写在中间即可,如:123 -> i123e

666 -> i666e

0 -> i0e列表列表可以类比为 Python 中的列表,是一种容器性质的数据结构,每个元素可以是四种数据结构中的任意一组,没有长度限制。语法是,列表的开头和结尾分别用 l 和 e 作为标识符,中间的值就是任意的数据结构。[123,666,0] -> li123ei666ei0ee

[123,'hello',456] -> li123e5:helloi456ee字典字典的开头和结尾以 d 和 e 作为标识符,bencode中的字典,key 要求必须是字符串格式的,value 的格式可以随便。另外,编码过程,key 要根据字符串的字典序进行升序排序。比如:{'a':1,'cd':[3,4],'b':2} -> d1:ai1e1:bi2e2:cdli3ei4eee.torrent 种子的格式关于种子文件的定义,在官方文档:bep_0003.rst_post 里面说的很清楚。实质上,种子文件就是一个使用 Bencode 格式编码的一个 Dictionary,里面含有一些字段,声明了关于这个种子的一些信息。大家可以把一个种子文件理解成为一个大 Json,只不过是因为压缩需要用二进制的形式存起来了而已。我写了一个解析器,可以把不可读的 bencode 变成可读的 json 格式:https://github.com/riba2534/bencode我们以 Ubuntu20.04.2 官方提供的种子为例:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso.torrent把这个种子解析之后,会得到一个json文件,如下:{

"announce": "https://torrent.ubuntu.com/announce",

"announce-list": [

[

"https://torrent.ubuntu.com/announce"

],

[

"https://ipv6.torrent.ubuntu.com/announce"

]

],

"comment": "Ubuntu CD releases.ubuntu.com",

"created by": "mktorrent 1.1",

"creation date": "2021-02-12 03:02:32",

"info_hash": "4ba4fbf7231a3a660e86892707d25c135533a16a",

"info": {

"length": 2877227008,

"name": "ubuntu-20.04.2.0-desktop-amd64.iso",

"piece length": 262144,

"pieces": [

"d89b853053ac28e09d6d322658636d9663aa80fe",

"287528aae8bda9ef962918ba8db2ceb0638454e4",

"149987b3a98147d9b5cc1e249b2fea7dc3401eb1",

"539f5c519a5fcb058d5978b415188340f57039df",

"c5ac6a46748abef691e96f7913c60c22990d5123",

"e87e684ca1c31cc029560514058c75c306a6b41c",

"c19e41f1c980b91ff735af99a2c4ab4d90946344",

"4707444be592ae107ddd614a3ef79fbc21e090a3",

"3acce815ec86a6d5bc0677874ab98dba424ddf35",

"d4e0d04c15514509c14fa97b1eb09f3bdbaff144",

"f03a8f9c698568221b4582995716b1123b7e7390",

"3efe825e140ab8137525f2ecaa0b32d46ec62851",

"数量太多,这里截断,一共10976行 ......."

]

}

}我们可以发现,种子包含以下几个key:BT 下载流程概述刚才说了种子文件的格式,大家可能有疑惑,种子中这么多字段有啥用?我们先来简要了解一下BT下载的完整流程,再详细展开: 这里有一个网站,可以生动形象的展示 BT 下载的流程。http://mg8.org/processing/bt.html我们在这里用文字简述一下整个流程。种子发布者制作种子,且向 Tracker 服务器表明,大家要下载这个种子就来找我。(Tracker 的地址就是种子文件中 announce 字段中的 url)种子发布者把做好的种子分享到互联网。下载者在互联网上获取到种子文件下载者本地的 BT 客户端解析种子文件,拿到 Tarcker 地址,向 Tarcker 发起请求(HTTP或UDP),获取其他 Peer 的地址Tracker接收到请求后,去自己的存储里找拥有这个种子中的文件的 peers 的 IP:port,返回给下载者,并且把当前下载者的 IP:Port 加入服务器的存储。下载者与其他 Peer 建立连接,由于一个文件被分成了若干个文件块,所以下载者可以和多个 Peer 下载不同的块,下载完成后,校验块的哈希值,保存在本地。(这也是下载种子的人越多,下载速度越快的原因)整个文件下载完成时,校验整个文件哈希值,不出意外,下载成功BT客户端不要关闭,自己作为 Peer 服务 BT 网络中的其他人BT下载核心思想:人人为我,我为人人知道了基本下载流程之后,我们继续来了解一下细节。与 Tracker 进行交互Tracker 的作用种子文件中的 announce 字段中包含了一个 url ,这个 url 也就是 tracker 服务器。首先我们来了解 Tracker 是什么,服务器的作用是作为 peers 沟通的桥梁而存在,当下载者要下载某一个资源的时候,就会去向服务器询问,服务器查询之后如果发现自己保存了这个资源的其他节点,就把这些节点的地址返回,然后客户端知道这些 IP:Port 后,就去与其他 Peer 建立连接。Tracker 不存储任何具体资源的文件信息,只存储文件的哈希值,来帮助 Peers 来建立连接发布者做种(Seed) 做种:指上传文件数据给其他 BT 用户的行为。 种子只有先被制作发布,才能使用,我们来探究一下种子的发布方法。我们先来实操一下,我现在有一个文件夹,叫做「学习资源」在 Utorrent 客户端中,我选择添加新的 torrent 文件,首先会让我选择一个目录,然后选一个区块大小(一般是 256KB)用于分割文件为若干个块,点击创建后,会得到一个文件,我解析字段后,如下图所示:{

"announce": "udp://tracker.openbittorrent.com:80/announce",

"announce-list": [

["udp://tracker.openbittorrent.com:80/announce"],

["udp://tracker.opentrackr.org:1337/announce"]

],

"created by": "uTorrent/3.5.5",

"creation date": "2021-03-27 16:34:08",

"encoding": "UTF-8",

"info_hash": "808eb761570975c41a7236ce8feaea5eb3c4c76b",

"info": {

"files": [

{ "length": 6, "path": ["1.txt"] },

{ "length": 6, "path": ["2.txt"] },

{ "length": 6, "path": ["3.txt"] }

],

"name": "学习资源",

"piece length": 16384,

"pieces": ["f118f355485f17f340330dc1bafb2f98fca7a455"]

}

}一般来说,使用 BT 下载软件进行做种的时候,下载软件会内置几个 tracker 服务器,当然也可以自己找一些 tarcker 的地址添加进去,BT客户端会向这些 tracker 发起请求。Tracker 服务器就会记录下来上传者的 IP:Port ,以便于传输给后续下载者进行下载。 那如果下载者要下载的时候,所有拥有这些文件的人都不在线怎么办。那就真没办法了,这种种子也叫「死种」,因为没人上传,这也就是网上很多种子下载不动的原因。 下载者下载获取 Peers作为一个下载者,在开始下载资源之前首先要向 tracker 宣布自己的存在,同时获得其他人的地址。 因此接下来要做的事情就是与tracker通信,获取peers。我们仍然可以从官方文档中找到下载者与 tarcker 通信的方式 http://www.bittorrent.org/beps/bep_0003.html ,可以看出下载者与 Trakcer 的通信方式有 UDP 和 HTTP 两种协议,具体使用哪一种,看种子里面包含的信息是 udp 还是 http,下面我们以 HTTP 的方式来进行探究:下载者向 Tracker 发起一个 GET 请求,请求的格式包含的关键字段:Tracker 接收到 GET 请求后,Tracker服务器就会反连(NatCheck)下载者的IP地址和端口,这样就可以区分内网用户还是公网用户(如果是内网用户,它是连不通的,因为它会连到Nat服务器或者路由器上,结果就是连不通),然后服务器返回现在正在下载这个文件的所有公网用户的IP地址和端口列表,返回给BT客户端(也可能是部分客户列表),最后如果该用户是公网用户 Tracker服务器会把用户提交的IP地址和端口保存下来,这样其他人就可以找到该用户。在返回的 Body 中,也是一个用 Bencode 编码的信息,正常响应至少要包含 interval 和 peers 两个字段。其中,interval 用于告诉客户端间隔多久再向服务端发一次请求(当然客户端有可能完全不理会),peers 字段包含同伴的 peer_id、ip、port 等信息。BT客户端得到这些其他用户IP后,就可以直接连接到这些IP和端口下载资料了。BT客户端会到所有的用户去寻找自己要下载的东西。BT客户端每找到一个用户就建立一个 Socket来下载 ,所以下载的人越多,速度就越快。我们可以来看一下整个下载过程,这里我参考了一个开源的 torrent 客户端的实现: https://github.com/veggiedefender/torrent-client一个种子文件中的 info.pieces 字段包含了每个小块的哈希值,而每个块的大小都是 256KB。这样就相当于把下载任务分解了,分解成了下载若干个大小为 256KB 的小块的任务。采用并发的方式去依次请求每个块的数据,然后计算好数据的位置放进最终结果中返回,然后把内存中的数据写入硬盘。// Download downloads the torrent. This stores the entire file in memory.

func (t *Torrent) Download() ([]byte, error) {

log.Println("Starting download for", t.Name)

// Init queues for workers to retrieve work and send results

workQueue := make(chan *pieceWork, len(t.PieceHashes)) // 任务队列,包含了若干个下载任务

results := make(chan *pieceResult) // 结果队列,当对应的块下载完成后,就放进结果队列中

for index, hash := range t.PieceHashes {

length := t.calculatePieceSize(index) // 计算每一个序号所对应的块的长度

workQueue <- &pieceWork{index, hash, length} // 把对应任务加入任务队列

}

// Start workers

for _, peer := range t.Peers {

go t.startDownloadWorker(peer, workQueue, results)

}

// Collect results into a buffer until full

buf := make([]byte, t.Length)

donePieces := 0

for donePieces < len(t.PieceHashes) { // 遍历的次数等于下载的块的数量

res := <-results // 接收下载的结果

begin, end := t.calculateBoundsForPiece(res.index) // 计算下载的数据在文件中的位置

copy(buf[begin:end], res.buf) // 把下载的数据 copy 到最终的文件中

donePieces++

percent := float64(donePieces) / float64(len(t.PieceHashes)) * 100

numWorkers := runtime.NumGoroutine() - 1 // subtract 1 for main thread

log.Printf("(%0.2f%%) Downloaded piece #%d from %d peers\n", percent, res.index, numWorkers)

}

close(workQueue)

return buf, nil

}

Peer 与 Peer 之间的通信上面只说了下载者需要向其他 peer 发起连接,没说具体原理,下面我们来探究一下 Peer 与 Peer 是如何建立连接的。握手开始下载一个块的信息时,由客户端向另一个 peer(要连接几个 peer ,就需要握手多少次),发起 TCP 连接请求,请求内容由以下几个字段组成:协议标识符的长度,始终为19 byte(十六进制为0x13)协议标识符,称为pstr,始终为BitTorrent protocol八个保留字节,都设置为0。我们会将其中一些翻转为1,以表示我们支持某些扩展,但是我们没有,所以我们将它们保持为0。我们之前计算出的信息哈希值,用于确定所需的文件(此处指的是整个文件的哈希值,不是某个块的哈希值)我们用来识别自己的Peer ID// New creates a new handshake with the standard pstr

func New(infoHash, peerID [20]byte) *Handshake {

return &Handshake{

Pstr: "BitTorrent protocol",

InfoHash: infoHash,

PeerID: peerID,

}

}

// Serialize serializes the handshake to a buffer

func (h *Handshake) Serialize() []byte {

buf := make([]byte, len(h.Pstr)+49)

buf[0] = byte(len(h.Pstr))

curr := 1

curr += copy(buf[curr:], h.Pstr)

curr += copy(buf[curr:], make([]byte, 8)) // 8 reserved bytes

curr += copy(buf[curr:], h.InfoHash[:])

curr += copy(buf[curr:], h.PeerID[:])

return buf

}

向 Peers 发送一次握手后.我们应该以相同的格式收到一次握手。我们返回的信息哈希应该与发送的信息哈希匹配. 这样我们就知道我们在谈论同一文件,响应格式为,第一个字节代表了协议的长度,接下来这个长度的字节数是协议名称,接下来20个字节为响应的哈希值和 peerIDtype Handshake struct {

Pstr string

InfoHash [20]byte

PeerID [20]byte

}

发起请求的 Peer 接受到对端 Peer 的响应后,对比其中的 Info Hash 字段的值是不是相等,如果不相等就给上层抛出错误。此时 两个 Peer 的握手部分就完成了。数据传输握手完成之后,此时需要进行数据传输,双方的沟通换了一种消息格式:一条消息以长度指示符开头,该指示符告诉我们该消息将有多少字节长,它是一个32位整数, 意味着它是由 4 个 byte 按序排列的字节组成。下一个字节,即ID,告诉我们正在接收的消息类型(Message Type)。最后,可选的有效 payload 将填充消息的剩余长度.// 沟通的消息类型的枚举值

const (

MsgChoke messageID = 0 // 阻塞消息接收者

MsgUnchoke messageID = 1 // 解除阻塞消息接收者

MsgInterested messageID = 2 // 表示有兴趣接收数据

MsgNotInterested messageID = 3 // 没兴趣接收数据

MsgHave messageID = 4 // 提醒消息接收者,发送者已经下载了一个块

MsgBitfield messageID = 5 // 对发送者已经下载的片段进行编码

MsgRequest messageID = 6 // 向消息接收者请求一个块

MsgPiece messageID = 7 // 传送满足请求的数据块

MsgCancel messageID = 8 // 取消一个请求

)

然后双方会利用上述的这种消息格式进行沟通,用以完成数据传输。一个完整的数据传输过程为:数据提供者对下载者发送 Bitfield 消息,告诉自己有这个文件的哪些块(数据提供者并不一定有完整的文件,所以需要告诉客户端,自己有这个文件的哪些块,这个信息通过 Bitfield 来传递,Bitfield 可以理解成一个二进制 bit 数组,数组值为1 ,就代表有这个块,0代表没有)下载者发送 Unchoke 消息,代表自己准备好了,可以进行消息传输了。(握手完成后的刚开始,我们被其他 Peer 认为状态是阻塞的(chocked),我们需要发送一条解锁消息,让他们知道我们可以开始接收数据了)下载者发送 Interested 消息,代表自己要开始下载文件了下载者发送 Request 消息,其中 Payload 包含具体的某个块的信息,包括:块的序号(index),开始位置(begin)和长度(length)。数据提供者向下载者发送 Piece 消息,其中 Payload 里面包含真正的块数据,以及块的序号,开始位置和长度,以便于下载者保存数据不断重复这个过程,直到所有的数据块都被下载完为止。校验哈希值当下载者收到数据提供者发送过来的二进制数据后,会计算一下这个二进制数据的哈希值,然后和自己的 torrent 文件中的对应块的哈希值进行比较,如果哈希值一样,就代表这块块有效,就保存下来,否则视为无效,会丢弃这个块重新下载。这种下载方式一定安全吗? 一种被称为虚假数据块攻击的 P2P污染方法。与传统的P2P污染攻击方法不同,该方法避开“元信息”的发布环节,直接对数据传输过程进行污染,通过浪费下载者的网络带宽来延长下载者的下载时间。攻击者伪装成一个普通节点加入被攻击的文件传播任务对应的BitTorrent网络,将其节点信息注册到tracker服务器上并声称自己拥有全部或大部分被共享文件的数据块。当下载者从tracker服务器中获得了攻击者的节点信息,便与攻击者建立连接并向其请求若干个需要的数据块,但攻击者向其返回无效的数据块。下载者在收到若干个数据块后,将这些数据块组装成一个数据片断并对该数据片断进行哈希校验以保证数据传输的正确性。只要组成数据片断的数据块中有一块是从攻击者处获得的无效数据块,哈希校验就无法通过,下载者会丢弃该数据片断并重新下载该片断对应的所有数据块。因此,攻击者只需要发送一个数据块就可以使下载者下载的整个数据片断作废,从而实现浪费下载者的网络带宽,延长其下载时间的目的。但近年来,越来越多的BitTorrent下载客户端引入了黑名单机制以防范虚假数据块攻击,使数据块攻击的攻击者在发送一定的虚假数据后便被加入黑名单,无法对文件传播进行控制。 见:https://patents.google.com/patent/CN101753572B/zh当 BT 下载遇到 NAT在实际中的网络,目前由于 IPV4 地址不够用,部分运营商一般给用户分配一个 NAT 网络,那么网络结构可能会变成这样。当P2P遇到NAT就比较头疼了,因为NAT进行了IP转换,你告诉邻居节点的IP:PORT是公网的,当他来连接时发现进不来,因为NAT没有做映射。遗憾的是,如果是这种情况,确实会无法上传。我们都知道,一个公网 IP 无法主动向一个内网地址发起连接。那么有没有其他方式去解决这个情况呢。其实是有曲线救国的方法的。流程如下:内网用户开始做Seed服务器收到请求,由于是第一个所以也没有Peer(对端,只一个TCP连接的一方)返回公网用户提交请求,由于Seed是内网用户所以也没有Peer返回,等待下载,但服务器会把它的IP放到列表中内网经过设定的时间间隔后,再向服务器放出请求,得到上面得公网IP得到公网IP后,内网马上进行连接公网用户建立连接,数据开始传输 (实际上现在是公网用户做服务器,内网用户做客户端)其它内网用户去上面公网用户下载数据经过这个流程,内网用户主动向公网发起连接,把数据成功地传给公网用户。但是,这仍是一种曲线救国的方法,实际操作中,我们可以主动要求运营商给家庭宽带分配公网IP,打客服电话很快就可以办妥。但是家庭网络中一般用的都是路由器,那实际PC设备还是在内网,这一步有办法解决吗?实质上是有办法的,即开启路由器中的 Upnp 设置。UPNP的英文全称是 Universal Plug and Play ,即通用即插即用协议,简单来说它的作用是应用程序可以自动和路由器之间协商端口来进行端口映射。由于这一切都是自动的,用户感知不到这个过程,PT(Private Tracker)我之前一直不知道PT是啥意思,为了研究PT,我购买了一个 PT 站,(http://xxx.net/)的会员资格。然后进网站下载了一个电影种子,下面以里面的一个电影种子为例,我们来研究一下 PT 种子的文件格式出于保护站点需要,以下我们均以「XXX」代替本站点{

"announce": "https://www.xxx.net/announce.php?passkey=xxxxxxxxxxxx",

"created by": "Transmission/3.00 (bb6b5a062e)",

"creation date": "2021-03-23 23:56:16",

"encoding": "UTF-8",

"info_hash": "62a3938e4ed8a917e1be86c2ed3047207a0c72eb",

"info": {

"files": [

{

"length": 23406804689,

"path": [

"National.Treasure.Book.of.Secrets.2007.Bluray.1080p.AVC.Remux.TrueHD.5.1-PTH.mkv"

]

}

],

"name": "National.Treasure.Book.of.Secrets.2007.Bluray.1080p.AVC.Remux.TrueHD.5.1-PTH",

"piece length": 2097152,

"pieces": [

"0b756bb6b4353484d58dee40616dc2c70c10fbeb",

"f7fa7f6a7eb82bfccf1650f426527c235dc3acbc",

"cdd40e1eda7ec33d223785c256a55da7cf94acaa",

"62bc80029ae21704cb437cfbc58c1fb353324404",

"f456d5931ba116549d8c31c779e12f68a0ccc51c",

"8878830cd11be1f2b63eb78d661259be951be50e",

"077ad7881c4fb3628c1f11c7c5fa8b608ecb832a",

"6d14a2cdddda2f8289eb1d3bbf81b61bfa328763",

"60d0c976e0e80ddb04abd4d44982130e13e9a838",

"太长了省略,这里一共 11162 行"

],

"private": 1,

"source": "[xxx.net] xxx"

}

}可以看出来,相比于 BT,PT种子的 announce 字段中增加了一个叫做 passkey 的东西。还增加了一个字段,private 为 1。那 passkey 这个字段有什么用呢,我们打开 PT 站,登陆自己的账号,会发现网站上面会显示一个值叫做「分享率」,分享率的计算是 【上传量➗下载量=分享率】,那么网站是如何记录你的上传量和下载量呢,就是通过种子中的 passkey 字段来标识。那么,网站为什么要有「分享率」这个概念呢?我们可以回想一下一下 BT 的特点,在普通 BT 的世界里面,每个人都是靠自觉来分享种子&上传文件,但是人都是自私的,大部分的人属于那种下载了就跑的类型,还有些人会刻意的限制上传速度,这样的话,上传者们在默默付出得不到一点回报,长此以往,下载生态就无法构建起来,PT 就是为了解决大家都相当白嫖怪的心理,通过规则来构建良好的分享氛围。 俗话说的好,技术不能解决的事情就要靠规则来限制PT站首先是一个私密的社区,通常是一个小圈子,里面有着大家共同默认的规则,即「想下载就必须先分享」,以 XXX 社区为例,规定如果一个人的分享率小于 0.2 ,则无法继续下载,还可能会导致封号,一个人要想去下载资源,就必须先做种,分享自己的带宽,由网站来记录用户的上传流量,当分享率为正的时候才能去下载资源。这样就形成了一个良性循环,上传者为了下载会分享自己的带宽,而下载者也会因为上传者的上传,下载速度会大大提高。这才是 P2P 的精髓,「人人为我,我为人人」题外话:PT协议一定安全吗? PT服务器与BT客户端之间的通信协议很简单。一开始BT客户端会向PT服务器发出请求,告知种子的状态(完成还是需要下载)。PT服务器返回一个间隔时间和peer列表。此后,BT客户端按照PT服务器给定的间隔时间定时向服务器报告上传了多少,下载了多少,还剩下多少(任务结束时也会报告同样的信息)。这个过程中的问题在于,上传量数据完全是由客户端提供的,而针对如此庞大的P2P网络,PT服务器完全无法验证上传量的真实性。所以,只要伪造了这个通信的过程,上传量就可以随意设定了。 从理论上讲,这种伪装做种/欺骗上传量的方法是无法从根本上防范的,因为PT服务器没有掌握足够信息。 事实上,目前已经有了破解工具(http://demon.tw/software/ptliar.html,https://wenku.baidu.com/view/19bcafe06f1aff00bed51eec.html)在网上流传,所以根本上,PT还是需要靠人自觉。BT的延伸 - DHT网络根据上面的介绍,我们来思考一个问题,BT下载严重依赖于 Tracker 服务器,那是不是意味着 Tracker 崩了整个 BT 网络就崩了,当然 Tracker 可能不止有一个,多个 Tracker 服务器可以增加 P2P 网络的容错性,那有有没有一种比较优雅的解决方案,来更好的解决这个问题呢?为了摆脱对 Tracker 服务器的依赖,彻底去中心化,这时候,DHT 出现了,DHT全称分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个节点负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储,相当于所有人一起构成了一个庞大的分布式存储数据库。在 DHT 网络中每个节点拥有两个角色: 作为 BT 下载的节点,来进行上传和下载资源。 作为DHT网络中的一员,作为一个小型 Tracker ,保存一部分其他 Peer 的地址信息。 DHT 的本质是把所有人都变成一个小型 Tracker,每个人都拿着一份动态更新的地址和文件信息。当需要进行下载的时候,先根据自己本地存的路由表找其他节点,其他节点再去找他们保存的其他节点,直到找到拥有文件的人。一传十十传百、千、万,最后通过N个人的中转,找到应该连上的人。磁力链接事实上,目前最流行的下载方式是磁力链接(Magnet URI scheme)就是基于 DHT 网络的,通常是一串这样的神秘代码:其中urn为统一资源名称,btih 是BitTorrent Info Hash的缩写,是 BitTorrent 使用的Hash函数。除了 btih 还可以是其他类型的Hash函数,但不如 btih 用的多。这一串长度为40的字符串正是文件内容的Hash,BT下载工具就根据这个Hash在DHT网络中定位下载文件。那仅凭一个哈希值,peer 之间是如何互相找到的?这个时候我们就需要了解一下DHT是具体怎么构建的。KRPC 协议刚才我们说到 DHT 中文名叫「分布式哈希表」,那么看名字就知道,这是一个哈希表,只不过是分布式的而已,对于哈希表我们肯定都很熟悉了,这不就是 Key,Value吗?那在 BT 下载中的 key 和 value 是什么呢,毫无疑问,Key 就是上文中说到的磁力链接中最重要的部分 InfoHash,占 160bit,value 自然就是 peers 的 IP:port 的列表了。那既然是一个哈希表,就要支持 Set(key,value) 和 Get(key) 操作,那磁力链接下载的本质就是给你一个key,你去分布式哈希表中找到 value ,然后去下载。BitTorrent 官方采用的 DHT 协议名字叫做「Kademlia」协议,我们来简单了解一下它的思想:DHT 由很多节点组成,每个节点有自己的ID,每个节点保存一张表,表里边记录着自己的好友节点。当你向一个节点 A 查询另外一个节点 B 的信息的时候,A 就会查询自己的好友表,如果里边包含 B,那么 A 就返回 B 的信息,否则 A 就返回距离 B 距离最近的 k (一般k=8)个节点。然后你再向这 k 个节点再次查询 B 的信息,这样循环一直到查询到 B 的信息,查询到B 的信息后你应该向之前所有查询过的节点发个通知,告诉他们,你有B的信息。 那么在这个过程中,A 怎么知道 距离 B 最近的 K 个节点呢?难道是记录了地理位置?当然不是,此处说的距离与现实世界中的距离没有一点关系,此处的距离是一种逻辑上的距离,可以通过计算(XOR)来得到。 关于路由表和 Kademlia 的详细介绍,这里不再展开(挺复杂的),可以参照官方文档。我们这里的重点在于了解如何根据磁力链接获取拥有该磁力链接对应的种子文件信息的Peers,所以只需要了解分布式哈希表的功能,以及如何使用这个哈希表,使用哈希表的办法是采用 KRPC协议。 KRPC协议是由 Bencode 组成的一个简单的RPC结构,有4种请求:ping、find_node、get_peers 和 announce_peer。ping: 检测节点是否可达,请求包含一个参数id,代表该节点的nodeID。对应的回复也应该包含回复者的nodeID。用来侦探另一个节点是否在线。 find_node: 该请求包含两个参数id和target,id为该节点的nodeID,target为要查询的nodeID。回复中应该包含被请求节点的路由表中距离target最接近的8个nodeID。 get_peers: 该请求包含两个参数id和infohash,id为该节点的nodeID,infohash为种子文件的SHA1哈希值,也就是磁力链接的btih值。如果被请求的节点有对应info_hash的peers,他将返回一个关键字values,这是一个列表类型的字符串。每一个字符串包含了CompactIP-address/portinfo格式的peers信息。如果被请求的节点没有这个infohash的peers,那么他将返回关键字nodes,这个关键字包含了被请求节点的路由表中离info_hash最近的K个nodes,使用Compactnodeinfo格式回复。 announce_peer: 用来告诉别人自己可提供某一个资源的下载,让别人把这个消息保存起来。这样就可以分享给其他人,让其他人连接你进行下载。 整体看 DHT 这个哈希表,find_node 和 get_peers 就是我们之前说的 Get(key),announce_peer就是 Set(key,value)。那这样我们就可以只拥有一个哈希值,就可以在 DHT 网络中找到要下载的信息了。 题外话: 现在网上有很多在线工具,支持把种子文件和磁力链接互转,实际上原理很简单,把种子文件转换成磁力链就是提取文件的 hash 信息,然后用拼接了一下。把磁力链转换成种子文件就是先去 DHT 网络中查数据的元信息,查到之后按照 Bencode 编码格式进行编码。 新节点如何加入DHT网络(冷启动)当一个新节点首次试图加入DHT 网络时,它必须做三件事:如果一个新节点要加入到DHT网络中,它必须要先认识一个人带你进去。这样的人我们把他叫做bootstrap node,常见的bootstrap node有:http://router.bittorrent.com、http://router.utorrent.com、http://router.bitcomet.com、http://dht.transmissionbt.com 等等,我们可以称之为节点A ,并将其加入自己的路由表向该节点发起一次针对自己ID的节点查询请求,从而通过节点A获取一系列与自己距离邻近的其他节点的信息刷新所有的路由表,保证自己所获得的节点信息全部都是新鲜的。磁力搜索引擎的原理现在网上有很多磁力搜索引擎,大家可能会好奇他们网站的资源是从哪里来的,一个资源不可能凭空产生,那有一个很明显的结论:如果有人想下载一个种子,那么必然有人制作了这个种子。因此,只需要写一个爬虫程序,把它伪装成 DHT 网络中的一个节点,这样当其他客户端想下载某个 torrent 时,就会在 DHT 网络发起广播,当它询问到我的节点时,我就知道了:哦,原来有人要下载这个种子啊,那么在 DHT 网络中肯定有这个种子。于是我把这个种子的信息保存到 MySQL/ES 中。 通过检测别人对我的询问情况,我还可以知道某个种子的热度。这种爬虫也称为 DHT 网络嗅探器。这样,知道了种子的地址,名称等信息,只需要做一个网站,就可以利用手中的数据做一个磁力链接搜索了。相关软件推荐https://trackerslist.com/#/zh 这是网友维护的一个开源项目,每天会维护全网热门的 Tracker列表https://motrix.app/zh-CN/ 一个开源的支持下载 HTTP、FTP、BT、磁力链接等资源的工具。没有广告,跨平台,使用 electron 编写,支持 Windows/Linux/macOS,Github链接:Motrix思考国内 BT 生态的现状IPV4地址缺少事实上,国内目前的 BT 生态很恶劣,首先现状是我们的互联网还是大量使用的 IPv4 ,这就导致了 IP 地址很稀缺,根据维基百科「各国IPv4地址分配列表」 可以看出,美国 3 亿多的人口,拿走了 15 亿的 IPV4 地址,而中国 13 亿的人口,却只有 3 亿多的 IPV4 地址,这就势必造成了国内运营商分配到每户的 IP 地址是经过层层 NAT 的,有公网 IP 的网民并不多。不过好在大部分网民没有公网IP需求,基本上只要有需要可以和运营商客服协商,给自己的网络分配一个 IPV4 地址。 希望尽快普及 IPV6 潜移默化的习惯大多数网民下载资源仅仅是想快速的进行下载,并没有上传意识,有相当一部分人甚至不知道BT下载还需要上传,知道会上传的网民很多会认为这会占用自己的上行带宽,主动限制网速。由于习惯带来的问题是很难改变的。时代的变迁国家的各种政策,以及中国网民付费意识越来越强,越来越容易接受正版化,可以很方便的从各大视频网站中满足自己的需求。网民们大部分使用的并不是 PC ,而是手机,消费内容的方式更多的也变成了手机 APP,而手机本身,就不是很适合来运行这种 BT 软件。迅雷迅雷的工作原理是,先看自己服务器有没有相关资源,如果有的话会主动进行限速,引导用户开通会员去进行下载。对于服务器中没有缓存的资源,进行 BT 下载,迅雷可以获取其他 BT 软件的用户,但其他 BT 软件无法获取迅雷的用户,用户数量上存在差距,也就导致了迅雷的下载速度越来越快,迫使其他用户转而使用迅雷,使得国内很多资源只有 迅雷 才有下载速度,而其他 BT 软件速度越来越不如迅雷,劣币驱逐良币,最终形成恶性循环。导致整体性的国内 BT 速度下降。迅雷的种子只会给使用迅雷的人进行上传,这和 P2P 的理念是相悖的。网盘时代自从进入了网盘时代,很多分享的链接都是百度网盘的链接,这确实可以避免死种这种没速度的问题,但是却让使用 BT 的人越来越少,造成整体下载速度下降。BT 的未来目前 BT 的使用更多的是在一种灰色地带,大多数的影像/音乐等资源都是存在版权风险,而人们正版化意识越来越强,现在获取电影等资源已经很好的得到了满足,比如长视频爱优腾,视频网站都有大厂支持,看电影有大量的 CDN 可以进行资源分发,不用担心传输速度慢的问题。BT/PT 用户应该还是持续的在小圈子里面存在下去,有很多发烧友喜欢电影的原盘,动则几十上百G,这种需求是爱优腾无法支持的,像BitTorrent这样的P2P技术是对下载方式的一次革命,个人用户分享一个资源从未变得如此方便,这些天才们的设计,让我们拥有了一个无法被审查和追踪的去中心化网络。这催生了庞大的盗版产业,但也让很多内容有机会避开审查。因为网站可以被隔离、被拔线、被禁止访问,但种子不会。只要种子不死,那些不存在的音乐图书和视频就还活在互联网上,没有任何人可以毁掉。 我个人认为,BT 在以后相当长的一段时间内不会消失,但是使用量也不会增多,会逐渐变成小圈子的分享。不可否认的是,P2P技术改变了互联网对资源分享的方式。参考资料https://zh.wikipedia.org/wiki/BitTorrent_(%E5%8D%8F%E8%AE%AE)https://zh.wikipedia.org/wiki/%E5%B0%8D%E7%AD%89%E7%B6%B2%E8%B7%AFhttps://www.bittorrent.org/beps/bep_0003.htmlhttps://github.com/veggiedefender/torrent-clientP2P 网络核心技术:UPnP 和 SSDP 协议为什么国内的bt环境那么恶劣,没人做种? - 知乎BT下载的未来 - 阮一峰的网络日志https://paaatrick.com/2019-07-07-network-protocol-p2p/https://github.com/shiyanhui/dht/wiki/%E3%80%90%E4%B8%80%E6%AD%A5%E4%B8%80%E6%AD%A5%E6%95%99%E4%BD%A0%E5%86%99BT%E7%A7%8D%E5%AD%90%E5%97%85%E6%8E%A2%E5%99%A8%E3%80%91DHT%E7%AF%87https://github.com/BrightStarry/zx-bthttps://www.aneasystone.com/archives/2015/05/analyze-magnet-protocol-using-wireshark.html编辑于 2021-04-24 15:41torrent对等网络(P2P)BT 下载(BitTorrent)​赞同 246​​26 条评论​分享​喜欢​收藏​申请

你的BT下载保姆级指南(1):最适合PC使用的BT下载工具——QBitTorrent Enhanced Edition - 知乎

你的BT下载保姆级指南(1):最适合PC使用的BT下载工具——QBitTorrent Enhanced Edition - 知乎首发于本格の科学領域切换模式写文章登录/注册你的BT下载保姆级指南(1):最适合PC使用的BT下载工具——QBitTorrent Enhanced Edition聿纾INTP/马猴烧酒/智性恋/128的弱智/腹黑/毒舌/死傲娇/科技控/战忽时评员前两天看到 @狂想志士文戴塔 提出的号召:《让我们为开放获取而战:Sci-Hub拯救行动的最新进展及新手教程》,了解到SCI Hub项目原来岌岌可危到了这个地步。作者在文章里,提倡使用 QBitTorrent 这个BT下载工具,作为为稀少的 SCI Hub 论文库分片种子做种备份的手段,获得了不少支持。我大概下载了4TB的稀缺SCI Hub论文分片,并在持续做种习惯了在线看剧,网盘下载,重新接触并深入理解 BT 下载,让我这个拥有10年上网经历的老网民感慨万千,时代仿佛就像无数次轮回,新事物不一定比旧事物靠谱。“上云”并不是一剂良药:巨头的版权鏖战、内容审查、数据遗失走过了蛮荒的 BT、快播、小视频站、网盘时代,随着资本的强化和寡头化,大公司整合流媒体资源,集中购买影视听等娱乐资源版权的能力愈加强大,现如今,我们终于迎来了大版权时代。这是一个充满便利、却又处处受限的时代,充值月均几块钱的视频会员,就能拥有随时随地在线浏览数以万计片源的权力,不必再担心本地存储大量片源导致硬盘空间不够的问题。但是,内容因审查、版权、举报等问题被迫下架等问题,让我们见证到,互联网内容如果高度中心化,带来的后果是无穷的。毕竟谁都不想做“正版软件的受害者”,对吧。B站开始打压影视剧搬运up主,等于变相引导用户只能消费官方发布的版权影视内容网易云音乐歌单里大量歌曲变灰,也是巨头们版权争夺战带来的恶果虽然剧集可能会下架,网盘服务商可能会跑路,你离线下载空间里的内容可能会“违规”。但无论什么时候,什么内容,没有人有权力强制删除存放在你本地硬盘里的内容,也无法阻止你使用去中心化的工具分享出去。这就是我们要搞本地存储的意义。通过难以被版权审查的方式,将需要的文件下载到本地,最重要的方式就是BT下载,自从接触 QBitTorrent 这个工具并使用,我积累了不少使用心得,在这里与大家分享。穷凶极恶的迅雷@西柚秀 在《 为什么国内 BT 环境如此恶劣?下载速度如此糟糕?我总结了六点原因... 》这篇文章里指出了迅雷的原罪:迅雷用户之间是一个圈子,会把圈子之外其他 BT 软件用户上传提供的速度的吸进自己的圈子,导致迅雷客户端的圈子越来越壮大,而其他 BT 软件共同组成的圈子却越来越弱小,对于其他客户端来说,迅雷只进不出,故称吸血雷。迅雷可以获取其他 BT 软件的用户,但其他 BT 软件无法获取迅雷的用户,用户数量上存在差距,也就导致了迅雷的下载速度越来越快,迫使其他用户转而使用迅雷,使得国内很多资源只有 迅雷 才有下载速度,而其他 BT 软件速度越来越不如迅雷,劣币驱逐良币,最终形成恶性循环。导致整体性的国内 BT 速度下降。迅雷和其他 BT 软件一样,下载速度依然来自其他用户免费共享的上传速度,至于会员加速本质上就是解除连接用户数限制(连接到更多用户就能获得更快下载速度),迅雷靠着 假·会员加速 赚的盆满钵满,而其他 BT 软件绝大部分都是免费的。如果你发现你下载的资源只有迅雷有速度,那代表下载这个资源的用户绝大部分都是迅雷用户,导致其他 BT 软件无法获得迅雷用户的上传,反而自己的上传会被迅雷吸走。网际快车、QQ 旋风早已死去多年,115 网盘现在极度封闭,百度云盘的 BT 功能除了离线下载以外,没有 P2P 下载模式,并不是一个具备完整 BT 下载客户端该有的样子,国内最主流的下载工具只剩迅雷一家独大。现在的迅雷,真是罄竹难书,软件浑身每个毛孔都在告诉你要办会员,不办会员别想下载,为什么呢?因为你如果不是会员,就没法使用“会员加速”和“抱团下载”,很多人搞不懂这两个功能的意思,“会员加速”就是离线下载,迅雷官方服务器先把资源给缓存好,然后你客户端相当于是直接连接到迅雷离线服务器把资源拖下来的,但因为各种因素,好多敏感资源都被 ban 掉了,这个下载加速途径等于被废一大半。另一个“抱团下载”,就是允许你加入迅雷自己搞得那个 P2P 网络,迅雷自己的P2P网络可谓是臭名远扬了,光吸取其他 BT 网络的上传,却不分享自己的上传给其他用户下载,而且这个 P2P 网络很封闭,只有迅雷用户才能加入,虽然理论上来说,所有用户都有加入到“团”里的资格,但它这个“团”是有名额限制的,一个团最多不能超过60个用户这样子,如果团满了,新的用户想加入到这个“团”里下载,超级会员可以踢掉白金会员,白金会员可以踢掉普通用户,就是这样的蛊王选拔机制,使这个团里最后筛选到的用户,大部分是付费会员。如果你是普通用户,被踢掉后每天只能插队一次,白金会员被踢掉后每天可以插队3次,超级会员是50次,如果你经常使用迅雷下载资源,白金会员的插队次数根本毫无用处。一个本该具备“人人为我,我为人人”下载精神的软件,却把自己的最核心功能打包成会员卖,并且只有“最尊贵”的会员,才能享受到完整的下载功能,这种行径真是太恶劣了,而且用迅雷客户端做得稀烂,以前出过各种界面比较清爽的极速版、U享版,都被官方下架了,以前能在NAS等设备上用的“迅雷远程下载”也被下架了,逼着用户去用它那shit一样的官方客户端,下东西的时候,电脑风扇狂转,迅雷11吃的CPU占用率一直在10~20上下,相比运行的时候风扇只有轻微声响的 QBitTorrent,占用那么高的系统资源简直就是毒瘤。迅雷在国内 BT 下载市场做到了极致,可惜这片市场马上就要萎缩干净了,如果国内的网民还意识不到本地存储的重要性,认识不到迅雷的险恶,不使用合乎规范的 BT 下载工具,不遵守下载多少上传多少的基本素质,国内 BT 下载的未来,估计也就是小圈子里搞 PT 圈地自萌了,普通人只能被迫吃资本喂的奥利给。斯文扫地的 μTorrentμTorrent 曾经是我十分推崇的一款 BT 下载工具,它是瑞典人 Ludvig Strigeus 开发的一款轻量化,功能健全的 BT 客户端。但最新版的 μTorrent,早已不复当年良心,下面我列出μtorrent的罪状:附带垃圾软件(uTorrent 偷藏 BitCoin 挖礦軟體?請學會檢查安裝流程);2. 被大量杀毒软件报毒(uTorrentは現在、いくつかのウイルス対策エンジンによって悪意のあるフラグが付けられています μTorrent 现在被若干个杀毒软件引擎打上“恶意”标签);3. 其母公司“BitTorrent”被波场收购,对就是CEO是请巴菲特吃饭放鸽子的那个孙宇晨开的区块链公司,玩币圈的国人,以及这个圈子里出品的、接手的东西,全都恶臭至极,有一个算一个(BitTorrent Inc. Officially Confirms Acquisition by TRON Foundation);4. 推出会员制,区别对待用户,BT下载本该是平等的,凭什么搞特权制,把用户分成三六九等?国人还是太精明了,搞什么东西,都是封闭、私有、利益优先,我不是自嘲,就开源软件、互联网这块,老白男的底线、素质、贡献,就是比国人高。BT 下载之王:QBitTorrent Enhanced EditionQBitTorrent Enhanced Edition 是基于 QBitTorrent 本体开发出来的一个功能增强分支,QBitTorrent 诞生于2006年,原本不温不火,但随着其他竞品流氓化、自身又在不断增添与时俱进的新特性,成为国内外很多博主、PT 站首选推荐的 BT 下载客户端。谷歌的推荐结果QBitTorrent Enhanced Edition 相比原版增加的功能:基于原版重编译,主要特色:可以自动屏蔽迅雷等BT下载工具吸血;提供IP过滤规则高级功能,可以根据需要在选项自定义选择tracker;提供自动禁止来自中国地区的 IP 未知客户端(迅雷、QQ旋风等)功能(该选项默认关闭);自动 ban 掉一段时间内只发起连接,上传为 0 的用户;提供自动更新订阅公共 Tracker 服务器地址列表(该选项默认关闭);提供下载完成后重新效验 torrent 种子文件功能(该选项默认开启);解除原版客户端启动多开限制,不受原版限制可以多开运行。下载 QBitTorrent Enhanced Edition鉴于国内连接 github 的速度很慢,我给出了国内的 github 镜像站,你可以通过镜像站访问 QBitTorrent Enhanced 项目:选择适合你操作系统的最新版本,下载并安装:下载完成后,按常规方式安装即可,软件无任何流氓软件附带,请放心使用。国内 QBitTorrent Enhanced Edition 食用指南@西柚秀 总结过国内BT下载速度慢的原因,如缺少公网IP、上下行不对等,运营商对 UDP 协议的连接采取 QOS 策略等。这些属于物理层面的限制,除非你能付出更多成本,办理具备独立公网IP(也可以向工信部投诉,让运营商给你分配到公网IP)、上行速度更快、精品网络(电信氮气瓶国内加速)等宽带产品,否则没有别的方法改善下载速度。下面我们主要来谈一下,不需要依赖物理手段,只要精确调校好 QBitTorrent Enhanced Edition (以下简称“QBTE”)客户端的设置,就能大幅优化过程中资源下载速度的手段。本人因正在学习日语,所以使用的是日本语界面,部分名词称呼可能和中文版有所区别,但操作逻辑相同。打开 QBTE ,点击“工具”→“选项”→“行为”栏:开机自启关闭,否则会影响开机速度。“文件格式关联”项里,把“使用 qBittorrent 打开 .torrent 文件”勾选,“使用 qBittorrent 下载磁力链”不要勾选,在无法顺利检索其他对等节点的情况下,用磁力链获取种子文件会卡半天。Tips:如何将磁力链转换成种子文件?不需要迅雷极速版,访问:Magnet >> Torrent ,把磁力链接粘贴到红框中,随后网站会立马弹出对应的种子文件供下载。“电源管理”中,把“种子下载时禁止系统睡眠”和“做种时禁止系统睡眠”关闭,下面“日志备份文件大小”和“超过此期限删除日志备份文件”的值,请根据自己电脑硬盘大小酌情设置。2. “下载”栏,如果你需要打开多个种子文件,并将它们下载到同一目录,可以取消勾选“显示种子内容和其它选项”,并勾选“启用子分类”,并指定合适的“默认保存路径”。其它选项不用改动。3. “连接”栏,“节点连接协议”里,如果你当地运营商对 UDP 协议封锁严重,建议只选“TCP”,如果你的设备没有公网IP(任何在内网里通过路由器访问外网的计算机都算),“开启路由端口向 UPnP/NAT-PMP 的转发”请必须开启,“启动时使用随机端口”也建议打开。除非有特别需求,否则“连接限制”的子项不勾选。下面重点来了!“代理服务器”选项及其说明稍微有点绕,这里需要好好讲一下。代理服务器类型如果是“无”,那么下面的相关选项全是灰的,QBTE 的所有连接,都是裸连,不会经过任何代理,这个很好理解。如果选择“socks5”(具体取决于你电脑上运行的代理软件在本地搭建的是何种代理类型),并指定好了“主机地址”与“端口”,如果勾选了下面的“通过代理服务器连接其他节点”,说明 QBTE 会在连接 Tracker 服务器、从其他用户那里下载文件、把本地文件上传给其他用户的时候,都会通过代理连接;如果不勾选“通过代理服务器连接其他节点”,那么 QBTE 仅会在连接 Tracker 服务器的时候,使用代理连接,与其他用户交换文件的时候,不会走代理连接。也就是说,如果你在国内,有一个连接到国外,线路还不错的梯子,我强烈建议你首先正确配置好代理服务器类型,并且不勾选“通过代理服务器连接其他节点”,因为:1. 大部分国外VPS都是靠流量计费,BT 下载动辄上百 TB 级别的流量,一般的 VPS 真扛不住;2. QBTE 也有大量国内用户,用梯子和他们连接,无疑舍近求远;3. 大部分 Tracker 服务器在国外,国内直连速度很慢,通过线路好的梯子转接访问,反而能加快找到更多用户节点的速度,从而提升下载速度。代理工具“v2rayN”的状态栏演示,你可以根据你所使用的代理软件的设置,配置 QBTE 里代理服务器的连接类型、代理主机地址、端口。“只使用代理服务器连接种子”不做勾选,“IP地址过滤”也不用勾选,QBTE 已具备完善的防吸血功能。Tips:简单理解 Tracker 服务器,就是一个中介,这个中介认识的人多(连接到它的节点多),消息也很灵通(它手上掌握的文件—哈希值—节点对应的链表全),传话的速度也很快(和其他节点连接快),你联系中介,中介根据你手上待下载的文件的哈希特征,跟连接到它的所有用户做比对,找到可以和你对接的人,介绍这个人把他电脑里的文件传给你的这一过程会被大大加速;虽然 BT 网络也有比较完善的算法,让你在不依赖中介的情况下找到你需要连接的人,但是如果没有中介的存在,这个寻找并建立连接的过程会变得很慢,甚至极端情况下,比如某个种子里自带的 Tracker 全部阵亡,你会因为没有中介介绍,找不到存有你需要的文件的其他节点而获得不到任何下载速度。4. “速度”栏里,一般不对任何项目做限制,除非你处于多人使用的网络,担心自己的连接因长期满速占用带宽,对其他用户产生影响,或你的路由器硬件无法承受长时间的高速带宽连接(我做限制的原因是我的网络环境下,如果下载跑满速 60MB/s 持续超过半个小时,路由器必死机)。5. “种子”栏中,“开启 DHT(分布式网络)”(可以脱离 Tracker 服务器获得待下载文件片段的哈希表,以从其它节点下载)、“开启节点交换”(允许节点之间端对端连接,以脱离 Trackers 服务器,自治更新统计参与到 BT 下载网络的参与者信息)、“开启检测本地节点”(如果局域网里也有人和你下载同一个文件,你们可以在内网互传各自有无的文件片段)。这三个选项,减少了节点对 Tracker 服务器的依赖,大大提升了 BT 下载网络的健壮性,可以说代表了 BT 这种去中心化网络运行哲学的精髓,必须全部勾选。匿名模式中,推荐选择“强制使用加密”,并且勾选“启用匿名模式”。Tips:有关 BT 网络运作的技术原理,可以参见 @回形针PaperClip 制作的《别再问我什么是 BT 种子_哔哩哔哩》或《Vol 075 别再问我什么是 BT 种子 - YouTube》。Tips:有关“匿名模式”,QBTE 的官方文档是这样说明的:WARNING: anonymous mode doesn't provide strong privacy guarantees on its own. If you are concerned about legal authorities and copyright trouble, for example, consider using a VPN instead (or in addition to it). Anonymous mode is only meant to further prevent your BitTorrent traffic from being associated to you, even when using other privacy enhancing mechanisms (such as a VPN service), by limiting the scope of the information broadcasted by the client (such as the fingerprint in the peer-ID).When enabled, qBittorrent will take certain measures to try to mask its identity. The exact functionality of Anonymous Mode depends on the version of qBittorrent (specifically, libtorrent-rasterbar) being used.If you're using VPN, proxy or I2P, you probably want to enable Anonymous Mode.翻译:警告:匿名模式本身不能提供强大的隐私保证。如果你担心法律管制和版权问题,请考虑使用 VPN 替代连接(或采用其他方式)。匿名模式仅会通过限制客户端广播的信息细节(如节点 ID 的指纹特征),防止你的 BT 流量与你产生关联,即使你正在采取其他隐私增强机制(例如连接到 VPN )。一旦启用匿名模式,qBittorrent 将尝试采取某些措施掩盖自己的身份。具体功能的实现取决于用户所使用的 qBittorrent 版本(特别是 libtorrent rasterbar)。如果你正在使用 VPN、连接代理或是加入了 I2P 匿名网络,你可能需要启用匿名模式。根据官方文档的说明,我个人的理解是,QBTE 等客户端在开启匿名模式后,仅仅隐藏了发送的数据包中,包含当前用户(客户端)的唯一识别码、用户的 IP 地址、用户待下载的文件的名称,容量,MD5 码等关键信息。但如果你采取的是裸连方式,你的计算机接收 & 发送了多少数据,数据是否符合 BT 下载流量的特征,都是可以被你的上级路由器给截获的,在美国等内容版权限制严格的地区,尤其是在公司、学校、政府机构等场所,网管会对这类流量的特征识别做十分详细准确的甄别,不管你下载的是什么,只要有相关行为,定位到内网的具体 IP,通过与 IP 相绑定的计算机,就可以抓到你正在搞 BT 下载,并给你开警告信。更有甚者,玩起“钓鱼执法”也是游刃而余。比如你使用的是家庭宽带下载 BT,虽然不存在大型机构有你的上级来管教你一说,但“版权警察”会伪装成线人,在盗版种子下载网站,发布内置“钓鱼 Tracker”的种子,“钓鱼 Tracker”具备正常 Tracker 的所有功能,并且会详细统计出你 IP 连接到它自身的时间、下载的具体资源、传输了多少流量,经过一段时间的搜集,证据确凿,直接提交给你的 ISP,到时候你就老老实实等着吃运营商开的罚单吧。所以,“匿名模式”虽然可以保护下载 BT 时流量的隐私,但无法掩盖你有通过 BT 下载侵权内容这一行为的事实。如何隐藏“我正在使用 BT 下载”的行为,请参见下一节:“国外 QBitTorrent Enhanced Edition 食用指南”。6. RSS国内手机 App 订阅、关注大行其道的现状下,RSS 早已消亡,没什么人用,自然就没什么好讲的了。7. Web UI这个是连接到装有 QBTE 的远程主机(VPS)控制用的,我们本篇文章主要谈的是 PC 上QBTE 的使用,这里暂且不表。8. 高级“显示节点国家/地区旗帜”勾选。“磁盘缓存”设置的越大越好,具体和你计算机配置的内存容量有关,最少也推荐设置成 512M 大小,“磁盘缓存写入间隔”根据你设置的缓存大小/你存放任务的硬盘的写入速度(每秒)计算得出。其他选项保持默认即可。最后点击该对话框右下角“应用”,再点击“确定”退出,改动的选项较多,最好再重启软件一次。国外 QBitTorrent Enhanced Edition 食用指南发达国家的网络环境一般要比国内好很多(有独立公网 IP、UDP 连接不受限、上下行对等、连接本国外网络的带宽大延迟低),大部分设置和上一节国内版保持一致,就能有十分不错的下载速度,着重需要考虑的主要是版权风险。不被上游网络管理员限制或警告的唯一办法,就是防止从本机传输的数据包具备明显 BT 协议,这一点只能通过走代理实现,和国内宽松的 BT 下载限制不同,国内连接 Trackers 走代理是为了加快找到中介的速度,国外无论是连接到 Trackers,还是建立 BT 下载,都需要走代理。这就涉及到如何选择代理的问题。1. 自行搭建。国外对代理的限制十分宽松,你无论是搭建 VPN,还是 v2ray、ShadowSocks 等应用,都没人会对你的代理服务器随意做阻断,具体步骤我就不详述了。选择服务器这块,价格低廉,带宽大,流量多的 VPS 就没问题,还要注意一点,就是这台 VPS 的服务商得是抗版权投诉的那种,否则你通过 VPS 搭建的代理 BT 下载,虽然你的运营商不会搞你,但你的 VPS 服务商会来搞你:一个用户使用搬瓦工 VPS 下载 DMCA 侵权内容,被搬瓦工警告的例子2. 购买相关产品自己在谷歌上搜索“bt download vpn recommend”,会有一大堆产品推荐,加“BT”关键字,是因为专门为 BT 下载服务的 VPN 的价格,比主打隐私防追踪的 VPN 价格低很多,显然,选择用户多,口碑好,流量大的商家为上策,如果需要长期使用,年付性价比更高。3. 客户端设置“工具”→“选项”→“连接”中,除了要正确设置代理服务器的本地主机 IP、端口,还必须要勾选“通过代理连接节点”,这样才能保证你正在使用代理,连接的 Trackers 和其他节点,避免各种法律纠纷风险。Q&A1. 我用 BT 下载影视/音乐/游戏等资源的下载速度为什么很慢?只有几 kb/s?检查你当前连接到的 DHT 节点的数量,如果数量很少,请检查你能连接到的 Trackers 数量是否过少,导致你通过 Trackers 连接到的节点数量也过少,速度也上不去;即使更新了 Trackers,上文提到的 BT 下载精髓选项也都打开了,考虑一下种子是否过于冷门,全网正在上传的人就是没有多少,此时你应当换种下载;中国移动等运营商对 BT 下载协议有显著的限制,如果是因为这种,要么更换运营商,要么使用代理。2. 我已经下载好了一些资源,但因为重装系统/整理硬盘/卸载了 BT 软件等,导致原任务已经遗失了,想重新将任务做种,该怎么办?打开种子,选择与你文件储存位置一致的下载目录,注意,如果你能保证你手上的文件是正确且完整的(绝大部分时候,硬盘在存储数据的过程都不会出现错误),建立任务对话框中必须要勾选“跳过哈希检查”,否则硬盘会把该任务里的所有文件都读取一遍,通过校验文件哈希码,来确保文件完整性,如果该任务里包含大容量文件,校验过程速度会很慢,对硬盘寿命也有潜在影响。小结比较深入地了解了 BT 下载的有关各种知识后,我们就能因地制宜,寻找到最快速、最安全的 BT 下载之道,为了保卫我们自由浏览、存储各种信息的权力,现在就赶快建立起下载,并把你的上传积极分享给别人吧。编辑于 2021-06-14 15:28BT 下载(BitTorrent)迅雷(软件)qbittorrent​赞同 366​​41 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录本格の科学領域一个技术宅的天