提起下载工具,在Linux下大多数人可能会想到Wget,但实际上我个人认为Aria2是一个更好的选择。Aria2是一款C++编写的轻量级命令行下载工具,然而它的功能却异常强大,它支持HTTP/HTTPS/FTP/BitTorrent/Metalink等多种协议,支持多线程下载、断点续传等实用功能,同时具有很好的可扩展性。
项目Github地址:https://github.com/aria2/aria2
在Ubuntu下,我们直接从软件源中安装即可。
apt install aria2
安装完成后,我们就可以使用aria2c
命令了,此外我们还可以使用man aria2c
查看相关文档。
下面我们以例子的形式演示一些aria2c
命令行工具的常用功能。
下面例子下载了一个文件,其中-x 8
参数表示使用多线程下载(向同一个主机发起多个连接),线程数为8
。
aria2c -x 8 https://releases.ubuntu.com/22.04/ubuntu-22.04.3-desktop-amd64.iso
如果想让Aria2在后台运行,可以使用-D
参数。
Aria2支持断点下载,我们可以使用-c
参数保存下载状态。
aria2c -x 8 -c https://releases.ubuntu.com/22.04/ubuntu-22.04.3-desktop-amd64.iso
使用-c
参数下载文件时,目录下还会创建一个<文件名>.aria2
文件,其中记录了当前的下载状态数据。如果下载中断,我们再次执行命令后会从断点开始下载,而不必重新下载。
Aria2支持BT下载,我们直接指定种子文件即可,另外还可以使用--bt-tracker
参数指定Tracker服务器。
aria2c -x 8 -c ubuntu-22.04.3-desktop-amd64.iso.torrent
种子文件是二进制数据,aria2c
还提供了种子文件的内容解析功能,我们可以用以下命令查看种子文件中的内容。
aria2c --show-files ubuntu-22.04.3-desktop-amd64.iso.torrent
除此之外,Aria2也支持磁力链。
Aria2还提供了RPC模式,它可以作为服务端运行,图形界面客户端可以通过HTTP协议连接并远程操作。AriaNg是一个比较小巧好用的客户端,它能在图形界面上配置Aria2,并管理下载任务。
AriaNg项目地址:https://github.com/mayswind/AriaNg
我们可以使用命令行以服务端模式启动Aria2,默认Aria2会启动在6800端口。
aria2c --enable-rpc --rpc-allow-origin-all
此时我们运行客户端即可成功连接。
前面使用AriaNg客户端时我们可以在客户端中对Aria2的一些参数进行配置,但实际上这些配置都是临时的,Aria2服务端重启后就会重置。如果需要永久性的配置一些参数,可以将这些配置写入配置文件,配置文件的默认路径是~/.aria2/aria2.conf
。
下面例子配置文件中,我们将单主机的下载线程数设置为8
,它的作用和前面命令行中的-x
参数是一样的。在配置文件中配置后,它会同时影响aria2c
命令行和RPC模式的参数默认值。
max-connection-per-server=8
有关更多配置文件的内容可以参考Aria2的文档,此外Github上也有很多优秀的配置供我们参考。