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其中名称是不带前缀的长命令行选项名称--。您可以对命令行选项使用相同的语法。开头的行#被视为注释:

# sample configuration file for aria2c
listen-port=60000
dht-listen-port=60000
seed-ratio=1.0
max-upload-limit=50K
ftp-pasv=true

配置文件中可能包含用户/密码等机密信息。建议更改配置文件的文件模式位(例如: chmod 600 aria2.conf),这样其他用户就看不到文件的内容。

以下是 Aria2 的默认配置文件 aria2.conf 中的一些常见配置项及其作用:

  1. dir=DIR 指定下载文件的保存目录。
  2. watchdir=DIR 指定监听种子的目录。
  3. allow-overwrite:允许覆盖已存在的文件,例如 allow-overwrite=true
  4. continue:启用断点续传功能,例如 continue=true
  5. input-file=FILE 指定下载任务的输入文件,多个输入文件用逗号分隔。
  6. save-session=FILE 指定保存所有下载任务的状态的文件。
  7. continue=true/false 指定是否在下载失败后自动恢复下载。
  8. max-concurrent-downloads=N 指定同时下载的最大任务数。
  9. max-connection-per-server=N 指定每个服务器的最大连接数。
  10. min-split-size=N 指定最小分片大小。
  11. split=N 指定下载时使用的线程数。
  12. max-overall-download-limit=LIMIT 指定所有下载任务的最大下载速度。
  13. max-download-limit=LIMIT 指定每个下载任务的最大下载速度。
  14. max-overall-upload-limit=LIMIT 指定所有上传任务的最大上传速度。
  15. max-upload-limit=LIMIT 指定每个上传任务的最大上传速度。
  16. file-allocation=none/prealloc/falloc 指定文件预分配方式。
  17. log=FILE 指定日志文件的保存路径。
  18. log-level=DEBUG/INFO/WARNING/ERROR/FATAL 指定日志记录级别。
  19. daemon=true/false 指定是否以守护进程方式运行。
  20. enable-rpc=true/false 指定是否启用 RPC 服务器。
  21. rpc-listen-port=PORT 指定 RPC 服务器的监听端口。
  22. rpc-secret=SECRET 指定 RPC 服务器的验证密钥。
  23. rpc-allow-origin-all=true/false 指定是否允许跨域访问 RPC 服务器。
  24. bt-enable-lpd=true/false 指定是否启用本地对等下载。
  25. bt-max-peers=N 指定 BT 下载时的最大对等连接数。
  26. seed-time=SECONDS 指定 BT 下载完成后继续做种的时间。
  27. seed-ratio=RATIO 指定 BT 下载完成后继续做种的分享比率。
  28. listen-port=PORT 指定监听端口。
  29. rpc-secret-file=FILE 指定 RPC 服务器的验证密钥文件。
  30. dir-pr2efix=DIR指定所有下载任务的前缀目录。
  31. always-resume=true/false 指定是否总是在下载任务失败后自动恢复下载。
  32. allow-overwrite=true/false 指定是否允许覆盖同名文件。
  33. auto-save-interval=SECONDS 指定自动保存下载任务状态的时间间隔。
  34. file-allocation=none/prealloc/falloc/... 指定文件预分配方式。
  35. http-accept-gzip=true/false 指定是否允许下载 gzip 压缩过的文件。
  36. http-no-cache=true/false 指定是否禁用 HTTP 缓存。
  37. http-proxy=URL 指定 HTTP 代理服务器地址。
  38. https-proxy=URL 指定 HTTPS 代理服务器地址。

RPC接口

Aria2 提供了许多 RPC(远程过程调用)接口,可以使用这些接口从其他应用程序或脚本中控制 Aria2。以下是 Aria2 中最常用的 RPC 接口:

  1. aria2.addUri([secret,] uris[, options[, position]]):这个接口用于添加一个 HTTP/FTP/SFTP/BitTorrent 下载任务。您可以使用此接口添加单个 URI 或多个 URI,其中 options 参数包括诸如文件保存位置、最大下载速度和下载进度回调等选项。
  2. aria2.addTorrent([secret,] torrent[, uris[, options[, position]]]):此接口用于添加一个种子下载任务。除了种子文件之外,您还可以提供一组 URI,以便 Aria2 可以查找和下载种子中列出的文件。
  3. aria2.addMetalink([secret,] metalink[, options[, position]]):此接口用于添加一个 Metalink 下载任务。Metalink 是一个 XML 格式的文件,其中包含多个 URI 和文件哈希值,以便 Aria2 可以下载并验证下载的文件。
  4. aria2.pause([secret,] gid):此接口用于暂停正在下载的任务。
  5. aria2.unpause([secret,] gid):此接口用于恢复已暂停的下载任务。
  6. aria2.remove([secret,] gid):此接口用于删除一个下载任务。
  7. aria2.tellStatus([secret,] gid[, keys]):此接口返回有关特定下载任务的状态信息,包括下载进度、下载速度、剩余时间和错误消息等。
  8. aria2.getGlobalStat([secret]):此接口返回有关全局下载统计信息的信息,包括总下载速度、总下载数量和总运行时间等。
  9. aria2.getVersion([secret]):此接口返回 Aria2 的版本信息。
  10. aria2.getOption([secret,] gid):此接口返回指定下载任务的选项,例如文件保存位置、最大下载速度和种子文件保存位置等。
  11. aria2.changeOption([secret,] gid, options):此接口用于更改指定下载任务的选项,例如文件保存位置、最大下载速度和下载进度回调等选项。
  12. aria2.getFiles([secret,] gid):此接口返回正在下载的文件的详细信息,包括文件名称、大小、下载进度和哈希值等。
  13. aria2.getUris([secret,] gid):此接口返回正在下载的文件的 URI 列表,以便您可以查看和更改下载来源。
  14. aria2.getGlobalOption([secret]):此接口返回全局选项,例如最大下载速度和文件保存位置等。

这些 RPC 接口提供了对 Aria2 的全面控制,使您可以轻松地从其他应用程序或脚本中控制 Aria2 的下载行为。


Aria2的介绍与使用
https://blog.cikaros.top/doc/c423ee.html
作者
Cikaros
发布于
2023年3月20日
许可协议