文章

调教 BT 下载器—— BT 入门

按照 BT 的机制,没速度首先应该责怪的是所有下载者,而不是发布者。——题记

什么是 BT ? 我为什么会遇到下载困难?

BitTorrent (BT) 基于 P2P 协议:Peer to Peer,或者更通俗地说:Person to Person,文件从具有该资源的用户传递给其它用户并继续传递下去,而不通过中心服务器传递给用户。在标准的 BT 规范里面,严格遵循着 总下载=总上传 的规则:能下载到的数据,一定是别人传给你的;同样,别人能下载的数据,是包括你在内其他的参与者共同上传的。除了新种子刚刚发布的若干小时内,一般来说在其它时间内超过九成的总上传量应该是由用户相互贡献的,而不是由发布者贡献的。这个道理就跟传播消息时候的一传十,十传百一样。越多知道消息的参与传播,这个消息散布的就越快。

直到迅雷 可能死于17年10月、旋风 死于17年9月 等国产吸血客户端兴起之前,BT 一直是以我为人人,人人为我的分享精神存在。但是这些国产软件改变了这个规则 —— 没人强行规定我要上传吧?也没人说我要传一定要传给任何人吧?对于那些不希望看到什么 “迅雷在上传数据,是不是在上传我的个人文件啊” 的人,我就不做上传;否则,我只上传给我的用户群,让我的用户群体验高速的下载速度,我为啥要管别的软件呢?我知道了消息我不说,或者只在一个很小的朋友圈里面说,一般人我不告诉他。这种客户端我们称之为吸血客户端 —— 只吸血,不奉献。

这些下载软件可能并不一定只是因为能够下载 BT 资源而流行起来的,但是其流行和其吸血下载的特性使得 BT 分享在中国陷入了危机。一方面,上传量的减少使得速度整体受限制;另一方面,很多正统的 BT 封杀了迅雷旋风等客户端——你没有严格遵守 BT 协议,我为啥要帮你。不过商业公司想出了简单粗暴的方法——强行让 BT 从 P2P 变成了 HTTP —— 推出高速通道和离线下载等服务,使用专业服务器为其用户提供高速下载体验。同样只下载不对公众上传的,还有各大网盘的离线功能。可惜,持续的版权压力+净网行动+举报狗让即使是付费服务也变得越来越难用,甚至出现了停止运营和大规模下载故障。

选择适合自己的 BT 下载器

正规 BT 下载器举例如下:

  1. µTorrent 「Win/Linux/Mac/Android」
    付费后的版本似乎可以边下载边播放,然后未付费好像有广告?
    因为安全性问题不推荐使用。
  2. qBittorrent 「Win/Linux/Mac」 - 我在使用的 BT 下载器,除了 BT 下载之外没有什么特别的功能。
    强烈推荐 增强版,该版本屏蔽了许多迅雷等垃圾客户端——他们也不会给你分享,那你何必给他们分享呢?
  3. BitTorrent 「Win/Mac/Android」
  4. Deluge 「Win/Linux/Mac」
  5. Transmission 「Win/Linux/Mac」

使用客户端后如何提高下载速度?

不要马上下载新发布的种子
下载速度很大程度上取决于 上传者/下载者 比例 (SLR)。如果是种子是新发布的,下载人数众多,此时 SLR 很低,总上传带宽难以满足总下载带宽,下载慢是常见的问题。

不要限制 BT 客户端的上传
请牢记你不喜欢低速下载。所以多 上传 让别人不用忍耐同样的困扰。 BT 的同伴倾向于回馈那些给它们提上传的同伴。这就意味着如果 A 和 B 正在同时下载一个文件,而 A 又在高速向 B 传送数据,那么B 将会尝试着回报 A。因此高速上传将导致高速下载。

确保你的网络没有封杀 P2P
某些网络运营商或网络环境会封杀 P2P 。这种情况下,正规的客户端束手无策。(比如中国移动)

尝试添加更多 tracker
虽然 P2P 过程中不存在中心服务器分发数据,但是可以有服务器来帮助客户端相互发现和建立连接。连接到这种服务器所使用的链接称为 tracker。我们在公网发布时会同时发布到多个站点,这些站点会额外添加不少 tracker 来帮助下载同一资源的用户们相互连接。如果你发现连接速度缓慢,可以将尝试找到各个网站版本的种子全部下载并用 BT 客户端打开。主流的 BT 客户端都可以自动将这些种子所带的不同 tracker 合并。这样你在下载资源,尤其是老旧资源时,更有望连接到更多用户而提高下载速度。

如何寻找好用的 tracker

tracker 在 GitHub 上有很多,推荐以下地址
比较通用的 「ngosang/trackerslist
动漫资源特化的 「DeSireFire/animeTrackerList

tracker 使用方法 (以 qBittorrent 为例)

本部分为照顾部分不会使用 BT 的人而写,大部分时候其实只需要在搜索引擎中搜索 软件名 tracker 设置 就可以找到使用方法

qBittorrent 的 tracker 设置

麻烦是是如何取得这些地址,不过我们可以很轻松的去上面提到的 「ngosang/trackerslist」 和 「DeSireFire/animeTrackerList」 获取订阅地址。

以 「ngosang/trackerslist」 举例,打开网页之后看到的是这样的内容:

ngosang/trackerlist 页面截图

里面被我圈起来的内容就是 tracker 集合的订阅地址,而这个地址又分好几种

  • best 字面意思,最好的 tracker 。
  • all 字面意思,全部 tracker (这个网站收集到的全部 tracker)。
  • udp 特殊的 UDP tracker 有着更好的优化,降低了跟踪服务器的运行压力。
    主流 BT 下载器均支持。
  • http 传统 tracker ,以 http 协议传递(简单理解就是传递过程非加密,无验证)。
  • https 传统 tracker ,以 https 协议传递(简单理解就是传递过程有加密,有验证)。
  • ip 某些网络运营商或网络环境的 DNS 服务存在问题,需要直接用 ip 地址访问 tracker 。
  • ws WebTorrent ,是一种我也不熟悉的协议。

我个人推荐的是 best_ip 的地址,因为 DNS 服务经常被污染。
然后 link/mirror/mirror2 这个主要是镜像,因为有的地方的网络严重到无法正常访问 GitHub ,所以需要访问镜像,镜像的内容是和 GitHub 同步的。可以在浏览器中打开链接看自己能不能访问镜像。

关于做种的一些 Tip

如果你只打算下载,那么可以直接跳过这一部分。

某日与群友聊天的时候,群友提到了qBittorrent 在做种的时候有个模式可以选择 v1 v2 混合 三种模式,v2 和 混合 在绝大多数地方不兼容,甚至于在某些pt站里这么搞会被 ban 。

我搜寻了一下相关资料,列在这里:
Bittorrent v2对比及实践相关

附录

提供给不方便访问 GitHub 的人,不保证更新。

tracker 链接

来自 「ngosang/trackerslist」:

来自 「DeSireFire/animeTrackerList」:

直接给 jsdelivr 镜像地址好了

[RAW]       # 原生
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_best.txt
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_all.txt
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_all_udp.txt
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_all_http.txt
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_all_https.txt
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_all_ws.txt
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_best_ip.txt
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_all_ip.txt
https://cdn.jsdelivr.net/gh/DeSireFire/animeTrackerList/AT_bad.txt

License:  CC BY 4.0