Administrator
Administrator
发布于 2024-12-09 / 21 阅读
0
0

aria2c命令

aria2 是一个轻量级的多协议和多来源命令行下载工具,支持 HTTP/HTTPS、FTP、BitTorrent 和 Metalink 等协议。aria2c 是 aria2 的主要命令行界面,提供了丰富的参数选项,允许用户自定义下载行为以满足各种需求。本文将详细讲解 aria2c 命令及其每一个参数,帮助您充分利用 aria2 的强大功能。

目录

  1. 基本介绍
  2. 基本语法
  3. 常用参数详解
  4. 示例
  5. 高级用法
  6. 总结

基本介绍

aria2c 是 aria2 工具的客户端命令,用于启动和管理下载任务。它支持多种协议,并且能够从多个源同时下载文件,提高下载速度和稳定性。

基本语法

aria2c [选项] [URL|磁力链接|Metalink文件]
  • 选项:用于配置下载行为的参数。
  • URL|磁力链接|Metalink文件:要下载的资源,可以是单个或多个 URL、磁力链接,或者 Metalink 文件。

常用参数详解

输入文件和URL

  • URL:直接指定要下载的文件的 HTTP/HTTPS/FTP 地址。

    aria2c http://example.com/file.zip
    
  • 输入文件:使用 -i--input-file 参数从文件中读取下载任务,每行一个 URL。

    aria2c -i urls.txt
    
  • 磁力链接:直接在命令中使用磁力链接下载 BitTorrent 资源。

    aria2c "magnet:?xt=urn:btih:..."
    
  • Metalink 文件:使用 --metalink 参数指定 Metalink 文件来下载。

    aria2c --metalink=example.metalink
    

下载目录和文件名

  • -d, --dir=<DIR>:指定下载文件的目录。

    aria2c -d /path/to/downloads http://example.com/file.zip
    
  • -o, --out=<FILE>:指定下载文件的名称。

    aria2c -o newname.zip http://example.com/file.zip
    
  • --auto-file-renaming=<true|false>:自动重命名已存在文件,防止覆盖。默认为 true

    aria2c --auto-file-renaming=false http://example.com/file.zip
    

连接控制

  • -x, --max-connection-per-server=<NUMBER>:每个服务器的最大连接数。默认值为 5。

    aria2c -x 16 http://example.com/file.zip
    
  • -s, --split=<NUMBER>:将下载任务拆分为多个部分进行并行下载。默认值为 5。

    aria2c -s 10 http://example.com/file.zip
    
  • --min-split-size=<SIZE>:最小拆分大小,默认为 1M。文件较小时不会拆分。

    aria2c --min-split-size=10M http://example.com/largefile.zip
    
  • --max-tries=<NUMBER>:最大重试次数。默认值为 5。

    aria2c --max-tries=10 http://example.com/file.zip
    
  • --retry-wait=<SECONDS>:重试等待时间,单位秒。默认值为 0(立即重试)。

    aria2c --retry-wait=5 http://example.com/file.zip
    
  • --timeout=<SECONDS>:每次请求的超时时间,单位秒。默认值为 60。

    aria2c --timeout=120 http://example.com/file.zip
    
  • --lowest-speed-limit=<SIZE>:最低速度限制,低于此速度则暂停下载。可设置为字节或带单位的大小,如 50K1M。默认值为 0。

    aria2c --lowest-speed-limit=100K http://example.com/file.zip
    
  • --max-download-limit=<SIZE>:最大下载速度限制。设置下载速度上限,如 1M

    aria2c --max-download-limit=1M http://example.com/file.zip
    
  • --max-overall-download-limit=<SIZE>:所有下载任务的总下载速度限制。

    aria2c --max-overall-download-limit=2M -i urls.txt
    
  • --max-concurrent-downloads=<NUMBER>:最大并行下载任务数。默认值为 5。

    aria2c --max-concurrent-downloads=10 -i urls.txt
    

下载限速

  • --max-upload-limit=<SIZE>:BitTorrent 上传速度限制。

    aria2c --max-upload-limit=500K "magnet:?xt=urn:btih:..."
    
  • --seed-ratio=<FLOAT>:BitTorrent 种子比例,下载完成后继续上传的比例。

    aria2c --seed-ratio=1.5 "magnet:?xt=urn:btih:..."
    
  • --seed-time=<SECONDS>:BitTorrent 种子上传时间,单位秒。

    aria2c --seed-time=3600 "magnet:?xt=urn:btih:..."
    

