bt download tool

bt下载工具

bt下载工具–BitTorrent协议(简称BT,俗称比特洪流、BT下载)是用来分享文件的网络协议程序。和点对点(point-to-point)的协议程序不同,它是用户群对用户群(peer-to-peer),而且用户越多,下载同一文件的人越多,下载该文件的速度越快。且下载后,继续维持上传的状态,就可以“分享”,成为其用户端节点下载的种子文件(.torrent),同时上传及下载。BT用来下载大型文件–比如:软件、系统–window10、电影、文档、游戏,是最理想、快速的选择,它最大的特点就是:你从许多人的计算机中下载同一个文件的不同部分,只要你的基础带宽够高,想多快都行。好吧,bt的原理很简单,这篇文章的目标就是从原理开始,逐步介绍,希望各位小伙伴能够BT快乐!

bt下载工具的原理


bittorrent

BitTorrent协议,由美国的程序员布莱姆·科亨于2001年4月时发布。这位可是Steam游戏平台的开发者之一,同时科亨也是游戏爱好者心中的大神。科亨的BitTorrent下载软件第一版,是python语言编写,并公开代码,之后的BT下载软件,也是按照这个模型来编写的。

从此之后,BT就一发不可收拾。最高峰是在2004年,据坊间传闻:当年网路流量总数的40%来自于种子下载。即便在今日,种子下载也占有全球网路流量的6%。网路流量总数的40%!这是多么恐怖😱的比例,可想而知,当年BT多么流行。由于种子下载占用网络上大量的频宽,而且,涉及版权、内容审核等问题,所以,使用bt的用户一直下降。

bt下载的原理

一般的HTTP/FTP下载–也就是通常我们直接在浏览器中下载文件,下载文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,下载速度就越快。同时,拥有完整文件的用户也会越来越多,使文件的“寿命”不断延长。

BT原理在该图示中,由不同颜色区分的是某一文件的不同部分,当传输开始时,只有种子发布者拥有全部文件,在传输进行中,有部分用户获得部分文件(带颜色线条表示),随着传输的继续,文件已经全部公布在系统中,此时,种子拥有者可以退出,也不会影响该文件的传播。

BT下载–为什么被限速


BT下载大量占用网络频宽

种子下载占用网络上大量的频宽,这对于ISP等网络服务商的利益有很大损害。为什么会这样呢?我们互相下载文件,还影响电信呢?又不是没给钱?年年都缴宽带费。这就要找找运营商的黑材料

ISP网络运营商,这群家伙和黑社会、麦当劳的管理体现如出一辙。大ISP向小的ISP提供网络接入,并向其收费,如何收费:根据流量大小来收费。而最核心的大ISP之间则形成peer-peer对等关系,相互之间转发流量不收费。而,我们普通用户安装的宽带,包括手机上网,其实都是由小ISP提供的。

网络的连通性并不代表路由的可达性,路由器是网络节点之间传输流量的必要设备。小ISP(特别是下游的ISP)是不愿意给其它ISP提供流量中转服务的,因为:流量越多这些ISP就需要向上一级缴纳更多费用。

搞明白ISP的管理,我们来看看BT下载:只要在这个网络内拥有了BT下载的节点,它就可能给其它网络进行流量的中转,这些节点包括:服务器、用户计算机。ISP可以找较大的服务器收费,不然ISP不会给这些服务器上网。然而,对于普通用户ISP就没办法了:我们又不是没缴宽带费?

所以,ISP一定要黑化BT下载,这严重危害了他们的集体利益。

日本黑社会

我们打个比方:我们是社区里的居民,被各种小ISP封闭管理,并向他们缴纳保护,小ISP会不时的向我们推销违禁品。这时候,如果你看上了,但你听远方的哥们说,他们的社区价格更低,你们开始私下交易。不要小看这种交易,这是“违法的”,我们挑战了ISP的利益分配原则。这些违禁品,每一层的利差,都是各级ISP利益分配的结果。

流媒体

目前的流媒体–使用BT技术

视频流量占网络流量的比例越来越大, 而传统网络本身对于视频流媒体不能提供很好的支持。这与当年BT下载出现的情况相同,最终导致会导致ISP服务质量的下降。而,通过部署在服务器,能够对流媒体传输进行优化, 可以由内容提供商建设,也可以由 ISP 统一建设后由内容提供商根据需要购买资源, 这样,整个系统就形成闭环,可以由ISP同一管理利益分配。

我们 对比 BT下载:其实两者基本原理相同,可以说“本是同根生,相煎何太急”。之所以封杀BT下载软件,而流媒体却没事,根本的原因就是利益。

