Aria2 是一款开源、跨平台的命令行界面下载管理器。Aria2 使用 GNU GPLv2.0 开源协议,支持的下载协议有:HTTPHTTPSFTPBittorrentMetalinkAria2 有以下几个特点:

  • 多连接下载:可以从多个来源/协议下载文件并尝试利用您的最大下载带宽,真正加快您的下载体验;
  • 轻量:不需要太多内存和 CPU 时间;
  • 全功能的 BitTorrent 客户端BitTorrent 客户端的所有功能都可用,,如 DHT、PEX、加密、Magnet URI、网络播种、选择性下载、本地对等发现和 UDP 跟踪器;
  • 支持Metalink:支持 Metalink 下载描述格式。 在下载中使用 Metalink 数据块的校验和自动验证下载的数据部分;
  • 远程控制:支持 RPC 接口来控制 aria2 进程。 支持的接口是 JSON-RPC(通过 HTTP 和 WebSocket)和 XML-RPC

1. 简单使用

本文中以 Windows 平台为例使用 aria2 进行下载演示。首先下载 aria2-1.36.0-win-64bit-build1.zip ,将下载好的文件解压,如图 1.1 所示。查看更多 aria2 版本:https://github.com/aria2/aria2/releases

图1.1

可选择配置 path 环境变量,即可在系统任意目录使用 aria2c 下载工具,如图 1.2 所示。

图1.2

选择一个目录进入CMD 命令行,使用 aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]... 的格式下载文件。例如 aria2c https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.75/bin/apache-tomcat-9.0.75-windows-x64.zip,下载页面如图 1.3 所示。

图1.3

2. WebUI-Aria2

由于不熟悉 Aria2 相关命令或更本不熟悉命令行操作导致了使用困难,为此出现了各种适配 Aria2 的UI页面,其中 WebUI-Aria2Aria2 官方网站推荐的 WebUI。

下载 webui-aria2-master.zip 并解压,打开 webui-aria2-master\docs 文件夹,如图 2.1 所示。此文件交中存放的即是 WebUI-Aria2 的网页源码。

图2.1

双击 index.html 打开或使用 Apache Tomcat 部署网页本地使用,WebUI-Aria2 页面如图 2.2 所示。

图2.2

若出现图 2.2 所示的错误,则需要打开 cmd 命令行界面,输入如下命令启用 RPC 远程控制。注:此 cmd 窗口不能关闭

# 启用 RPC 远程控制,默认 RPC 端口为 6800
aria2c --enable-rpc

# 启用 RPC 远程控制,并指定 RPC 端口为 1024
# RPC 端口范围为 1024 - 65535
aria2c --enable-rpc --rpc-listen-port=1024

# 更多参数用法可查看官方文档
# https://aria2.github.io/manual/en/html/index.html

启用 RPC 远程控制后刷新WebUI-Aria2 页面即可连接成功,如图 2.3 所示。

图2.3

通过 添加 菜单即可选择相应的下载方式进行文件下载,如图 2.4 和图 2.5 展示了如何使用 HTTP 链接进行文件下载。

 图2.4

 图2.5

图 2.6 展示了正在进行下载的任务。

 图2.6

若要设置文件的下载路径,需要在 设置 > 全局设置 菜单中搜索 dir 进行设置,如图 2.7 所示。

 图2.7

3. AriaNg

AriaNg 是一个让 aria2 更容易使用的现代 Web 前端。下载 AriaNg-1.3.5.zip 或下载其他版本。解压后文件如图 3.1 所示。

 图3.1

使用 Apache Tomcat 部署网页本地使用,AriaNg 页面如图 3.2 所示。

由于 AriaNg 标准版 通过异步加载语言文件,所以您可能无法直接在本地文件系统打开 index.html 来运行 AriaNg。建议使用单文件版或将 AriaNg 部署在 Web 容器中,或下载不需要浏览器就可以运行的 AriaNg Native

 图3.2

若出现图 3.2 所示的错误,则需要打开 cmd 命令行界面,输入如下命令启用 RPC 远程控制并允许跨域。由于 WebUI-Aria2 默认的 RPC 连接协议是 WebSocket,不存在跨域问题;而 AriaNg 默认的 RPC 连接协议是 HTTP,需要允许跨域才能成功连接。若不开启跨域,则可在 AriaNg设置 > RPC > Aria2 RPC 协议 下选择 WebSocket 即可,如图 3.3 所示。

# 启用 RPC 远程控制并允许跨域,默认 RPC 端口为 6800
aria2c --enable-rpc --rpc-allow-origin-all

# 启用 RPC 远程控制并允许跨域,并指定 RPC 端口为 1024
# RPC 端口范围为 1024 - 65535
aria2c --enable-rpc --rpc-allow-origin-all --rpc-listen-port=1024

# 更多参数用法可查看官方文档
# https://aria2.github.io/manual/en/html/index.html

 图3.3

启用 RPC 远程控制并允许跨域后刷新AriaNg 页面即可连接成功,如图 3.4 所示。

 图3.4

若要设置文件的下载路径,需要在 Aria2 设置 > 基本设置 中进行设置,如图 3.5 所示。

 图3.5

4. Aria2 Explorer

