在所有命令行下载器里,aria2 是一个非常独特的存在:它同时支持 HTTP/HTTPS、FTP、SFTP、BitTorrent、Metalink 五种主流下载协议,把它们的实现统一在同一个二进制文件里。这种“协议大一统”的整合能力,在整个下载工具史上几乎找不到第二个例子。更厉害的是,aria2 自身只提供命令行界面,它把 GUI 完全交给社区——这催生了一个围绕它的 GUI 生态,Motrix、AriaNg、Persepolis 都基于它构建。
一个日本程序员的 20 年坚持
aria2 的作者是日本程序员 Tatsuhiro Tsujikawa,项目从 2005 年开始开发,至今已经持续维护了 20 年。和 wget、curl 这些由商业公司或基金会支持的项目不同,aria2 长期由 Tatsuhiro 个人主导开发,这种“个人英雄主义”的开发模式反而让它保持了高度一致的设计理念——所有协议都被同等对待,没有“主协议”和“附属协议”的区分。
aria2 的 GitHub 仓库至今仍在活跃维护,最新版本持续发布。社区虽然不算庞大,但贡献者质量很高,经常能看到底层代码的细致优化和性能改进。
Metalink:aria2 的差异化杀手锏
aria2 最被低估的能力是它对 Metalink 协议的支持。Metalink 是一种“下载元数据”格式——一个 。metalink 文件里可以同时包含多个下载源(HTTP、FTP、镜像)、多个协议、文件哈希校验值、以及分段下载信息。aria2 下载一个 Metalink 文件时,会自动选择最快的源、并发从多个源拉取分段、用哈希校验完整性——这一切都是自动的。
aria2 不是“另一种下载器”,它是“协议层的中立下载引擎”。这种定位让它成为了几乎所有高级 GUI 下载工具的底层引擎。
这套能力在开源镜像站、Linux 发行版分发、商业软件分发场景里极其重要。一个 Linux 发行版的 ISO 文件通常包含上百个镜像源,用 aria2 下载可以自动挑选离你最近的几个源并发拉取,速度比单源下载快 5 到 10 倍。
RPC 接口:GUI 生态的基础
aria2 没有 GUI,但它提供了完整的 XML-RPC 和 JSON-RPC 接口。这意味着任何前端应用都可以通过网络调用控制 aria2——启动任务、暂停任务、查看进度、设置速度限制,所有操作都可以通过 RPC 完成。这套设计让 aria2 成为 GUI 开发者的最爱:你只需要写前端,所有下载逻辑都交给 aria2。
围绕 aria2 的 GUI 生态非常丰富。AriaNg 是一个纯静态网页前端,你可以在任何浏览器里管理远程 aria2 任务;Persepolis 是 Qt 编写的桌面客户端;Motrix 是 Electron 编写的现代 UI 客户端;webui-aria2 是最经典的轻量级网页前端。这些 GUI 工具千差万别,但底层都是同一个 aria2 二进制——这就是 RPC 解耦的力量。
BitTorrent 支持:轻量但完整
aria2 对 BitTorrent 协议的支持不如 qBittorrent、Transmission 那些专用客户端丰富——它不支持做种排行榜、不支持 IP 地址过滤、不支持协议加密优化。但它支持所有核心功能:下载 。torrent 文件、磁力链接、UDP tracker、DHT、加密协议、PEX peer 交换。对于只想“顺便用 BT 下个东西”的用户,aria2 已经够用。
这种“轻量但完整”的 BT 支持,让 aria2 成为一些 NAS 系统(OpenWRT、Synology、QNAP)的内置下载工具——这些系统对资源占用敏感,不愿装一个完整的 qBittorrent,但 aria2 几个 MB 的体积刚刚好。
分片策略:和 IDM 不同的思路
aria2 的多线程下载和 IDM 的“动态分片”思路不同。aria2 默认把一个文件切成若干个等大的段(比如默认 16 段),每段用一条连接下载。如果某条连接变慢,aria2 不会动态调整该段的分片,但它会从更快的源补充下载同一段。这种“先分段再调源”的策略比 IDM 的纯动态重切简单一些,但在多源场景下效果反而更好。
实测中,aria2 在多源镜像下载场景下速度优势非常明显;但在单源服务器场景下,因为没有动态分片,速度可能略逊于 IDM。
在 Docker 和 NAS 中的统治力
aria2 在 Docker 容器、NAS 系统、家庭实验室场景里几乎是默认选择。原因很简单:它体积小(一个二进制文件几 MB)、协议支持广、内存占用低、配置灵活。一个典型场景是在 NAS 上跑一个 aria2 容器,通过 AriaNg 网页前端管理,7x24 小时挂机下载,完全不占用桌面资源。
这种“无人值守后台下载器”的定位,让 aria2 在专业玩家群体里获得了远超普通用户的口碑。它不是给“想下个文件的人”用的,而是给“想搭一套自动下载系统的人”用的。
aria2 的局限性
aria2 也并非完美。它的命令行参数数量极其庞大(数百个选项),新手面对 aria2c --header="Cookie: xxx" --check-integrity --max-connection-per-server=16 --split=32 这种命令会崩溃。它的错误信息对用户不友好,BT 任务的故障排查对经验要求很高。它没有视频嗅探、站点抓取这类桌面功能。
但这些都不影响 aria2 在专业场景下的核心价值:它是下载引擎,不是下载工具——你用别的工具让它跑,或者自己写脚本调它的 RPC。下一篇我们要讲的 xget,就是基于 aria2 构建的开源加速器,展示了 aria2 作为底层引擎的灵活组合能力。
参考资料
- aria2 官网。 aria2 - The Fastest CLI Download Manager https://aria2.org
- GitHub。 aria2/aria2 https://github.com/aria2/aria2
- aria2 中文文档。 Aria2 中文文档 https://aria2.document.top/zh
- 知乎。 Aria2 安装和使用全教程 https://zhuanlan.zhihu.com