BT下载–侵犯版权、涉及内容审核


这个要看情况,比如电影、音频,如果你买了有版权的,又通过BT分享出来,那可以是侵犯版权。而一些不符合当地法规的内容也BT出来,可能就违法了。

这些其实和BT下载是否违法无关,BT下载只是一种网络工具,有人用来犯法,不等于使用BT软件的人都犯法。这和使用VPN软件是一样道理的,同样是软件,一种工具。就好比菜刀用来切菜,用来砍人肯定犯法啦。所以,各位小伙伴可以大胆使用BT下载。

BT下载的简单原理


BT 下载的文件是其他用户上传给你的,BT下载速度来自其他用户的上传速度。你链接到的做种上传用户越多,你的下载速度就越快,如果没人做种,那你用什么都没速度。BT下载包含了三个主要概念:

peer(同等的人): 在你获得一个有效用户后才会起作用,Peer 会获取该用户客户端里的用户信息。

DHT: 是一种分布式存储方法,相当于 Peer 的进阶,每个人都储存一部分 DHT 网络信息,需要的时候会通过该网络获得用户,然后再从该用户处获得更多的网络和用户,在连不上 Tracker 的时候很有效,但缺点是一开始是没有 DHT 网络的,必须要养一段时间(下载一些热门资源)才行。

Tracker: 它会追踪下载同一个资源的用户,帮助你与其他用户建立连接,让其他用户把文件上传给你(给你提供下载速度),而你又把下载好的文件上传给其他需要的人(给别人提供下载速度)。

这三个并不存在哪个可以替代哪个或者谁比谁技术更先进的问题,因为它们之间是互补的,同时使用可以最大化寻找用户效果。不过 Peer、DHT 不支持自定义,但 Tracker 目前主流软件都支持自定义了。Tracker 因为不是去中心化的,所以经常被版权公司针对、攻击,所以 Tracker 需要经常更换,因此就需要支持自动更新 Tracker 地址的 BT 软件。

BT协议的发展


BT协议经历了两次大发展:

有服务器参与

下载时,BT客户端首先解析种子文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。Tracker服务器是什么?其实不用管,把它想成是种子存放点就行了,这个服务器就是个中转站,里面保存的是资源的分布式信息

无服务器参与

DHT全称为分布式哈希表(Distributed Hash Table),是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。使用支持该技术的BT下载软件,用户无需连上Tracker就可以下载,因为软件会在DHT网络中寻找下载同一文件的其他用户并与之通讯,开始下载任务。

这其实也容易理解:去中性化嘛,和比特币差不多了,客户端有两个关键功能就行:小范围的路由、存储一小部分数据。计算机硬件和软件之间是没有明显界限的:软件可以模拟硬件,硬件也可以仿真软件,所以,客户端也可以通过软件实现路由器的部分功能,只是,效率低罢了。

P2P应用中使用VPN

P2P应用中使用VPN有以下好处:

  • 启用 VPN 后,您将连接到远程 VPN 服务器,将用户 IP 地址替换为VPN服务器的 IP 地址
  • IP 交换可以隐藏您的位置,从而帮助您在共享文件或浏览网页时保持隐秘状态
  • 连接上 VPN 服务器后,您的互联网服务提供商(ISP)就无法轻易限制您的网速
  • 使用 VPN,您将能通过高度加密的隧道传输发送和接收 P2P 文件以及所有其他数据

关于使用vpn翻墙软件是否合法的问题,我有一篇文章专门介绍,有疑惑的小伙伴可以移步看看

BT下载软件推荐


BitComet(比特彗星)

BitComet

BitComet(比特彗星)是一款免费的BT/HTTP/FTP下载软件!功能强大速度快,操作简单的BT下载软件,BT资源下载利器!BitComet有macOS 和 Windows版。主要的功能包括:

  • 长效种子: 独有的长效种子功能,能显著增加下载速度(0.93新功能)。
  • 支持磁链: 使用DHT网络,无需 Torrent 文件即可进行BT下载。
  • 边下载边播放: 支持视频预览,在下载 avi, rmvb, wmv 等视频文件过程中可以边下载边播放。
  • 跨协议下载: BT任务可以自动查找 HTTP/FTP/EMULE 下载源,提高下载速度。
  • 文件分块对齐: 创新的文件分块对齐制作种子,兼容旧版而且不增加任何冗余数据传输。
  • 智能连接优化: 自动根据您的网络连接优化下载。
  • 智能磁盘缓存: 使用内存作下载缓存, 有效减小硬盘读写速度, 延长其使用寿命。
  • 智能磁盘分配: 有效减少磁盘碎片产生。
  • 支持DHT网络: 通过公用DHT网络,无需连接Tracker也能进行BT下载。
  • 自动配置防火墙,支持全自动配置Windows网络连接防火墙(ICF)和网络连接共享(ICS)。
  • 自动配置路由器端口映射,采用UPnP技术实现内网免配置(要求路由器支持UPnP)。
  • 支持多Tracker协议,UTF-8扩展,UDP Tracker v2协议。