代理设置

  • --all-proxy=<URL>:为所有协议设置代理,如 http://proxy.example.com:8080

    aria2c --all-proxy=http://proxy.example.com:8080 http://example.com/file.zip
    
  • --all-proxy-user=<USER>--all-proxy-passwd=<PASSWD>:设置代理的用户名和密码。

    aria2c --all-proxy=http://proxy.example.com:8080 --all-proxy-user=username --all-proxy-passwd=password http://example.com/file.zip
    
  • --http-proxy=<URL>:为 HTTP 协议单独设置代理。

    aria2c --http-proxy=http://proxy.example.com:8080 http://example.com/file.zip
    
  • --https-proxy=<URL>:为 HTTPS 协议单独设置代理。

    aria2c --https-proxy=http://proxy.example.com:8080 https://example.com/file.zip
    
  • --ftp-proxy=<URL>:为 FTP 协议单独设置代理。

    aria2c --ftp-proxy=http://proxy.example.com:8080 ftp://example.com/file.zip
    

认证与安全

  • --http-user=<USER>--http-passwd=<PASSWD>:为 HTTP 服务器设置基本认证用户名和密码。

    aria2c --http-user=username --http-passwd=password http://example.com/protected/file.zip
    
  • --ftp-user=<USER>--ftp-passwd=<PASSWD>:为 FTP 服务器设置用户名和密码。

    aria2c --ftp-user=username --ftp-passwd=password ftp://example.com/file.zip
    
  • --no-conf:不读取默认配置文件。

    aria2c --no-conf http://example.com/file.zip
    
  • --check-certificate=<true|false>:是否检查 SSL 证书。设置为 false 可忽略证书错误。

    aria2c --check-certificate=false https://example.com/file.zip
    
  • --ca-certificate=<FILE>:指定 CA 证书文件,用于验证 SSL 连接。

    aria2c --ca-certificate=/path/to/ca.pem https://example.com/file.zip
    

BitTorrent 选项

  • --bt-enable-lpd=<true|false>:启用局域网 DHT。默认 false

    aria2c --bt-enable-lpd=true "magnet:?xt=urn:btih:..."
    
  • --bt-enable-peer-exchange=<true|false>:启用 PEX(Peer Exchange)。默认 true

    aria2c --bt-enable-peer-exchange=false "magnet:?xt=urn:btih:..."
    
  • --bt-max-peers=<NUMBER>:BitTorrent 最大连接数。默认 55

    aria2c --bt-max-peers=100 "magnet:?xt=urn:btih:..."
    
  • --bt-request-peer-speed-limit=<SIZE>:BitTorrent 请求速度限制。

    aria2c --bt-request-peer-speed-limit=100K "magnet:?xt=urn:btih:..."
    
  • --bt-save-metadata=<true|false>:保存种子元数据为 .torrent 文件。默认 false

    aria2c --bt-save-metadata=true "magnet:?xt=urn:btih:..."
    
  • --bt-metadata-only=<true|false>:只下载元数据,不下载实际内容。常与 --bt-save-metadata 一起使用。

    aria2c --bt-metadata-only=true --bt-save-metadata=true "magnet:?xt=urn:btih:..."
    
  • --bt-stop-timeout=<SECONDS>:种子停止超时时间,单位秒。默认 0(无限)。

    aria2c --bt-stop-timeout=600 "magnet:?xt=urn:btih:..."
    
  • --bt-enable-dht=<true|false>:启用 DHT(分布式哈希表)。默认 true

    aria2c --bt-enable-dht=false "magnet:?xt=urn:btih:..."
    
  • --bt-dht-file-path=<FILE>:指定 DHT 存储文件路径。

    aria2c --bt-dht-file-path=/path/to/dht.dat "magnet:?xt=urn:btih:..."
    
  • --bt-exclude-tracker=<TRACKER_URL>:排除特定的 Tracker。

    aria2c --bt-exclude-tracker=udp://tracker.example.com:80 "magnet:?xt=urn:btih:..."
    
  • --bt-tracker=<TRACKER_URL>:添加自定义 Tracker。

    aria2c --bt-tracker=udp://tracker.example.com:80 "magnet:?xt=urn:btih:..."
    
  • --metalink=<FILE>:使用 Metalink 文件下载资源。

    aria2c --metalink=example.metalink
    
  • --metalink-use-aria2-conf=<true|false>:是否使用 aria2 配置文件中的 Metalink 选项。默认 false

    aria2c --metalink-use-aria2-conf=true example.metalink
    
  • --metalink-base=<URL>:指定 Metalink 文件的基础 URL。

    aria2c --metalink-base=http://example.com/ example.metalink
    
  • --metalink-location=<true|false>:启用 Metalink 的位置功能。默认 false

    aria2c --metalink-location=true example.metalink
    

