aria2默认单线程,必须配置split=16、max-connection-per-server=16等参数才能稳定启用多线程;debian/ubuntu用sudo apt install aria2,centos/rhel 7需先启用epel再yum安装,rhel 8+/fedora用dnf,arch用pacman,安装后需创建~/.aria2/aria2.conf并显式指定路径。

直接装完就能用,但不配好配置文件,多线程基本等于没开。
不同发行版怎么装 aria2
Debian/Ubuntu 系统执行:sudo apt update && sudo apt install -y aria2
CentOS/RHEL 8+ 或 Fedora:用 sudo dnf install -y aria2
CentOS/RHEL 7:先启用 EPEL:sudo yum install -y epel-release,再装 sudo yum install -y aria2
Arch/Manjaro:直接 sudo pacman -S aria2
装完验证版本:aria2c -v,建议不低于 1.35.0,否则部分多线程参数(如 min-split-size)可能不识别
不写配置文件就跑多线程?大概率失败
aria2 默认是单连接下载,-x 16 这类命令行参数看似开了 16 线程,但实际效果受服务器限制、文件大小、协议支持等影响极大。真正稳定启用多线程,必须靠配置文件驱动:
-
split=16:把文件切分成最多 16 块并行下载(仅对 HTTP/HTTPS 有效) -
max-connection-per-server=16:单个域名最多建 16 个 TCP 连接 -
min-split-size=1M:小文件不切分,避免开销;低于此值的块不单独发起请求 -
continue=true:断点续传必需,否则重试时会从头开始 -
input-file和save-session必须指向同一.session文件,否则重启后任务丢失
配置文件路径建议统一用 ~/.aria2/aria2.conf,内容写完后启动前加 --conf-path=~/.aria2/aria2.conf 显式指定,避免读错位置。
命令行多线程下载的实际写法
即使有配置文件,临时覆盖参数仍常用。关键不是堆数字,而是匹配场景:
- 下大镜像(如 ISO):
aria2c -x 16 -s 16 --file-allocation=none https://example.com/ubuntu-24.04.iso(--file-allocation=none跳过预分配磁盘空间,提速明显) - 下多个文件:
aria2c -Z -x 8 -s 8 url1 url2 url3(-Z表示“每个 URL 单独一个任务”,-x是每个任务的并发连接数) - 从文件列表批量下:
aria2c -i urls.txt -x 10 -s 10(urls.txt每行一个 URL) - 磁力链接或种子:
aria2c --seed-ratio=0.0 "magnet:?xt=urn:btih:..."(--seed-ratio=0.0下完不上传,避免占带宽)
注意:-x 和 -s 数值不是越大越好。超过目标服务器允许的并发连接数,反而触发限速或 429 错误;实测多数 CDN 或镜像站,-x 8 -s 8 已足够压满千兆带宽。
为什么下载速度还是上不去
常见卡点不在 aria2 本身,而在外部约束:
- 源站限制:很多 HTTP 镜像(如某些大学开源镜像)明确限制单 IP 并发连接数,强行
-x 16只会反复 403 或超时 - 协议不支持:FTP 不支持
split,Metalink 需要服务端提供多镜像入口,否则仍单线程 - DNS 解析慢:加
--dns-server=1.1.1.1,8.8.8.8可缓解 - 本地磁盘 I/O 瓶颈:尤其是机械盘 +
--file-allocation=prealloc(默认),会导致大量等待;换成none或falloc更稳 - 防火墙或代理干扰:确认
aria2c出站连接未被iptables或企业网关拦截
最易被忽略的一点:aria2 的并发能力高度依赖目标资源是否支持范围请求(Accept-Ranges: bytes)。用 curl -I URL 检查响应头,没有这一项,split 参数完全无效——它连切分的前提都没有。