qbittorrent–软件不能用了,可惜!


qbittorrent

qbittorrent是基于开源的 qBittorrent 制作的,在原版的基础上增加了很多功能,例如屏蔽迅雷等吸血软件、支持订阅 Tracker URL等。qBittorrent在所有主要平台(FreeBSD,Linux,macOS,OS / 2,Windows)上运行并提供相同的功能。主要功能如下:

  • 类似于µTorrent的用户界面
  • 无广告
  • 集成良好且可扩展的搜索引擎
    • 同时在许多Torrent搜索站点中搜索
    • 特定类别的搜索请求(例如书籍,音乐,软件)
  • RSS feed支持,带有高级下载过滤器(包括正则表达式)
  • 支持许多Bittorrent扩展:
    • 磁铁链接
    • 分布式哈希表(DHT),对等交换协议(PEX),本地对等发现(LSD)
    • 私人种子
    • 加密连接
    • 还有…
  • 通过AJAX编写的Web用户界面进行远程控制
    • 与常规GUI几乎相同
  • 顺序下载(按顺序下载)
  • 对种子,跟踪器和同伴的高级控制
    • 洪流排队和优先级
    • 种子内容选择和优先级
  • 带宽调度器
  • 激流创建工具
  • IP过滤(兼容eMule和PeerGuardian格式)
  • 符合IPv6
  • UPnP / NAT-PMP端口转发支持
  • 在所有平台上可用:Windows,Linux,macOS,FreeBSD,OS / 2
  • 提供约70种语言

motrix


motrix

motrix是一款不太出名的BT下载软件,不过功能一点不弱:

  • 🕹 简洁明了的图形操作界面
  • 🦄 支持BT和磁力链任务
  • ☑️ 支持选择性下载BT部分文件
  • 📡 每天自动更新 Tracker 服务器列表
  • 🔌 UPnP & NAT-PMP 端口映射
  • 🎛 最高支持 10 个任务同时下载
  • 🚀 单任务最高支持 64 线程下载
  • 🕶 模拟用户代理UA
  • 🔔 下载完成后通知
  • 💻 支持触控栏快捷键(Mac 专享)
  • 🤖 常驻系统托盘,操作更加便捷
  • 🌑 深色模式
  • 🗑 移除任务时可同时删除相关文件
  • 🌍 国际化, 查看已可支持的语言

不推荐使用迅雷


要给钱才能下载的BT软件,其实符合BT软件的精神。给钱,我觉得百度网盘更好。当然,现在迅雷还是很多人用的,这只是个人的观点。

当迅雷有非常吸引人的功能:冷门bt种子加速下载、离线下载等功能,而且有些死种,迅雷偶尔也能搞定。所以,有些小伙伴难以割舍。

如果,有小伙伴对这个话题有兴趣,我们就继续研究bt下载。我将通过Aria2这个行命令工具🔧,详细说明BT下载的原理和如何实现上面提及的迅雷功能。

Aria2–BT下载的神器

Aria2

Aria2是一个轻量级多协议和多源命令行下载工具。它支持 HTTP/HTTPS,FTP,SFTP,BitTorrent 和 Metalink。Aria2目前有macOS、 Windows 和 Android版,Aria2可以从多个源/协议下载一个文件,并尝试利用您的最大下载带宽。我们来看看它的“过人之处”:

  • 轻量级。Aria2不需要太多内存和 CPU 时间。当磁盘缓存关闭时,物理内存使用通常为4MiB (正常的 HTTP/FTP 下载),9MiB (BitTorrent 下载)。在下载速度为2.8 MiB/sec 的 BitTorrent 中,CPU 占用率约为6% 。这是以单核计算,多核的小伙伴➗2吧
  • 全功能 BitTorrent 客户端。你想在 BitTorrent 客户端的所有功能都可用: DHT,PEX,加密,磁铁 URI,网络播种,选择性下载、Local Peer Discovery(本地用户发现) and UDP tracker(UDP跟踪)。

好吧,之前我们介绍的BT原理,在这就可以发挥威力了,我们来分析一下,如何实现加速BT!

