aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP,BitTorrent and Metalink. aria2 can be manipulated via built-inJSON-RPC and XML-RPC interfaces.
Aria2是一个命令行下轻量级、多协议、多来源的下载工具(支持 HTTP/HTTPS、FTP、BitTorrent、Metalink)。提供 XML / JSON RPC API 接口以支持第三方 UI。
使用 C 开发,支持 Linux / Windows / Android 等平台.
Quick Start
Aria2 有两种下载模式.
- 命令行下载模式, 即启动时通过命令行参数获得URL并进行下载, 下载完成后自动退出 (想像成支持BT/磁力链的 wget / curl).
- RPC模式, 启动后进入等待状态,通过RPC接口接收下载请求并进行下载, 这种模式下 aria2 不会自动退出. (想像成命令行版本的迅雷之类的下载管理器, 但是本身没有 UI, 只能通过 RPC 接口管理)
以下说明使用 RPC 模式.
- 下载对应平台的 aria2. 在其程序目录下(或任何其他位置)创建一个 aria2.conf 配置文件. 参考 aria2.conf 配置文件
- 在当前目录 terminal / shell 里执行
aria2c --conf-path=aria2.conf
, 传入之前创建的 aria2.conf 的路径(绝对路径或相对路径均可). aria2 启动后会占据当前 terminal.
如果让其在后台运行, 加上 -D 参数 - 使用(第三方) Web UI 「YAAW」管理 aria2 下载任务. 在线版 | 本地版. 本地版用 Chrome 打开 index.html 文件即可. 第一次使用 Web UI 时需要在右上角"设置"里将 JSON-RPC Path 设为
https://localhost:6800/jsonrpc
(设置保存在 HTML5 Local Storage 里)
解除 Aria2 单服务器连接数限制
aria2 配置文件里可以设置单服务器最大连接数: max-connection-per-server=16
但是默认编译的 aria2 限制了这个值最大 16,如果设置了超过16的值 aria2 启动时会报错。这个限制是硬编码在 aria2 源代码里的。
要想解除这个限制,必须自己从源代码编译 aria2
PS. 这个限制非常傻逼,不知道是哪个脑残想出来的。
使用 aria2 下载百度网盘文件
推荐使用 BaiduExporter 这个 Chrome 插件. 这个插件在 Chrome store 下架了 (由于百度投诉?), 所以不能直接从 Store 安装,安装方法参考 Chrome 安装本地 extension 方法。
使用方法:
使用 Chrome 访问百度网盘 Web 版 (https://pan.baidu.com/) ,选择文件(夹), 然后点击 "导出下载" - "ARIA2 RPC" 即可自动开始用 aria2 下载对应文件 (非百度网盘 SVIP 用户下载分享文件须先将文件保存到自己网盘以获得较快的下载速度)。可以在 aria2 的 cmd 窗口里看到当前下载任务的进度 / 速度,也可以通过 aria2 的 Web UI 管理进行中的下载任务.
解除百度网盘限速
百度网盘有时会对某些帐号限速,单线程 20KB/s 或 10KB/s。
最简单的破解方法是在 aria2 配置文件里设置 max-connection-per-server=128 或更高值。就算是限速到单线程 10K,128个线程(实际上是连接)并发下载也有 1MB/s 多,足够了。
但需要自己编译 aria2 以解除默认的单服务器连接数限制。