Aria2 Explorer 是一款为 Chrome 定制的下载任务管理扩展,能够自动拦截或手动添加下载任务到 Aria2 来完成网络资源下载。Aria2 Explorer 又名 Aria2 for Chrome,其前端页面使用 AriaNg,通过浏览器插件的形式集成可以不用部署本地网页。

安装地址

点击下载 Chrome 插件Edge 插件

若要使用 Aria2 Explorer 成功连接到 Aria2, 同样需要启用 RPC 远程控制并允许跨域。如下所示:

# 启用 RPC 远程控制并允许跨域,默认 RPC 端口为 6800
aria2c --enable-rpc --rpc-allow-origin-all

# 启用 RPC 远程控制并允许跨域,并指定 RPC 端口为 1024
# RPC 端口范围为 1024 - 65535
aria2c --enable-rpc --rpc-allow-origin-all --rpc-listen-port=1024

# 更多参数用法可查看官方文档
# https://aria2.github.io/manual/en/html/index.html

5. Tracker

Tracker 服务器是 BT 下载中必须的角色,是运行在服务器上的一个能够追踪有多少用户在同时下载同一个文件的程序。 客户端连上 Tracker 服务器,就会获得一个下载人员的名单,BT 会自动连上这个名单上的机器进行下载。所有人都可以建立自己的 Tracker 服务器,因此在下载 BT 文件的时候,通过添加优质的 Tracker 服务器地址,便可以与更多的客户端进行数据交换,从而提高下载速度。 Tracker 服务器可以在 GitHub 上查找,如 XIU2/TrackersListCollection

想要为 Aria2 添加 Tracker 服务器地址,可以使用如下命令参数:

# 逗号分隔 Tracker URI 列表
--bt-tracker=<URI>[,...]

# 例如
aria2c --enable-rpc --bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,http://tracker.internetwarriors.net:1337/announce

也可以通过 UI 页面向 Aria2 添加 Tracker 服务器地址,如在 AriaNg 中打开菜单 Aria2设置 > BitTorrent设置,找到 BT 服务器地址,添加即可,如图 6.1 所示。

 图5.1

6. Aria2 启动脚本

Aria2 启动时可以通过 --conf-path= 参数指定配置文件,配置文件 aria2.conf 如下所示,可需要根据实际需求更改。

## 全局设置 ## ============================================================
# 日志
#log-level=warn
#log=/PATH/.aria2/aria2.log

# 后台运行
daemon=true

# 下载位置, 默认: 当前启动位置
dir=/PATH/Downloads

# 从会话文件中读取下载任务
#input-file=/PATH/.aria2/aria2.session

# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
#save-session=/PATH/.aria2/aria2.session

# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=30

# 断点续传
continue=true

# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M

# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=none

# 客户端伪装
user-agent=netdisk;5.2.6;PC;PC-Windows;6.2.9200;WindowsBaiduYunGuanJia
referer=http://pan.baidu.com/disk/home

# 禁用IPv6, 默认:false
disable-ipv6=true

# 其他
always-resume=true
check-integrity=true

## 下载位置 ## ============================================================
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5

# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5

# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M

# 单个任务最大线程数, 添加时可指定, 默认:5
split=5

# 整体下载速度限制, 运行时可修改, 默认:0
#max-overall-download-limit=0

# 单个任务下载速度限制, 默认:0
#max-download-limit=0

# 整体上传速度限制, 运行时可修改, 默认:0
#max-overall-upload-limit=0

# 单个任务上传速度限制, 默认:0
#max-upload-limit=0



## RPC设置 ## ============================================================
# 启用RPC, 默认:false
enable-rpc=true

# 允许所有来源, 默认:false
rpc-allow-origin-all=true

# 允许非外部访问, 默认:false
rpc-listen-all=true

# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select

# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800

# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=<TOKEN>

# 是否启用 RPC 服务的 SSL/TLS 加密,
# 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接
#rpc-secure=true

# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件,
# 使用 PEM 格式时,您必须通过 --rpc-private-key 指定私钥
#rpc-certificate=/path/to/certificate.pem

# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件
#rpc-private-key=/path/to/certificate.key



## BT/PT下载相关 ## ============================================================
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true

# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413

# 单个种子最大连接数, 默认:55
#bt-max-peers=55

# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=false

# 打开IPv6 DHT功能, PT需要禁用
#enable-dht6=false

# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999

dht-file-path=/opt/var/aria2/dht.dat
dht-file-path6=/opt/var/aria2/dht6.dat

# 本地节点查找, PT需要禁用, 默认:false
#bt-enable-lpd=false

# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=false

# 每个种子限速, 对少种的PT很有用, 默认:50K
#bt-request-peer-speed-limit=50K

# 设置 peer id 前缀
peer-id-prefix=-TR2770-

# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=0

# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false

# BT校验相关, 默认:true
#bt-hash-check-seed=true

# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true

# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true

bt-max-open-files=16

# tracker 服务器列表
# bt-tracker=

使用命令启动不易使用,可以将启动命令写为脚本。新建文件 startup.bat,内容如下:

@echo on
aria2c --conf-path=aria2.conf

脚本新建完成后,双击 startup.bat 即可启动 Aria2