Aria2的下载原理

BT下载快:要种子多、上传的人多。种子多不是指种子文件,种子多是下载完成的人多,而且保持上传,下完就跑的是不算有种之人的。如果一个种子没有人上传,那么,无论用什么方法包括vpn也没用,下载速度还是为0!

热门种子

BT下载慢,我们首先要排除:真的少人做种、或者无人做种。当我们满怀希望下了热门种子,结果下载速度为0!这真的打击人,真的怀疑被BT软件给骗了。

这就涉及到Tracker服务器、DHT分布式存储、用户本地路由这些功能了:

分布式存储
  • Tracker服务器会存储你的信息,同时会将种子有关的用户数据发送给你,你根据这些信息连接对应的用户,从他们那下载文件。
  • DHT也是这种功能,你可以通过接入DHT网络从而分享以及获得数据,也就是Tracker服务器存储的用户数据,分布到每个用户的个人计算机上。
  • 用户本地路由是和上面两个功能相结合的,有了路由文件(一会设置Aria2 的时候可以看到这个文件),通信接口就畅顺了。

好吧,我们的目的:是为原版的Aria2添加必要的功能,解决第一次安装BT下载软件,下载慢的问题。并实现迅雷的功能,即:下载冷门种子也可以得到不错的速度。那么,针对BT下载的3个主要功能做如下增强

  1. 添加Tracker服务器表列;
  2. 打开DHT增强设置;
  3. 想办法在第一次使用Aria2的时候,获得完整的用户本地路由文件。

安装Aria2


安装Aria2

Aria2 的官网在GitHub,下载连接就在主页。这“家伙”对用户一律假设是“老手”,安装设置一律靠自己,官方文档非常详细,但对新手不太友好。windows、macOS版的安装,其实也没什么安装—下载了执行文件,按照官网上的说明,在Terminal(macOS下)、PowerShell(windows下)输入命令就可以下载。

Aria2 官方文档

问题是:你下载去那啊?这个在windows下面还问题不大,文件之间下载在Aria2的目录里面,macOS的要找,而且macOS的新手,或者不习惯Terminal的小伙伴,就麻烦了。所以,我们还是要分开两步:第一,编写一个设置文件;第二,加个图形图形界面。

Aria2设置

以下我以macOS为例(之间会说明windows版的不同之处),说明详细设置。这样做可以有些小伙伴觉得烦,其实通过自己一步步的设置成功,你不但对BT下载的原理更加理解,同时,你将对上面介绍的三种图形界面的BT下载软件,有更好的认识,设置起来驾轻就熟

下面新建一个文本文件,实际上完全可以在图形界面下,新建文件夹

# 首先,新建一个设置文件,每行前#是说明,$是命令行提示符
# 回到用户的根目录
$ cd ~
# 新建一个目录:Aria2
$ mkdir aria2
# 进入目录
$ cd aria2
# 新建设置文件:aria2.conf
$ touch aria2.conf

接着,用你最熟悉的文本编辑器,将下面的设置保存到aria2.conf文件中。

#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
#文件保存路径, 默认为当前启动位置
dir=/Users/xxx/Downloads
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc « prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc

#添加tracker服务器
bt-tracker=udp://tracker.opentrackr.org:1337/announce,udp://tracker.internetwarriors.net:1337/announce,udp://exodus.desync.com:6969/announce,udp://tracker.cyberia.is:6969/announce,udp://opentracker.i2p.rocks:6969/announce,udp://47.ip-51-68-199.eu:6969/announce,http://open.acgnxtracker.com:80/announce,udp://open.stealth.si:80/announce,udp://www.torrent.eu.org:451/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://retracker.lanta-net.ru:2710/announce,udp://tracker.moeking.me:6969/announce,http://tracker.dler.org:6969/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://valakas.rollo.dnsabr.com:2710/announce,udp://opentor.org:2710/announce,udp://vibe.community:6969/announce,udp://tracker1.bt.moack.co.kr:80/announce,udp://tracker0.ufibox.com:6969/announce

#抗DMCA的服务器
enable-dht=true
bt-enable-lpd=true
enable-peer-exchange=true

如果是macOS系统,保存就好。而widnows版的用户需要修改两个地方

Aria2-Windows版下载目录设置

第32行是:Aria2-Windows版下载目录,需要把/改成\,也就是斜杠改成反斜杠,比如:d:\downloads.

Aria2-Windows版下载目录,需要把/改成\,也就是斜杠改成反斜杠,比如:d:\downloads.

