aria2 是命令行下载器,一个 exe 支持 HTTP、HTTPS、FTP、SFTP、BitTorrent、Metalink。它的卖点是分片:把一个文件切成若干段同时下,还支持断点续传和限速,很多人拿它当浏览器下载的后端。
分片开多少合适,答案和网络环境关系很大。同一个 10 MiB 文件,本地回环里开 4 个分片能跑到 21.6 MB/s,公网上开 16 个分片反而比 1 个慢 24%。
解压即用,一条命令
aria2c --version
aria2 version 1.37.0
aria2c -x 8 -s 8 -d D:\dl -o test.bin https://example.com/test.bin
-x 是连同一台服务器的最大连接数,-s 是把这个文件切成几段。-d 指定保存目录,-o 指定文件名。Release 页给的是 zip,解出来只有一个 aria2c.exe,不带 DLL。
本地回环:4 个分片就到顶
用 Python 起一个本地 HTTP 服务,提供 10 MiB 的随机数据文件,从 127.0.0.1 下载,每档跑一次:
| 分片参数 | 耗时(秒) | 速度(MB/s) | 文件完整 |
|---|---|---|---|
| -x 1 -s 1 | 0.67 | 14.9 | 是 |
| -x 4 -s 4 | 0.46 | 21.6 | 是 |
| -x 8 -s 8 | 0.46 | 21.6 | 是 |
| -x 16 -s 16 | 0.49 | 20.3 | 是 |
1 个连接 14.9 MB/s,4 个连接 21.6 MB/s,提升 45%。再往上没有收益,16 个连接还掉了 1.3 MB/s,因为本地回环的带宽早就被吃满了,多开连接只是在争同一块磁盘。
公网:分片越多越慢
换成从公网服务器拉同一个 10 MiB 文件,中间隔着家用宽带:
| 分片参数 | 耗时(秒) | 速度(MB/s) |
|---|---|---|
| -x 1 -s 1 | 14.63 | 0.7 |
| -x 8 -s 8 | 15.27 | 0.7 |
| -x 16 -s 16 | 18.08 | 0.6 |
16 个分片比 1 个多花 3.45 秒,慢 24%。这种情况在带宽受限的链路上很常见:服务端按连接限速,客户端再多开也没用,额外的 TCP 握手和重传反而拖后腿。
判断方法很简单,先用 -x 1 跑一次记速度,再换 -x 4 跑一次。第二次没快到 20% 以上,说明链路已经跑满了,分片数就该停在那里。
断点续传是真的能接上
往目标目录放一个只下了 5 MiB 的半截文件,再用 --continue=true 跑:
> aria2c -x 8 -s 8 --continue=true -d D:\dl -o out.bin http://127.0.0.1:8899/speedtest10m.bin
最终大小 10485760 字节,与源文件一致
耗时 0.32 秒(只补了剩下的 5 MiB)
它按已有文件的大小发 Range 请求,只补后面的部分;分片下载时旁边还会多一个 .aria2 文件记录每段的完成情况。那个控制文件删了就只能从头下。
分片开太大直接报错
> aria2c -x 32 -s 32 ...
Exception: [AbstractOptionHandler.cc:69] errorCode=28
-> [OptionHandlerImpl.cc:184] errorCode=1
max-connection-per-server must be between 1 and 16.
-x 的合法范围是 1 到 16,如果写成 32,程序会在参数解析阶段就报错退出,退出码 28,一个字节都不会下。想更快只能靠多个服务器,单台服务器最多 16 个连接。
URL 打不开同样会报错,而且不同原因给不同退出码,脚本里可以直接判断:
| 情况 | 退出码 | 提示 |
|---|---|---|
| URL 返回 404 | 3 | errorCode=3 Download aborted |
| 端口不通 | 29 | errorCode=29 Download aborted |
| -x 超过 16 | 28 | max-connection-per-server must be between 1 and 16 |
404 和连接被拒是两种退出码,脚本里能分开处理:3 说明文件没了,29 说明网络或服务端没起来。
什么时候别用它
只下一次小文件。为 2 MB 的文件装一个 5 MB 的 exe,不如浏览器直接点。aria2 的价值在批量、断点续传和分片,单次小文件用不上。
链路上游限速。公网实测 16 个分片比 1 个慢 24%,服务端按连接限速时,多开连接只会增加握手和重传。
需要图形界面。aria2 本身没有界面,要么开 --enable-rpc 配上 AriaNg 这类网页前端,要么直接命令行。想要托盘图标就别选它。
还没测的两项:BitTorrent 做种下的速度表现 / RPC 模式配 AriaNg 的完整流程。前者需要公网可连的种子,后者要额外部署一个前端。










