aria2c:未找到命令 /“aria2c”不是可识别的命令
症状: 终端提示 aria2c: command not found、'aria2c' is not recognized,或 yt-dlp 提示 “aria2c is not installed. please install it first.”
原因: 尚未安装 aria2,或者其所在目录不在 PATH 中。
解决方法: 安装 aria2,然后重新打开终端以刷新 PATH。
sudo apt install aria2 # Debian/Ubuntu
brew install aria2 # macOS
winget install aria2.aria2 # Windows (or scoop/choco)
aria2c --version
预期结果: aria2c --version 会输出类似 1.37.0 的版本号。
Windows:已安装 aria2,但终端仍然找不到它
症状: 已经解压了 aria2,但每次打开新终端都提示命令未知。
原因: 存放 aria2c.exe 的目录从未加入 Path 环境变量。
解决方法: 将该目录加入 Path,并打开一个全新的终端(已打开的终端仍使用旧的环境变量)。
# Example folder: C:\aria2
setx PATH "%PATH%;C:\aria2"
预期结果: 新打开的 CMD/PowerShell 可以找到 aria2c。
加载共享库失败:libxml2.so.2 / libcares.so.2
症状: aria2c 启动即退出,提示缺少某个共享库。
原因: 缺少必需的依赖库,或者二进制版本与当前系统不匹配。
解决方法: 安装发行版提供的依赖包。
sudo apt install libxml2 libc-ares2 libssh2-1 libsqlite3-0 zlib1g
# Fedora
sudo dnf install libxml2 c-ares libssh2 sqlite zlib
# Arch
sudo pacman -S aria2 # reinstalls with its deps
预期结果: aria2c --version 不再报缺少库的错误,可正常运行。
Windows:“无法继续执行代码,因为找不到 zlib1.dll/libssh2.dll”
症状: 打开 aria2c.exe 时弹出缺少 DLL 的错误。
原因: 把 aria2c.exe 单独移出了 ZIP 解压目录,与其配套的 DLL 分离了。
解决方法: 保持整个解压目录完整,并将该目录加入 Path。
预期结果: aria2c 正常启动并输出版本号。
macOS:“无法打开,因为无法验证开发者”
症状: macOS(Gatekeeper)拒绝运行下载的二进制文件。
原因: 该二进制文件未经签名与公证,被标记为隔离文件。
解决方法: 优先使用 Homebrew 安装,或手动清除隔离属性。
brew install aria2
# or, for a manually downloaded binary:
xattr -d com.apple.quarantine ./aria2c
预期结果: Gatekeeper 允许该二进制文件运行。
Windows Defender / SmartScreen 拦截 aria2c.exe
症状: 提示“Windows 已保护你的电脑”,或下载后不久文件就被删除。
原因: 未签名的命令行工具偶尔会被启发式查杀误报。
解决方法: 仅从官方 GitHub Releases 下载,核对校验和后放行;或使用 winget/scoop/choco 安装。
winget install aria2.aria2
# verify the downloaded archive against the release checksums
预期结果: aria2c 可以正常运行且不会被删除。
Docker:容器立即退出,或 RPC 端口无法访问
症状: 容器不断重启,或 6800 端口没有任何响应。
原因: 入口命令或启动命令错误、缺少配置文件,或容器内 RPC 只绑定了 localhost。
解决方法: 查看日志;确保启用了 --enable-rpc、rpc-listen-all=true,并已发布端口。
docker compose logs -f aria2
docker compose ps
# the service must map: ports: ["6800:6800"]
预期结果: curl http://localhost:6800/jsonrpc 返回 JSON-RPC 响应。
aria2c:无法验证证书(SSL 错误)
症状: HTTPS 下载因证书校验失败而中断。
原因: 根证书(CA)过旧,或遇到自签名、内网证书。
解决方法: 更新 CA 证书包,或让 aria2 指向正确的证书;内网站点请安装对应的 CA。
sudo apt install ca-certificates # Debian/Ubuntu
aria2c --ca-certificate=/etc/ssl/certs/ca-certificates.crt URL
# Only if you trust the source and cannot install the CA:
# aria2c --check-certificate=false URL
预期结果: 下载不再报证书警告,可正常开始。
SSL/TLS 握手失败 /“openssl error:00000000”
症状: 连接在 TLS 握手阶段中断,没有传输任何数据。
原因: TLS 库过旧、代理或杀毒软件中间拦截,或不支持的协议版本。
解决方法: 更新 aria2 和操作系统;尝试关闭代理;换个网络测试。
预期结果: 握手成功,下载继续进行。
--ca-certificate 似乎被忽略(Windows/macOS)
症状: 指定 --ca-certificate 没有任何效果。
原因: Windows(WinTLS)和 macOS(AppleTLS)后端不支持该选项,它们使用系统信任库。
解决方法: 将证书导入操作系统的信任库。
预期结果: 使用系统信任的证书,HTTPS 下载成功。
HTTP 403 Forbidden(禁止访问)
症状: 服务器返回 403,下载停止。
原因: 该文件需要会话 Cookie、Referer 或浏览器 User-Agent(防盗链保护)。
解决方法: 附带 Cookie 和请求头下载。
aria2c --header="Cookie: session=..." --referer="https://example.com/page" URL
aria2c --load-cookies cookies.txt URL
aria2c --user-agent="Mozilla/5.0" URL
预期结果: 服务器返回 200 并开始传输。
HTTP 404 Not Found(退出码 3)
症状: aria2 以退出码 3 退出,并反复提示“resource not found”。
原因: URL 错误、已过期,或文件已被删除(签名链接很常见)。
解决方法: 获取新的 URL,并设置重试上限以便快速失败。
aria2c --max-tries=3 --max-file-not-found=1 URL
预期结果: aria2 不会无限循环,而是快速停止,或用新 URL 下载成功。
HTTP 429 Too Many Requests(请求过多)
症状: 短时间内大量请求后被服务器限流。
原因: 并行连接数或并发文件数过多。
解决方法: 降低连接数与并发数,并增加重试间隔。
aria2c -x 4 -s 4 --max-concurrent-downloads=2 --retry-wait=10 URL
预期结果: 请求保持在限流阈值以下,下载顺利完成。
HTTP 503 Service Unavailable(服务不可用)
症状: 服务器暂时过载或正在维护。
原因: 服务器端临时负载过高或被限流。
解决方法: 等待后重试;--retry-wait 可让 aria2 自动重试 503。
aria2c --retry-wait=15 --max-tries=10 URL
预期结果: aria2 等待并重试,直到服务器恢复。
HTTP 401 Unauthorized /“HTTP authorization failed”(退出码 24)
症状: aria2 报告认证失败。
原因: 缺少凭据或凭据错误(包括 Basic 与 Bearer 认证)。
解决方法: 通过用户名与密码或 Authorization 请求头提供凭据。
aria2c --http-user=user --http-passwd=pass URL
# or embed in the URI: https://user:pass@host/file
# or a token header:
aria2c --header="Authorization: Bearer TOKEN" URL
预期结果: 服务器认证通过并开始发送数据。
重定向过多(退出码 23)
症状: aria2 因“too many redirects”而中止。
原因: 重定向循环,或 CDN 要求携带 Cookie 与请求头。
解决方法: 直接使用最终 URL,或附带 Cookie 和 Referer。
预期结果: aria2 到达最终的 200 响应。
“Remote server did not support resume”(退出码 8)
症状: 使用 -c 后 aria2 仍拒绝续传。
原因: 服务器忽略 Range(分段)请求,或文件已变化(大小或 ETag 不同)。
解决方法: 去掉 -c 重新完整下载,或换一个支持 Range 的镜像源。
aria2c URL # fresh download (no -c)
aria2c -x 16 -s 16 URL # from a range-capable mirror
预期结果: 完整下载顺利完成。
超时(退出码 2)
症状: aria2 因超时而放弃。
原因: 服务器慢或不稳定,或超时设置过短。
解决方法: 增大超时和重试次数;丢弃卡住的连接。
aria2c --timeout=60 --connect-timeout=30 --max-tries=5 --retry-wait=5 -c URL
预期结果: aria2 会重试并续传,而不是直接中止。
FTP:登录失败 /“FTP command failed”(退出码 21)
症状: FTP 传输因认证或命令错误而失败。
原因: 凭据错误,或防火墙拦截了主动或被动 FTP。
解决方法: 设置正确的凭据,并尝试被动模式(默认)。
aria2c --ftp-user=user --ftp-passwd=pass ftp://host/file
aria2c --ftp-pasv=true ftp://host/file # passive (default)
预期结果: FTP 会话登录成功并开始传输文件。
“Could not parse Metalink document”(退出码 20)
症状: .meta4/.metalink 下载失败。
原因: XML 格式损坏,或 URL 返回的是 HTML 错误页面而非 Metalink。
解决方法: 先把 Metalink 文件本身下载下来打开确认,并验证 URL 返回的确实是 XML。
aria2c https://example.com/file.meta4 # download the metalink itself
aria2c file.meta4 # then use the local file
预期结果: aria2 解析 Metalink 并下载其中列出的文件。
aria2 下载到的是 HTML 页面,而不是文件
症状: 只得到一个很小的 .html 文件或“Access denied”页面。
原因: 该链接需要登录、令牌或经过确认页面。
解决方法: 使用真正的文件 URL(或从浏览器导出 Cookie)。
aria2c --load-cookies cookies.txt URL
预期结果: 响应内容是真正的二进制或文件数据。
BitTorrent:0 peer / 0 KB/s
症状: 种子任务启动后始终找不到 peer。
原因: Tracker 失效、未启用 DHT 与 LPD,且没有开放入站端口。
解决方法: 添加可用的 Tracker,启用 DHT 与 LPD,并转发端口。
aria2c --enable-dht=true --bt-enable-lpd=true \
--bt-tracker="udp://tracker.opentrackr.org:1337/announce" \
--listen-port=6888 --dht-listen-port=6888 mytorrent.torrent
预期结果: 成功连上 peer,速度从 0 开始上涨。
别人能连我,但我始终不是“可连接”状态
症状: 能下载但速度很慢,其他 peer 无法主动连你。
原因: 没有入站端口(未做端口转发,或处于 CGNAT 与 VPN 之后)。
解决方法: 转发一个 TCP+UDP 端口并在 aria2 中设置;若在 CGNAT 之后,请使用支持端口转发的 VPN。
aria2c --listen-port=6888 --dht-listen-port=6888 \
--bt-external-ip=YOUR_PUBLIC_IP mytorrent.torrent
预期结果: 客户端变为可连接状态,速度明显提升。
“No registered tracker” / Tracker 全部不可用
症状: 种子里列出了 Tracker,但没有任何响应。
原因: Tracker 已下线,或当前网络拦截了 UDP。
解决方法: 替换为可用的 Tracker,并补充 HTTP(S) Tracker 作为备用。参见 Tracker 列表。
aria2c --bt-tracker="udp://...,https://..." mytorrent.torrent
预期结果: 至少有一个 Tracker 上报成功并出现 peer。
磁力链接失败或提示“command not found”
症状: 粘贴磁力链接后命令被拆散报错。
原因: URI 中的 & 和 ? 被 Shell 解析了。
解决方法: 始终用双引号把磁力链接包起来。
aria2c "magnet:?xt=urn:btih:..."
预期结果: aria2 获取到元数据并开始下载。
磁力链接一直卡在“fetching metadata”
症状: 磁力任务始终停留在获取元数据阶段,无法进入下载。
原因: 没有可用的 peer 或 DHT 来源来获取种子元数据(种子群已死)。
解决方法: 添加 Tracker 以便获取元数据,或直接使用 .torrent 文件。
aria2c --bt-tracker="udp://tracker.opentrackr.org:1337/announce" \
--enable-dht=true --bt-save-metadata=true "magnet:?xt=urn:btih:..."
预期结果: 元数据到达,保存为 .torrent 文件并开始下载。
PT 私站拒绝连接或封禁 / 分享率很低
症状: 私站种子连不上,或账号分享率受影响。
原因: 私站规则要求只用站内 Tracker,禁用 DHT 与 PEX,并要求保种。
解决方法: 禁用 DHT 与 PEX,并保种到要求的分享率。
aria2c --enable-dht=false --enable-peer-exchange=false \
--bt-enable-lpd=false --seed-ratio=1.0 --seed-time=0 mytorrent.torrent
预期结果: 私站接受该客户端,并持续做种。
做种一直不停止
症状: 任务到 100% 后一直处于活动状态。
原因: seed-ratio=0(无限做种)或分享率目标设得过高。
解决方法: 设置分享率或做种时长限制。
aria2c --seed-ratio=1.0 mytorrent.torrent # stop at ratio 1.0
aria2c --seed-time=0 mytorrent.torrent # stop right after finishing
预期结果: 达到条件后做种自动停止。
“.torrent file corrupted”“bencoded file”或“Magnet URI was bad”(退出码 25/26/27)
症状: aria2 拒绝打开某个种子或磁力链接。
原因: .torrent 文件截断或损坏,或磁力链接格式错误。
解决方法: 从源站重新下载 .torrent,或复制完整的磁力链接。用 -S 检查。
aria2c -S mytorrent.torrent # print file listing; fails if corrupt
预期结果: aria2 列出种子内容并完成下载。
BitTorrent 比 qBittorrent/Transmission 慢很多
症状: 同一种子在 aria2 中明显更慢。
原因: 默认配置偏保守(peer 数、peer 速度奖励、上传限制),且没有转发端口。
解决方法: 调优 swarm 参数并转发端口(参见 速度优化指南)。
aria2c --bt-max-peers=128 --bt-request-peer-speed-limit=50K \
--enable-dht=true --bt-enable-lpd=true --listen-port=6888 mytorrent.torrent
预期结果: 速度接近其他客户端。
WebUI / AriaNg 显示“Disconnected”
症状: 控制面板始终连不上后台进程。
原因: aria2 没有启用 RPC、主机或端口填错,或密钥不一致。
解决方法: 使用令牌启动 RPC,并在 WebUI 中填入相同的值。
aria2c --enable-rpc --rpc-secret=YOUR_SECRET --rpc-listen-all=true --daemon=true
# verify: curl http://127.0.0.1:6800/jsonrpc
预期结果: WebUI 显示“Connected”(已连接)。
“Failed to bind socket” / 6800 端口已被占用
症状: 启用 RPC 后 aria2 无法启动。
原因: 另一个 aria2 实例或其他程序占用了 6800 端口。
解决方法: 停止占用端口的进程,或换一个 RPC 端口。
aria2c --rpc-listen-port=6801 --enable-rpc
预期结果: aria2 正常启动,RPC 在新端口上响应。
RPC 报错“unauthorized” / 密钥不匹配
症状: 客户端能连上,但每次调用都返回错误。
原因: 客户端中的 rpc-secret 与后台进程不一致。
解决方法: 在 WebUI/AriaNg 和后台进程中使用完全相同的令牌。
aria2c --enable-rpc --rpc-secret="My Token 123" --daemon=true
# In the WebUI, enter exactly: My Token 123
预期结果: 调用成功,下载列表正常显示。
HTTPS 页面提示“Mixed content”被拦截
症状: 浏览器控制台拦截了 HTTPS 页面对 RPC 的调用。
原因: HTTPS 页面无法调用明文 http:///ws:// 接口。
解决方法: 通过反向代理(或 VPN)让 RPC 走 HTTPS/WSS,再使用该地址。
# Nginx: proxy /jsonrpc with Upgrade/Connection headers to enable WSS
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
预期结果: HTTPS 版 WebUI 不再被混合内容策略拦截,可正常连接。
在网页中调用 RPC 时报 CORS 错误
症状: 控制台显示 CORS 策略错误。
原因: 后台进程未允许该页面的来源。
解决方法: 启用 rpc-allow-origin-all=true(仅在端口不对外公开时使用)。
aria2c --enable-rpc --rpc-allow-origin-all=true --rpc-secret=YOUR_SECRET --daemon=true
预期结果: 浏览器可以正常调用 RPC 接口。
关闭终端后 RPC 就停止了
症状: 关闭 Shell 后 aria2 被结束,WebUI 断开连接。
原因: aria2 是在前台启动的(没有以后台守护进程方式运行)。
解决方法: 以守护进程或系统服务方式运行。
aria2c --enable-rpc --daemon=true
# or long-lived in a terminal:
nohup aria2c --enable-rpc --rpc-secret=SECRET >/dev/null 2>&1 &
预期结果: 关闭 Shell 后 aria2 依然在运行。
无法从另一台机器访问 RPC
症状: localhost 可以访问,但局域网 IP 访问不了。
原因: 后台进程只绑定了 localhost,或防火墙拦截了该端口。
解决方法: 监听所有网卡,并放行防火墙端口(仅在可信网络中使用)。
aria2c --enable-rpc --rpc-listen-all=true --rpc-secret=SECRET --daemon=true
预期结果: 远程客户端可通过局域网 IP 访问 RPC。
“Could not parse JSON-RPC request”(退出码 30)
症状: 调用 aria2 的集成程序连自己的请求都解析失败。
原因: JSON-RPC 请求体格式错误,或方法与参数结构不对。
解决方法: 检查请求体;注意 params 必须把令牌放在第一位。
预期结果: RPC 接受该请求并返回结果。
“Network problem has occurred”(errorCode=1)
症状: 所有下载都失败,提示 Exception: [AbstractCommand.cc:...] errorCode=1。
原因: 常见原因是设置了系统代理但代理未运行、防火墙或杀毒软件拦截,或 IPv6 问题。
解决方法: 清除失效的代理,或禁用 IPv6;检查 hosts 文件。
aria2c --disable-ipv6=true URL
# also verify no stale proxy: aria2c --all-proxy="" URL
预期结果: aria2 恢复正常连接和下载。
“Name resolution failed”(退出码 19)
症状: aria2 无法解析主机名。
原因: DNS 损坏、解析服务器不可达,或 hosts 条目错误。
解决方法: 测试 DNS,尝试指定解析服务器或关闭异步 DNS。
nslookup example.com
aria2c --async-dns=false URL
aria2c --async-dns-server=1.1.1.1 URL
预期结果: 主机名解析成功并建立连接。
代理连接被拒绝或代理认证失败
症状: 因代理配置错误、代理未运行或认证被拒绝而下载失败。
原因: 全局设置了代理但代理未运行,或凭据错误。
解决方法: 填写正确的带认证代理,或清空代理设置。aria2 只支持 HTTP 代理,填写 socks5:// 会报错“unrecognized proxy format”。
aria2c --all-proxy="http://user:pass@127.0.0.1:8080" URL
# aria2 不支持 SOCKS:请使用 HTTP 代理或 HTTP 转 SOCKS 桥接
aria2c --all-proxy="" URL # disable proxy
预期结果: 流量经代理正常转发,下载继续。
仅部分站点下载失败(IPv6 问题)
症状: 部分站点失败、其他站点正常,常伴随网络错误。
原因: IPv6 连接损坏;aria2 优先走了不通的 IPv6 路由。
解决方法: 在 aria2 中禁用 IPv6。
aria2c --disable-ipv6=true URL
预期结果: aria2 走 IPv4,下载成功。
hosts 文件或防火墙静默拦截了服务器
症状: 域名能解析,但连到了错误的地方(或 127.0.0.1)。
原因: 去臃肿或反遥测工具、杀毒软件添加了空路由。
解决方法: 检查 hosts 文件和防火墙,删除拦截条目。
# Windows: C:\Windows\System32\drivers\etc\hosts
# Linux/macOS: /etc/hosts (look for the domain)
预期结果: 域名连到真实 IP,下载正常。
“Not enough disk space”(退出码 9)
症状: 下载因磁盘空间不足而中止。
原因: 目标磁盘已满,或预分配需要的空间超出剩余空间。
解决方法: 清理空间、换一个 --dir,或降低预分配方式。
aria2c -d /path/with/space URL
aria2c --file-allocation=none URL
预期结果: 文件正常写入,不再报空间不足。
Permission denied /“could not create new file”(退出码 16)
症状: aria2 无法写入目标目录。
原因: 当前用户(或容器)没有写权限。
解决方法: 下载到自己有权限的目录,或修复权限与属主。
aria2c -d ~/Downloads URL
ls -ld ~/Downloads
# Docker: set user: "1000:1000" or chown the mounted folder
预期结果: 文件成功创建并写入。
“File I/O error”“could not open existing file”“could not create directory”(退出码 15/17/18)
症状: aria2 在创建或写入文件与目录时失败。
原因: 路径错误、文件名含非法字符、磁盘只读或被拔出,或磁盘故障。
解决方法: 使用简短、合法、可写的路径;检查磁盘状态。
aria2c -d /mnt/data/downloads --out=file.iso URL
预期结果: 目录和文件正常创建,无 I/O 错误。
在 U 盘/exFAT/FAT32 上下载失败(超过 4 GB 的文件)
症状: 大文件在 FAT32/exFAT U 盘上失败或损坏。
原因: FAT32 单文件上限 4 GB;部分 exFAT 驱动对超大稀疏文件支持不佳。
解决方法: 使用 NTFS/ext4,或先下载到内置硬盘。
预期结果: 大文件在合适的文件系统上正常写入。
下载到 SMB/NFS 共享目录时卡住或损坏
症状: 写入网络共享速度很慢、卡死或失败。
原因: falloc/prealloc 和稀疏文件在网络共享上支持不好。
解决方法: 在网络共享上使用 none 分配方式,并设置较小的磁盘缓存。
aria2c --file-allocation=none --disk-cache=16M -d /mnt/nas/downloads URL
预期结果: 在共享目录上可靠地完成写入。
“Piece length was different from one in .aria2 control file”(退出码 10)
症状: 续传时报分片长度不匹配而失败。
原因: 该 .aria2 文件属于另一个文件(或服务器配置已变)。
解决方法: 删除不匹配的控制文件后重新下载,或允许长度变化。
# safest: remove the stale control file, then re-download
aria2c --allow-piece-length-change=true URL
预期结果: 下载继续,控制文件匹配正常。
“File already existed”(退出码 13)/“renaming failed”(退出码 14)
症状: 因同名文件已存在,aria2 拒绝写入。
原因: 覆盖保护开启,或自动重命名遇到了非法文件名。
解决方法: 允许覆盖或自动重命名。
aria2c --allow-overwrite=true URL
aria2c --auto-file-renaming=true URL
预期结果: aria2 覆盖或重命名后继续下载。
下载时电脑卡死 / 磁盘占用 100%
症状: 大文件下载时整个系统变卡。
原因: 在 HDD 或慢速磁盘上预分配加大量小写入导致。
解决方法: 使用 falloc(或 trunc),增大磁盘缓存,减少连接数。
aria2c --file-allocation=falloc --disk-cache=64M -x 8 -s 8 URL
预期结果: 磁盘占用更平滑,系统保持流畅。
Windows:“路径太长”/ 无法创建文件
症状: 长的种子或文件名在 Windows 上失败。
原因: 经典的 260 字符 MAX_PATH 限制。
解决方法: 缩短 --dir,或在 Windows 中启用长路径支持。
aria2c -d C:\dl URL
预期结果: 文件在路径长度限制内成功创建。
续传每次都从 0% 重新开始
症状: 重新运行下载任务时从头开始。
原因: 缺少 -c、文件被重命名或移动,或控制文件丢失。
解决方法: 保持 file.ext + file.ext.aria2 在一起,并用 -c 运行。
aria2c -c -x 16 -s 16 URL
预期结果: aria2 从已有分片继续下载。
到 100% 后 .aria2 文件没有被删除
症状: 完成后 file.ext.aria2 仍然存在。
原因: BitTorrent 做种仍在进行,或完整性校验未通过。
解决方法: 停止做种或移除任务,或校验文件。
aria2c -c --check-integrity=true URL
预期结果: 文件封存后 aria2 删除控制文件。参见 .aria2 文件指南。
打开未下载完的文件时提示“文件已损坏”
症状: 播放器或解压软件拒绝打开未完成的文件。
原因: 文件根本还没下完(.aria2 文件还在)。
解决方法: 继续下载;不要删除控制文件。
预期结果: 下载完成后文件恢复正常。
重启后下载任务消失了
症状: 重启 aria2 后队列与进度丢失。
原因: 没有配置会话持久化。
解决方法: 配置会话文件和保存间隔。
save-session=/config/aria2.session
input-file=/config/aria2.session
save-session-interval=60
continue=true
预期结果: aria2 启动时重新加载队列并续传。
aria2 无法启动:“Failed to open the file …aria2.session, cause: File not found”
症状: aria2 启动后立即退出并报 errorCode=1 Failed to open the file …/aria2.session;Docker 容器不断重启。
原因: input-file 指向一个尚不存在的会话文件。aria2 只在 save-session 时创建它,但缺少该文件时拒绝启动。另外 aria2 会展开路径中的 ${HOME},但不会展开 ~。
解决方法: 先创建一次空文件,并在 aria2.conf 中使用绝对路径或 ${HOME}。
mkdir -p ~/.aria2 && touch ~/.aria2/aria2.session # Linux/macOS
type nul > "%USERPROFILE%\.aria2\aria2.session" # Windows (cmd)
# Docker: touch the file inside the mounted /config folder
预期结果: aria2 以空队列启动,此后会自动保存和恢复队列。
“Downloading same file/info hash at that moment”(退出码 11/12)
症状: aria2 拒绝添加重复任务。
原因: 相同 URI 或种子已在队列中。
解决方法: 管理已有任务(或更换输出文件名)。
预期结果: 队列中只保留一个该任务。
下载速度远低于我的带宽
症状: 速度远低于实际带宽。
原因: aria2 的 HTTP 默认是每服务器单连接。
解决方法: 增加连接数和分片数。
aria2c -x 16 -s 16 -k 1M URL
# HDD: add --file-allocation=falloc
预期结果: 速度提升到接近带宽上限。参见 速度优化指南。
速度被限制在某个固定值
症状: 速度卡在一个整数值(例如正好 5 MB/s)。
原因: 设置了限速选项(0 表示不限速)。
解决方法: 清除下载与上传限速。
max-overall-download-limit=0
max-download-limit=0
max-overall-upload-limit=0
预期结果: 速度只受网络与磁盘限制。
aria2 占用内存或 CPU 过高
症状: 下载时内存或 CPU 占用很高。
原因: disk-cache 设得过大、连接数上百,或 peer 数过大。
解决方法: 降低缓存和连接与 peer 上限。
aria2c --disk-cache=32M -x 8 -s 8 --max-concurrent-downloads=3 -j 3 URL
预期结果: 资源占用下降,速度仍可接受。
“Download aborted because speed was too slow”(退出码 5)
症状: aria2 放弃了速度过慢的源。
原因: lowest-speed-limit 对该服务器设得过高。
解决方法: 调低或去掉该限制。
aria2c --lowest-speed-limit=0 URL
# or a gentle floor: --lowest-speed-limit=1K
预期结果: 即使源速度慢,下载也会继续。
“Bad or unrecognized option”(退出码 28)
症状: aria2 因选项错误无法启动。
原因: 拼写错误、键名写错,或当前版本不支持该选项。
解决方法: 对照 选项参考检查键名,并更新 aria2。
预期结果: aria2 正常解析配置并启动。
我的 aria2.conf 被忽略了
症状: 文件中的设置没有任何效果。
原因: 文件放错位置、文件名错误,或命令行参数覆盖了它。
解决方法: 使用正确的路径,并记住命令行选项优先级更高。
# Linux/macOS: ~/.aria2/aria2.conf
# Windows: %USERPROFILE%\.aria2\aria2.conf
aria2c --conf-path=/path/to/aria2.conf
预期结果: 启动时配置的选项正常生效。
Windows:--downloader-args 中的选项被忽略
症状: 通过 yt-dlp 传递的 aria2 参数没有生效。
原因: Shell 引号把 aria2c: 的值拆散了。
解决方法: 用双引号把整个值包起来;不要混用引号类型。
yt-dlp --downloader aria2c --downloader-args "aria2c:-x 16 -s 16 -k 1M" URL
预期结果: 参数正常传给 aria2,速度提升。
把 6800 端口暴露出去危险吗?
症状: RPC 端口可以从公网访问。
原因: 设置了 rpc-listen-all=true,又做了路由器端口转发或有公网 IP。
解决方法: 永远不要把 6800 公开暴露。只保留在 localhost 或局域网,使用 VPN 或带认证的 HTTPS 反向代理。
# Keep local:
rpc-listen-all=false
# Always set a strong token when enabled:
rpc-secret=long-random-string
预期结果: 只有可信网络能访问 RPC。
rpc-allow-origin-all 会让任意网站控制我的后台进程
症状: 为 WebUI 开启了 CORS,有点担心安全性。
原因: CORS 放开后,只要能访问该端口,你打开的任意页面都能调用 RPC。
解决方法: 保持端口私有,使用强密钥,优先用本地页面或代理而非暴露端口。
预期结果: WebUI 正常可用,不可信站点无法访问 RPC。
安全提醒:来自未知来源的种子、Metalink 和 .aria2 文件
症状: 正准备从不可信来源下载。
原因: 种子或 Metalink 可能指向恶意内容;外来的 .aria2 文件不可信。
解决方法: 优先使用官方来源,校验校验和与签名,绝不把 .aria2 文件复用于另一个文件。
aria2c --check-integrity=true --checksum=sha-256=HEXDIGEST URL
预期结果: 文件哈希与官方公布的摘要一致。