Image Image Image Image Image

02

4 月

Aria2简介与配置

  • By IanGoo

下载,算是在互联网上最常见的活动之一了。广义的下载指的是一切从云端传输进主机的一切行为,而狭义的“下载”,通常指的是从互联网上下载特定的文件,比如音乐、软件、视频等等。

下载工具在十几二十多年前几乎可以说是“装机必备”的一个软件了,那时候,普遍人们的互联网接入速度都还很慢,通常只有几个Mbps,下载速度只有几百KBps。流媒体视频能上到720p就算“高清”,而且是一台电脑看视频,其他所有电脑都会卡死的那种速度,更何况还有上百MB的软件、游戏等必须下载到本地才能使用的东西。

也就在那时候,早期的网络蚂蚁、快车等下载工具纷纷面世,互相竞争,而最后迅雷横空出世,凭借极为丰富的协议支持(HTTP、FTP、BT、eMule全部支持)、庞大的的用户群带来的P2P加速上的优势,成功一统江湖。

后来的事情也就都知道了,迅雷现在就是一坨翔,但凡稍微有那么一点点追求的Power User都避之不及的那种。

而且,时代变了,下载工具似乎也变得不那么“必要”了。现在接入家庭的网络动辄百兆,下载600多MB的nVidia驱动用浏览器自带的下载功能也就一分钟不到。于是,迅雷的装机率在大概2017-2018年之后就直线下跌,他们的主营业务也早就不是这个裱糊门面的下载软件了[1]

但是——真的不需要了吗?

曾经一个多GB、720P的电影就能让人直呼“太清晰了”,现在追求的却是在80寸的电视上看4K,一部电影轻松几十个GB;曾经一个游戏只用一张CD-ROM不到700MB,砍砍里面的过场动画啥的能压缩到200MB左右,而现在一个3A游戏10GB起步。

似乎,下载软件仍然有存在的意义。

只是我再也不可能去用迅雷了。

当前市面上仍然有很多优秀的下载软件,Windows上有qBitTorrent、Internet Download Manager,跨平台的有Transmission,我的选择是群晖上都有的Synology Download Station、Windows上的Free Download Manager,在我的NUC上我还装了本文的主角:Aria2。

Why Aria2?

Aria2是一个非常特别的下载软件,它将软件的“解耦”做到了极致。

Aria2没有传统意义上的“界面”,它是一个纯粹的、类似于curl的下载工具。因此,它拥有非常鲜明的优势:

  1. 几乎没有任何空间占用,系统要求极低。
  2. 开源、免费、跨平台。
  3. 支持BitTorrent(含Magnet)和HTTP(s)协议。
  4. 天然适合远程部署。

其中前三条都很好理解,第四条是一个类似于Synology Download Station的概念,意思就是,我在一台主机上配置好Aria2,我可以通过浏览器远程访问它,给它链接让它自己下载。

这个太适合我的配置了。因为我自己是双服务器的配置,一台群晖NAS托管大多数资源和服务,而NUC则比较特殊一些,它是身在吉林,心在日本,跑着CCProxy架桥的,有一些下载速度很慢的资源用它就很快,所以我要跑远程下载,墙内速度快的可以用Download Station,墙内下不动的就可以挂到NUC上的Aria2来下载。

How?

但是Aria2是一个门槛略高的软件。需要自己手写配置。这里我也不用很多教程里curl xxxxxx“看,软件下载完啦”这种完全不友好的方式了,就忠实地还原我自己是怎么配置的就行了。

下载与部署

Aria2是一个开源软件,Repository托管在Github上:

正常我们都会从Releases里直接下载软件后尝试运行或者安装,但是这里我们下载后先不要着急,我们去另一个网站:aria2c.com。这个网站很重要,我们以后也要用。

这个网站的作者提供了一个非常好用的“懒人包”,这个“懒人包”是我部署Aria2的基础,具体在这里找到:https://aria2c.com/usage.html,或者直接点此链接下载Aria2C懒人包

懒人包里有这些文件:

aria2.conf配置文件
aria2.exe启动文件
aria2.session任务会话文件
aria2c.exe主程序
README.md说明
[Aria2Data]默认的下载目录

但是,这个懒人包里的Aria2是比较老的,我们还是得去Github的Repository里下载最新的Release,解压后找到里面的aria2c.exe,替换掉懒人包里的主程序,就OK了。

配置

自此,Aria2其实是可以使用了,但是Aria2还需要做一些后续的处理,这就需要进入Aria2最困难的一部分了:配置。

和多数软件不同,Aria2的配置是直接通过一个.conf文件来控制的。这个文件就在Aria2的目录当中,名为aria2.conf。这是一个文本文件,可以使用任何文本编辑器打开,如VSCode、Sublime、Vim、emacs,当然也包括Windows系统自带的记事本。

懒人包里自带的配置文件已经相当完备了,也有大量的注释说明怎么改,其实不太需要额外的说明。我动的大概是这几个:

# 将文件的保存路径切换到NAS上,以便下载数据的统一管理,前提是在NUC上添加好NAS的地址。
dir=\\NAS_ADDRESS\DIR

写到这里尴尬了……因为我用的懒人包版本还比较老,动了挺多东西,什么RPC选项都调整了,但是刚刚看了一眼最新的懒人包,发现里面默认就都已经OK了,真的做到了开箱即用。那就通读一遍配置文件,按需调整、看不懂的跳过吧。

使用

Aria2是一个没有GUI的软件。最原生态的Aria2存在感完全就是0,懒人包里提供的启动器好歹给它点亮了一个系统托盘图标。那么,这种没有GUI的软件该如何使用呢?

我用的是最懒的方法:直接访问https://aria2c.com/

这是一个公开的Aria2网页界面。非常简单,同时也非常好用。默认情况下,如果Aria2部署在本地,它会在右上角显示Aria2的版本号,以及上传、下载速率。但是,我的情况略有些特殊,我的Aria2部署在NUC上,我希望通过别的局域网设备可以访问部署在NUC里的Aria2,而当前的电脑里并没有部署,那么就会看到顶部弹出一条红色的警告,右上角也不会显示Aria2的信息。这就需要自己定义RPC路径。

配置非常简单:点开右上角的小扳手,在弹出的设置里的JSON-RPC Path当中,以http://hostname:6800/jsonrpc的形式将RPC路径定义好,保存刷新页面即可。这里的hostname是局域网内访问部署了Aria2主机的名称或者IP地址。比如部署它的主机名称是mynuc6i5,那么将地址设定为http://mynuc6i5:6800/jsonrpc。如果怎么弄都出不来的话,就去配置文件里检查一下是否允许json-rpc访问:

# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true

aria2c.com的前端非常简单易用,当然,有简便流的也就有比较复杂的,AriaNG就是一个比较复杂的Web前端。

官方发布的桌面版截图

AriaNG的一个主要优势是可以自己部署,那就可以很方便地以它为跳板实现远程访问。比如我现在在家里局域网里的NUC部署了Aria2,如果使用Aria2c.com来访问的话,这个Web App会直接利用Cookies来存储设置,从本机出发来搜索装有Aria2的主机。而如果将AriaNG部署在NAS上,那么就可以通过远程访问NAS上的AriaNG,以它为跳板访问内网的NUC实现远程下载。不过这方面的需求我不是很大,所以还是用最简单的aria2c.com。

除了这些Web前端,还有一些本地软件实际上也是使用的Aria2,如PhotonMotrix、qDown等。如果不怎么需要使用远程下载的话,用这些本地软件也是OK的。

Reference

  1. 连年亏损的迅雷,还在靠什么活下去?[]

Tags | ,