Aria2的介绍与使用
Aria2 是一个功能非常强大且功能非常齐全的下载工具,它支持 BT、磁力、HTTP、FTP 等下载协议,常用做离线下载的服务端。
官方地址:https://aria2.github.io/
源码地址:https://github.com/aria2/aria2
镜像源码地址:https://github.com/P3TERX/Aria2-Pro-Docker
镜像仓库地址:https://hub.docker.com/r/p3terx/aria2-pro
介绍
aria2 是一个用于下载文件的实用程序。支持的协议有 HTTP(S)、FTP、SFTP、BitTorrent 和 Metalink。aria2 可以从多个来源/协议下载文件并尝试利用您的最大下载带宽。支持同时从HTTP(S)/FTP/SFTP和BitTorrent下载一个文件,同时从HTTP(S)/FTP/SFTP下载的数据上传到BT群。使用 Metalink 块校验和,aria2 在下载文件时自动验证数据块。
特征
- 多线程下载。aria2 可以从多个来源/协议下载文件并尝试利用您的最大下载带宽。真正加快您的下载体验。
- 轻量级。aria2 不需要太多内存和 CPU 时间。当磁盘缓存关闭时,物理内存使用量通常为 4MiB(正常 HTTP/FTP 下载)到 9MiB(BitTorrent 下载)。下载速度为 2.8MiB/秒的 BitTorrent 中的 CPU 使用率约为 6%。
- 功能齐全的 BitTorrent 客户端。您想要的 BitTorrent 客户端的所有功能都可用:DHT、PEX、加密、Magnet URI、网络播种、选择性下载、本地对等发现和 UDP 跟踪器。
- 支持元链接。aria2 支持Metalink 下载描述格式 (又名 Metalink v4)、Metalink 版本 3 和 Metalink/HTTP。Metalink 提供文件验证、HTTP/FTP/SFTP/BitTorrent 集成以及针对语言、位置、操作系统等的各种配置。
- 远程控制。aria2 支持 RPC 接口来控制 aria2 进程。支持的接口是 JSON-RPC(通过 HTTP 和 WebSocket)和 XML-RPC。
aria2.conf
配置文件
默认情况下,aria2 检查遗留路径是否 $HOME/.aria2/aria2.conf
存在,否则它会解析 $XDG_CONFIG_HOME/aria2/aria2.conf
为它的配置文件。您可以使用选项指定配置文件的路径--conf-path
。如果您不想使用配置文件,请使用 --no-conf
选项。
配置文件是一个文本文件,每行有一个选项。在每一行中,您可以指定以下格式的名称-值对,NAME=VALUE
其中名称是不带前缀的长命令行选项名称--
。您可以对命令行选项使用相同的语法。开头的行#
被视为注释:
配置文件中可能包含用户/密码等机密信息。建议更改配置文件的文件模式位(例如:
chmod 600 aria2.conf
),这样其他用户就看不到文件的内容。
以下是 Aria2 的默认配置文件 aria2.conf
中的一些常见配置项及其作用:
dir=DIR
指定下载文件的保存目录。watchdir=DIR
指定监听种子的目录。allow-overwrite
:允许覆盖已存在的文件,例如allow-overwrite=true
continue
:启用断点续传功能,例如continue=true
input-file=FILE
指定下载任务的输入文件,多个输入文件用逗号分隔。save-session=FILE
指定保存所有下载任务的状态的文件。continue=true/false
指定是否在下载失败后自动恢复下载。max-concurrent-downloads=N
指定同时下载的最大任务数。max-connection-per-server=N
指定每个服务器的最大连接数。min-split-size=N
指定最小分片大小。split=N
指定下载时使用的线程数。max-overall-download-limit=LIMIT
指定所有下载任务的最大下载速度。max-download-limit=LIMIT
指定每个下载任务的最大下载速度。max-overall-upload-limit=LIMIT
指定所有上传任务的最大上传速度。max-upload-limit=LIMIT
指定每个上传任务的最大上传速度。file-allocation=none/prealloc/falloc
指定文件预分配方式。log=FILE
指定日志文件的保存路径。log-level=DEBUG/INFO/WARNING/ERROR/FATAL
指定日志记录级别。daemon=true/false
指定是否以守护进程方式运行。enable-rpc=true/false
指定是否启用 RPC 服务器。rpc-listen-port=PORT
指定 RPC 服务器的监听端口。rpc-secret=SECRET
指定 RPC 服务器的验证密钥。rpc-allow-origin-all=true/false
指定是否允许跨域访问 RPC 服务器。bt-enable-lpd=true/false
指定是否启用本地对等下载。bt-max-peers=N
指定 BT 下载时的最大对等连接数。seed-time=SECONDS
指定 BT 下载完成后继续做种的时间。seed-ratio=RATIO
指定 BT 下载完成后继续做种的分享比率。listen-port=PORT
指定监听端口。rpc-secret-file=FILE
指定 RPC 服务器的验证密钥文件。dir-pr2efix=DIR
指定所有下载任务的前缀目录。always-resume=true/false
指定是否总是在下载任务失败后自动恢复下载。allow-overwrite=true/false
指定是否允许覆盖同名文件。auto-save-interval=SECONDS
指定自动保存下载任务状态的时间间隔。file-allocation=none/prealloc/falloc/...
指定文件预分配方式。http-accept-gzip=true/false
指定是否允许下载 gzip 压缩过的文件。http-no-cache=true/false
指定是否禁用 HTTP 缓存。http-proxy=URL
指定 HTTP 代理服务器地址。https-proxy=URL
指定 HTTPS 代理服务器地址。
RPC接口
Aria2 提供了许多 RPC(远程过程调用)接口,可以使用这些接口从其他应用程序或脚本中控制 Aria2。以下是 Aria2 中最常用的 RPC 接口:
- aria2.addUri([secret,] uris[, options[, position]]):这个接口用于添加一个 HTTP/FTP/SFTP/BitTorrent 下载任务。您可以使用此接口添加单个 URI 或多个 URI,其中 options 参数包括诸如文件保存位置、最大下载速度和下载进度回调等选项。
- aria2.addTorrent([secret,] torrent[, uris[, options[, position]]]):此接口用于添加一个种子下载任务。除了种子文件之外,您还可以提供一组 URI,以便 Aria2 可以查找和下载种子中列出的文件。
- aria2.addMetalink([secret,] metalink[, options[, position]]):此接口用于添加一个 Metalink 下载任务。Metalink 是一个 XML 格式的文件,其中包含多个 URI 和文件哈希值,以便 Aria2 可以下载并验证下载的文件。
- aria2.pause([secret,] gid):此接口用于暂停正在下载的任务。
- aria2.unpause([secret,] gid):此接口用于恢复已暂停的下载任务。
- aria2.remove([secret,] gid):此接口用于删除一个下载任务。
- aria2.tellStatus([secret,] gid[, keys]):此接口返回有关特定下载任务的状态信息,包括下载进度、下载速度、剩余时间和错误消息等。
- aria2.getGlobalStat([secret]):此接口返回有关全局下载统计信息的信息,包括总下载速度、总下载数量和总运行时间等。
- aria2.getVersion([secret]):此接口返回 Aria2 的版本信息。
- aria2.getOption([secret,] gid):此接口返回指定下载任务的选项,例如文件保存位置、最大下载速度和种子文件保存位置等。
- aria2.changeOption([secret,] gid, options):此接口用于更改指定下载任务的选项,例如文件保存位置、最大下载速度和下载进度回调等选项。
- aria2.getFiles([secret,] gid):此接口返回正在下载的文件的详细信息,包括文件名称、大小、下载进度和哈希值等。
- aria2.getUris([secret,] gid):此接口返回正在下载的文件的 URI 列表,以便您可以查看和更改下载来源。
- aria2.getGlobalOption([secret]):此接口返回全局选项,例如最大下载速度和文件保存位置等。
这些 RPC 接口提供了对 Aria2 的全面控制,使您可以轻松地从其他应用程序或脚本中控制 Aria2 的下载行为。