Aria2是一个轻量级多协议和多源命令行下载工具。它支持 HTTP/HTTPS,FTP,SFTP,BitTorrent 和 Metalink。Aria2目前有macOS、 Windows 和 Android版,本文主要以aria2 mac为主。Aria2可以从多个源/协议下载一个文件,并尝试利用您的最大下载带宽。我们来看看它的“过人之处”。
- 轻量级。Aria2不需要太多内存和 CPU 时间。当磁盘缓存关闭时,物理内存使用通常为4MiB (正常的 HTTP/FTP 下载),9MiB (BitTorrent 下载)。在下载速度为2.8 MiB/sec 的 BitTorrent 中,CPU 占用率约为6% 。这是以单核计算,多核的小伙伴➗N吧!
- 全功能 BitTorrent 客户端。你想在 BitTorrent 客户端的所有功能都可用: DHT,PEX,加密,磁铁 URI,网络播种,选择性下载、Local Peer Discovery(本地用户发现) and UDP tracker(UDP跟踪)。
好吧,这里我们要先介绍一下BT的原理。
文章目录
BT下载的原理
BitTorrent协议,由美国的程序员布莱姆·科亨于2001年4月时发布。这位可是Steam游戏平台的开发者之一,同时科亨也是游戏爱好者心中的大神。科亨的BitTorrent下载软件第一版,是python语言编写,并公开代码,之后的BT下载软件,也是按照这个模型来编写的。
从此之后,BT就一发不可收拾。最高峰是在2004年,据坊间传闻:当年网路流量总数的40%来自于种子下载。即便在今日,种子下载也占有全球网路流量的6%。网路流量总数的40%!这是多么恐怖😱的比例,可想而知,当年BT多么流行。由于种子下载占用网络上大量的频宽,而且,涉及版权、内容审核等问题,所以,使用bt的用户一直下降。
一般的HTTP/FTP下载–也就是通常我们直接在浏览器中下载文件,下载文件仅在某个或某几个服务器,下载的人太多,服务器的带宽很易不胜负荷,变得很慢。而BitTorrent协议下载的特点是,下载的人越多,提供的带宽也越多,下载速度就越快。同时,拥有完整文件的用户也会越来越多,使文件的“寿命”不断延长。
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网络中寻找下载同一文件的其他用户并与之通讯,开始下载任务。
这其实也容易理解:去中性化嘛,和比特币差不多了,客户端有两个关键功能就行:小范围的路由、存储一小部分数据。计算机硬件和软件之间是没有明显界限的:软件可以模拟硬件,硬件也可以仿真软件,所以,客户端也可以通过软件实现路由器的部分功能,只是,效率低罢了。
种子服务器是一种代理
通常,每个用户都会从一个服务器或服务器网络下载文件。通过 BT下载软件,每个下载者也会成为一个上传者,使文件共享过程更加高效。许多互联网服务提供商 (ISP) 阻止用户使用它,文件共享要用在合法的地方 。
BT下载技术非常适用于以下场景:
使用的时候最好考虑安全问题:
Aria2下载的原理
在这就可以发挥威力了,我们来分析一下,如何实现加速BT!
BT下载快:要种子多、上传的人多。种子多不是指种子文件,种子多是下载完成的人多,而且保持上传,下完就跑的是不算有种之人的。如果一个种子没有人上传,那么,无论用什么方法包括vpn也没用,下载速度还是为0!
BT下载慢,我们首先要排除:真的少人做种、或者无人做种。当我们满怀希望下了热门种子,结果下载速度为0!这真的打击人,真的怀疑被BT软件给骗了。
这就涉及到Tracker服务器、DHT分布式存储、用户本地路由这些功能了:
- Tracker服务器会存储你的信息,同时会将种子有关的用户数据发送给你,你根据这些信息连接对应的用户,从他们那下载文件。
- DHT也是这种功能,你可以通过接入DHT网络从而分享以及获得数据,也就是Tracker服务器存储的用户数据,分布到每个用户的个人计算机上。
- 用户本地路由是和上面两个功能相结合的,有了路由文件(一会设置Aria2 的时候可以看到这个文件),通信接口就畅顺了。
好吧,我们的目的:是为原版的Aria2添加必要的功能,解决第一次安装BT下载软件,下载慢的问题。并实现迅雷的功能,即:下载冷门种子也可以得到不错的速度。那么,针对BT下载的3个主要功能做如下增强:
- 添加Tracker服务器表列;
- 打开DHT增强设置;
- 想办法在第一次使用Aria2的时候,获得完整的用户本地路由文件。
安装Aria2
Aria2 的官网在GitHub,下载连接就在主页。这“家伙”对用户一律假设是“老手”,安装设置一律靠自己,官方文档非常详细,但对新手不太友好。windows、macOS版的安装,其实也没什么安装—下载了执行文件,按照官网上的说明,在Terminal(macOS下)、PowerShell(windows下)输入命令就可以下载。
问题是:你下载去那啊?这个在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版的用户需要修改两个地方:
第32行是:Aria2-Windows版下载目录,需要把/改成\,也就是斜杠改成反斜杠,比如:d:\downloads.
第38行需改成:file-allocation=none,原因是:windows的磁盘格式比较落后,为了满足兼容性。
Aria2添加Tracker服务器列表
第42行,我最近搜集的Tracker服务器列表,已经添加到文件里面。Tracker服务器列表对于提升BT下载速度贡献极大,原理大家都看过。各位小伙伴可以收藏我的链接,或者在文章最后留下email地址,我有空可以发你们。
aria2 webui
使用图形界面前,需要首先启动Aria2 :
在Terminal输入:aria2c –conf-path=”/Users/你的用户名/aria2/aria2.conf” -D,启动Aria2服务。这段的意思就是–用我们刚才编写的aria2.conf文件设置来启动。windows系统下,注意用改文件路径。
进入这个官方的网站,你就可以在里面管理下载文件了,这其实就是Aria2的图形管理界面了。具体的设置就很简单:所见即所得!
首次使用注意⚠️事项
很多BT下载软件包括:Aria2 ,首次使用的时候,下载非常慢,有的甚至根本没有流量。我之前推荐的三款软件,都有这种问题。解决办法出来添加Tracker服务器列表,还有个窍门:
选择一个热门的BT种子下载后,做种几个小时。这样DHT的路由表就保存到你的本地计算机,从这开始,你可以享受BT的快感了。
VPN可以帮助macOS系统下BT下载速度吗
可以,因为VPN服务器都会提供这方面的服务–也就是Tracker服务器列表保存其中,并且,VPN也提供更好的路由,这些是我们个人很难搞定的。下面是我使用 威伯斯云 后的下载效果。
VPN服务器搜集到的服务器列表比我自己搜集的要详尽,另外,更重要的是VPN加密了我们的数据,BT下载没有被ISP限速!
macOS系统下BT下载的利器– 威伯斯云
威伯斯云是一家提供Cisco(思科)定制VPN服务的互联网公司,他们的网站非常低调,但其实公司从2015年经营至今,公司实力不比某些花里胡哨的VPN公司弱。他们的网站首先非常低调,很明显,不是针对普通用户,不需要花里胡哨的界面吸引眼球。VPN服务商没有一定的实力是无法长期经营的,毕竟那么多网络设备、服务器需要购建和租用。
威伯斯云的客户端,包括:电脑端、手机端都是统一界面,安装和使用都非常简单,下面我们看看如何在iOS系统下,安装威伯斯云的客户端。首先,在国区的苹果市场,搜索“anyconnect”,会找到“Cisco AnyConnect”,截图如下:
安装后,AnyConnect会出现屏幕上,打开AnyConnect VPN的开关:
这一步,输入服务器地址:node.vps000.org:
最后,输入用户名、密码,登陆成功就OK了。
我使用移动4G上网,基础网速如下:
然后连接威伯斯云进行测试,可以看出下载速度损失在10%左右,PING值也没有增加多少。
去香港的YouTube看看4K视频,完全不是问题:
威伯斯云从2015年开业至今,一直都没有大的优惠活动,都是每天¥1元的平均成本使用。不过现在终于等到他们降价了:
365天 | 180天 | 90天 | 30天 | |
价格 | ¥360 | ¥180 | ¥90 | ¥30 |
赠送 | 100天 | 70天 | 20天 | 6天 |
价格/天 | 0.77 | 0.72 | 0.82 | 0.83 |
折算每月价格 | ¥23.1/月 | ¥21.6/月 | ¥24.6/月 | ¥24.9/月 |
关于威伯斯云的详细测评,可以产品这篇文章。
常见问题
为什么首次使用Aria2速度慢?
这是因为没有添加Tracker服务器列表,没有下载路由文件。请根据本指南逐步设置,你将获得非一般的BT体验
BT下载需要VPN服务吗?
是否使用VPN看自己的需求,如果是热门的种子,完全没必要,用我上面的设置就可以,速度慢,就慢慢下载。但是,如果是古老、或者冷门的种子,选择带有种子下载功能的VPN就非常有必要了。
BT下载为什么被限速
种子下载占用网络上大量的频宽,这对于ISP等网络服务商的利益有很大损害。