aria2 是一个轻量级的多协议和多来源命令行下载工具,支持 HTTP/HTTPS、FTP、BitTorrent 和 Metalink 等协议。aria2c
是 aria2 的主要命令行界面,提供了丰富的参数选项,允许用户自定义下载行为以满足各种需求。本文将详细讲解 aria2c
命令及其每一个参数,帮助您充分利用 aria2 的强大功能。
目录
基本介绍
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>
:最低速度限制,低于此速度则暂停下载。可设置为字节或带单位的大小,如50K
、1M
。默认值为 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 选项
--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>
:设置控制台日志级别。可选值:debug
、info
、notice
、warn
、error
。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>
:文件分配方式。可选none
、prealloc
、falloc
。默认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
使用示例,帮助您理解如何组合和使用参数:
基本下载
aria2c http://example.com/file.zip
指定下载目录和文件名
aria2c -d /downloads -o myfile.zip http://example.com/file.zip
使用多个连接加速下载
aria2c -x 16 -s 16 http://example.com/file.zip
从 URL 列表文件下载
aria2c -i urls.txt
使用代理下载
aria2c --http-proxy=http://proxy.example.com:8080 http://example.com/file.zip
下载并保存 BitTorrent 种子元数据
aria2c --bt-save-metadata=true "magnet:?xt=urn:btih:..."
限制下载速度
aria2c --max-download-limit=500K http://example.com/file.zip
启用日志记录
aria2c -l download.log http://example.com/file.zip
使用 Metalink 文件下载
aria2c --metalink=example.metalink
断点续传下载
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 以实现最佳的下载体验。