输出与日志

  • -j, --max-concurrent-downloads=<NUMBER>:最大并行下载任务数。与前述参数类似。

  • -l, --log=<FILE>:将日志输出到指定文件。

    aria2c -l download.log http://example.com/file.zip
    
  • --console-log-level=<LEVEL>:设置控制台日志级别。可选值:debuginfonoticewarnerror

    aria2c --console-log-level=info http://example.com/file.zip
    
  • --log-level=<LEVEL>:设置日志文件的日志级别。

    aria2c --log-level=error -l download.log http://example.com/file.zip
    
  • --quiet=<true|false>:是否安静模式,禁止所有输出。默认 false

    aria2c --quiet=true http://example.com/file.zip
    
  • --summary-interval=<SECONDS>:设置摘要信息的更新间隔,单位秒。默认 60

    aria2c --summary-interval=30 http://example.com/file.zip
    
  • --show-console-readout=<true|false>:是否在控制台显示下载进度。默认 true

    aria2c --show-console-readout=false http://example.com/file.zip
    

其他有用参数

  • -c, --continue=<true|false>:启用断点续传。默认 true

    aria2c -c=true http://example.com/file.zip
    
  • -k, --min-atomic-unit=<SIZE>:最小原子单元,决定下载拆分的最小单位。

    aria2c -k 1M http://example.com/file.zip
    
  • --max-file-not-found=<NUMBER>:最大未找到文件次数,用于 Metalink 下载。

    aria2c --max-file-not-found=3 example.metalink
    
  • --retry-on-http-error=<ERRORS>:在指定 HTTP 错误码时重试。

    aria2c --retry-on-http-error=403,404 http://example.com/file.zip
    
  • --retry-wait=<SECONDS>:重试等待时间,单位秒。与前述参数类似。

  • --always-resume=<true|false>:即使文件不存在也尝试断点续传。默认 false

    aria2c --always-resume=true http://example.com/file.zip
    
  • --follow-metalink-redirect=<true|false>:是否跟随 Metalink 重定向。默认 false

    aria2c --follow-metalink-redirect=true example.metalink
    
  • --force-sequential=<true|false>:强制顺序下载,不进行拆分。默认 false

    aria2c --force-sequential=true http://example.com/file.zip
    
  • --max-resume-failure-tries=<NUMBER>:断点续传失败的最大尝试次数。默认 0(无限)。

    aria2c --max-resume-failure-tries=3 http://example.com/file.zip
    
  • --no-netrc=<true|false>:不读取 .netrc 文件中的认证信息。默认 false

    aria2c --no-netrc=true http://example.com/file.zip
    
  • --referer=<URL>:设置 HTTP Referer 头。

    aria2c --referer=http://example.com/page.html http://example.com/file.zip
    
  • --header=<HEADER>:添加自定义 HTTP 头。可以多次使用。

    aria2c --header="User-Agent: CustomUA/1.0" http://example.com/file.zip
    
  • --user-agent=<AGENT>:设置自定义 User-Agent。

    aria2c --user-agent="MyDownloader/1.0" http://example.com/file.zip
    
  • --enable-http-keep-alive=<true|false>:是否启用 HTTP Keep-Alive。默认 true

    aria2c --enable-http-keep-alive=false http://example.com/file.zip
    
  • --max-connection-per-server=<NUMBER>:每个服务器的最大连接数。与前述参数类似。

  • --allow-overwrite=<true|false>:允许覆盖已存在的文件。默认 false

    aria2c --allow-overwrite=true -o file.zip http://example.com/file.zip
    
  • --auto-save-interval=<SECONDS>:自动保存下载任务的间隔时间,单位秒。默认 60

    aria2c --auto-save-interval=30 -i urls.txt
    
  • --save-session=<FILE>:保存当前下载会话到文件。

    aria2c --save-session=session.txt -i urls.txt
    
  • --input-file=<FILE>:从文件中读取下载任务。与前述参数类似。

    aria2c --input-file=download_list.txt
    
  • --continue=true|false:是否继续未完成的下载任务。与前述参数类似。

  • --quiet=<true|false>:是否启用安静模式,禁止所有输出。与前述参数类似。

完整参数列表