第38行需改成:file-allocation=none,原因是:windows的磁盘格式比较落后,为了满足兼容性。

Aria2添加Tracker服务器列表

Aria2添加Tracker服务器列表

第42行,我最近搜集的Tracker服务器列表,已经添加到文件里面。Tracker服务器列表对于提升BT下载速度贡献极大,原理大家都看过。各位小伙伴可以收藏我的链接,或者在文章最后留下email地址,我有空可以发你们。

aria2 webui


使用图形界面前,需要首先启动Aria2 :

在Terminal输入:aria2c –conf-path=”/Users/你的用户名/aria2/aria2.conf” -D,启动Aria2服务。这段的意思就是–用我们刚才编写的aria2.conf文件设置来启动。windows系统下,注意用改文件路径。

进入这个官方的网站,你就可以在里面管理下载文件了,这其实就是Aria2的图形管理界面了。具体的设置就很简单:所见即所得!

aria2 webui

首次使用注意⚠️事项

很多BT下载软件包括:Aria2 ,首次使用的时候,下载非常慢,有的甚至根本没有流量。我之前推荐的三款软件,都有这种问题。解决办法出来添加Tracker服务器列表,还有个窍门:

选择一个热门的BT种子下载后,做种几个小时。这样DHT的路由表就保存到你的本地计算机,从这开始,你可以享受BT的快感了。

VPN可以帮助BT下载吗


可以,因为VPN服务器都会提供这方面的服务–也就是Tracker服务器列表保存其中,并且,VPN也提供更好的路由,这些是我们个人很难搞定的。下面是我使用 威伯斯云 后的下载效果。

使用VPN后的Aria2下载

VPN服务器搜集到的服务器列表比我自己搜集的要详尽,另外,更重要的是VPN加密了我们的数据,BT下载没有被ISP限速!


BT下载的利器– 威伯斯云

logo

威伯斯云是一家提供Cisco(思科)定制VPN服务的互联网公司,他们的网站非常低调,但其实公司从2015年经营至今,公司实力不比某些花里胡哨的VPN公司弱。他们的网站首先非常低调,很明显,不是针对普通用户,不需要花里胡哨的界面吸引眼球。VPN服务商没有一定的实力是无法长期经营的,毕竟那么多网络设备、服务器需要购建和租用。


威伯斯云下载客户端

威伯斯云的客户端,包括:电脑端、手机端都是统一界面,安装和使用都非常简单,下面我们看看如何在iOS系统下,安装威伯斯云的客户端。首先,在国区的苹果市场,搜索“anyconnect”,会找到“Cisco AnyConnect”,截图如下:

在美区的苹果市场,搜索“anyconnect",会找到“Cisco AnyConnect"

安装后,AnyConnect会出现屏幕上,打开AnyConnect VPN的开关:

安装后,AnyConnect会出现屏幕上,打开AnyConnect VPN的开关

这一步,输入服务器地址:node.vps000.org:

输入服务器地址:node.vps000.org

最后,输入用户名、密码,登陆成功就OK了。

输入用户名、密码

我使用移动4G上网,基础网速如下:

使用移动4G上网,基础网速

然后连接威伯斯云进行测试,可以看出下载速度损失在10%左右,PING值也没有增加多少。

连接威伯斯云进行测试,可以看出下载速度损失在10%左右

去香港的YouTube看看4K视频,完全不是问题:

香港的YouTube看看4K视频

vps000-price
vps000 price

威伯斯云从2015年开业至今,一直都没有大的优惠活动,都是每天¥1元的平均成本使用。不过现在终于等到他们降价了:

365天180天90天30天
价格¥360¥180¥90¥30
赠送100天70天20天6天
价格/天0.770.720.820.83
折算每月价格¥23.1/月¥21.6/月¥24.6/月¥24.9/月

关于威伯斯云的详细测评,可以产品这篇文章

常见问题


BT下载为什么被限速

种子下载占用网络上大量的频宽,这对于ISP等网络服务商的利益有很大损害。

BT下载–侵犯版权吗?

BT下载只是一种网络工具,有人用来犯法,不等于使用BT软件的人都犯法。这和使用VPN软件是一样道理的,同样是软件,一种工具。就好比菜刀用来切菜,用来砍人肯定犯法啦。

BitTorrent协议

由美国的程序员布莱姆·科亨于2001年4月时发布。这位可是Steam游戏平台的开发者之一,同时科亨也是游戏爱好者心中的大神。科亨的BitTorrent下载软件第一版,是python语言编写,并公开代码,之后的BT下载软件,也是按照这个模型来编写的。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注