aria2c 提供了大量的参数,用户可以通过命令 aria2c --help 查看所有可用的选项。以下是一些高级或不常用的参数:

  • --allow-piece-length-change=<true|false>:允许在下载过程中改变块长度。默认 false

  • --async-dns=<true|false>:启用异步 DNS。默认 true

  • --blocklist=<FILE>:使用块列表文件,防止连接到不安全的主机。

  • --checksum=<CHECKSUM>:设置校验和类型和值,用于验证下载文件。

  • --checksum-optional=<true|false>:是否允许可选的校验和。

  • --continue=true|false:是否继续未完成的下载。

  • --console-log-level=<LEVEL>:控制台日志级别。与前述参数类似。

  • --conf-path=<FILE>:指定配置文件路径。

  • --connect-timeout=<SECONDS>:连接超时时间。与前述参数类似。

  • --content-disposition-default-utf8=<true|false>:是否将 Content-Disposition 头部的文件名视为 UTF-8 编码。

  • --content-length=<SIZE>:设置内容长度,用于 HTTP 协议。

  • --content-security-policy=<STRING>:设置内容安全策略。

  • --console-charset=<CHARSET>:设置控制台字符集。

  • --connect-timeout=<SECONDS>:连接超时时间,单位秒。

  • --continue=<true|false>:是否继续未完成的下载。与前述参数类似。

  • --console-charset=<CHARSET>:控制台字符集设置。

  • --disk-cache=<SIZE>:磁盘缓存大小,支持带单位的大小。

  • --enable-color=<true|false>:是否启用彩色输出。默认 true

  • --enable-http-pipelining=<true|false>:启用 HTTP 管道技术。默认 false

  • --file-allocation=<METHOD>:文件分配方式。可选 nonepreallocfalloc。默认 prealloc

    aria2c --file-allocation=none http://example.com/file.zip
    
  • --max-download-result=<NUMBER>:限制单个下载任务的结果大小。

  • --min-tls-version=<VERSION>:最低支持的 TLS 版本。

  • --no-netrc=<true|false>:是否忽略 .netrc 文件。与前述参数类似。

  • --parameterized-uri=<URI>:使用参数化 URI 进行下载。

  • --save-session-interval=<SECONDS>:保存下载会话的间隔时间。

  • --server-stat-of=<URL>:获取服务器统计信息。

  • --summary-interval=<SECONDS>:与前述参数类似。

  • --uri-selector=<SELECTOR>:选择 URI 的策略,如 default, inorder 等。

示例

以下是一些常见的 aria2c 使用示例,帮助您理解如何组合和使用参数:

  1. 基本下载

    aria2c http://example.com/file.zip
    
  2. 指定下载目录和文件名

    aria2c -d /downloads -o myfile.zip http://example.com/file.zip
    
  3. 使用多个连接加速下载

    aria2c -x 16 -s 16 http://example.com/file.zip
    
  4. 从 URL 列表文件下载

    aria2c -i urls.txt
    
  5. 使用代理下载

    aria2c --http-proxy=http://proxy.example.com:8080 http://example.com/file.zip
    
  6. 下载并保存 BitTorrent 种子元数据

    aria2c --bt-save-metadata=true "magnet:?xt=urn:btih:..."
    
  7. 限制下载速度

    aria2c --max-download-limit=500K http://example.com/file.zip
    
  8. 启用日志记录

    aria2c -l download.log http://example.com/file.zip
    
  9. 使用 Metalink 文件下载

    aria2c --metalink=example.metalink
    
  10. 断点续传下载

    aria2c -c http://example.com/file.zip
    

高级用法

aria2c 还支持高级功能,如调度任务、使用 JSON-RPC 接口进行远程控制等。

调度下载任务

您可以通过编写脚本来定时启动或停止下载任务。例如,使用 cron 定时任务每天下载特定文件。

使用配置文件

为了简化命令行参数,您可以使用配置文件(通常为 ~/.aria2/aria2.conf)来预设常用选项。

示例 aria2.conf 内容:

dir=/path/to/downloads
max-connection-per-server=16
split=16
continue=true
enable-dht=true

然后,您只需运行 aria2c -i urls.txt,aria2c 将自动加载配置文件中的选项。

JSON-RPC 接口

aria2c 提供了 JSON-RPC 接口,允许用户通过编程方式远程控制下载任务。这对于集成到其他应用或开发自定义下载管理器非常有用。

启动 aria2c 的 JSON-RPC 接口:

aria2c --enable-rpc=true --rpc-listen-all=true --rpc-allow-origin-all=true

然后,您可以使用 JSON-RPC 客户端向 aria2c 发送命令,如添加下载任务、查询任务状态等。

总结

aria2c 是一个功能强大且灵活的命令行下载工具,适用于各种下载需求。通过理解和掌握其丰富的参数选项,您可以优化下载速度、管理下载任务、处理复杂的下载场景。无论是简单的文件下载,还是复杂的 BitTorrent 或 Metalink 下载,aria2c 都能提供高效的解决方案。建议您根据具体需求,结合官方文档和本文提供的参数说明,灵活运用 aria2c 以实现最佳的下载体验。


评论