关于Aria2
Aria2是一个基于命令行的开源下载工具,支持多协议、多来源(HTTP/HTTPS、FTP、BitTorrent、Metalink协议等)、多线程的下载。它比axel优秀的地方在于完全支持BitTorrent协议,同时可以作为BitTorrent客户端来下载种子文件,支持Metalink协议,远程控制(通过web端)下载进程。
主要优势如下
高速,自动多线程下载;
断点续传;
轻量占用内存非常少,通常情况平均4~9MB内存占用(官方介绍);
多平台。支援 Win/Linux/OSX/Android 等操作系统下的部署;
模块化。分段下载引擎,文件整合速度快;
支持RPC界面远程;
全面支持BitTorrent协议;
Aria2官方项目页面:https://aria2.github.io/
安装Aria2
包安装
CentOS
默认Repo里没有Aria2,我们需要添加第三方的yum源。
安装rpmforge源
1 | $ wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm |
安装Aria2
1 | $ yum -y install aria2 |
注:rpmforge源中的版本是1.16.4,版本相对是比较低!
Ubuntu
1 | $ sudo apt-get install aria2 |
MAC OS
1 | $ brew install aria2 |
编译安装Aria2
依赖环境
Aria2 1.17.1以上版本要求gcc >= 4.8.3 or clang >= 3.4
安装clang
1 | $ yum install clang #epel源 |
安装GCC
通过SCL安装GCC
CentOS 6
https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/
1 | $ wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/rhscl-devtoolset-3-epel-6.repo |
编译Aria2
1 | $ wget https://github.com/aria2/aria2/releases/download/release-1.22.0/aria2-1.22.0.tar.gz |
验证Aria2版本
1 | $ aria2c --version |
配置Aria2
创建配置文件
1 | $ mkdir /etc/aria2/ |
注意将配置表中保存路径一项dir=/root/downloads
替换为自己的保存位置。(Windows下类似这样dir=F:\SoftWare
)
Aria2的使用
配置完成后,就可以开始使用了。
Aria2有两种模式
命令直接调用
直接在命令行下载$ aria2c "download.url"
, 下载完成后自动退出,就和wget 的工作方式一样。
Aria2命令行使用
使用Aria2下载文件,只需在命令后附加地址即可。如
1 | $ aria2c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 |
分段下载
利用Aria2的分段下载功能可以加快文件的下载速度,对于下载大文件时特别有用。为了使用aria2的分段下载功能,你需要在命令中指定-s
选项。如
1 | $ aria2c -s 2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 |
这将使用2连接来下载该文件。-s
后面的参数值介于1~5之间,你可以根据实际情况选择。
断点续传
在命令中使用-c
选项可以断点续传文件。如
1 | $ aria2c -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 |
下载torrent文件
你也可以使用Aria2下载BitTorrent文件。如
1 | $ aria2c -o gutsy.torrent http://cdimage.ubuntu.com/daily-live/current/gutsy-desktop-i386.iso.torrent |
后台下载
1 | $ aria2c -D url |
验证文件
1 | $ aria2c --checksum=md5=别人提供的md5 |
BT下载
1 | $ aria2c /tmp/CentOS-6.3-i386-bin-DVD1to2.torrent |
列出种子内容
1 | $ aria2c -S .torrent |
下载种子内特定编号的文件
1 | $ aria2c --select-file=1,4-7 .torrent |
此处下载编号为1,4,5,6,7的文件
设置bt端口
1 | $ aria2c --listen-port=1234 .torrent |
设置dht端口
1 | $ aria2c --dht-listen-port=1234 .torrent |
下载需要引用页的文件
1 | $ aria2c --referer=referurl url |
限速下载
1 | $ aria2c --max-download-limit=500k url //单个文件 |
下载需要Cookie验证的文件
1 | $ aria2c --header='Cookie:cookie名称=cookie内容' url |
Metalink
1 | $ aria2c http://example.org/mylinux.metalink |
批量下载文本中所有URL
1 | $ aria2c -i uris.txt |
注意:当源地址存在诸如&
,*
等shell的特殊字符,请使用单引号或双引号把URI包含起来。
RPC Server模式(推荐)
Aria2作为后台常驻程序,监测rpc端口的活动情况,添加并下载文件。完成后继续在后台运行。
涉及到命令输入,力求简化,第二种模式明显更省事。
启动Aria2 RPC模式
命令行启动
1 | $ aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all -c --dir /root/downloads -D (-D daemon模式,用于后台执行) |
配置文件启动(推荐)
1 | $ aria2c --conf-path=<Path> |
$HOME/.aria2/aria2.conf
依照上述配置一路下来,具体是
1 | $ aria2c --conf-path="/etc/aria2.conf" -D #(-D daemon模式,用于后台执行) |
这时正确无误的话,Aria2就启动了。
启动脚本
为方便管理,创建一个管理脚本。
1 | $ vi /etc/init.d/aria2 |
添加可执行权限
1 | $ chmod +x /etc/init.d/aria2 |
启动Aria2
1 | $ /etc/init.d/aria2 start |
搭配Aria2 Web UI
Aria2不带GUI界面。了解下载进度会有不便,日常使用需搭配Web UI工具方便查看。
webui-aria2
1 | $ git clone https://github.com/ziahamza/webui-aria2 |
访问这台机器的9999端口就可以了,这里为了方便用python做为WEB服务器,其它任意一种WEB服务器都是可以的。
如果你不想搭建可使用http://ziahamza.github.io/webui-aria2/
,配置数据是存在本地浏览器的,不需要注册。
注意:需要根据情况设置一下Aria2 RPC的地址,一般为Aria2后台进程运行的ip:port,例如192.168.119.100:6800。
YAAW
1 | $ git clone https://github.com/binux/yaaw |
访问这台机器的9999端口就可以了,这里为了方便用python做为WEB服务器,其它任意一种WEB服务器都是可以的。
YAAW也有线版本
http://aria2c.com/
http://binux.github.io/yaaw/demo/
注意:需要根据情况设置一下Aria2 RPC的地址,一般为Aria2后台进程运行的ip:port,例如192.168.119.100:6800。
Windows下图形版本
Aria2c Remote Control
http://sourceforge.net/projects/aria2cremote/
给jsonrpc加上验证
使用token验证(建议使用)
需要1.18.4以上版本,帐号密码方式将在后续版本中停用!
配置文件
1 | # token验证 |
命令行
使用--rpc-secret=xxxxxx
选项
启用验证后,使用http://token:secret@hostname:port/jsonrpc
的地址格式设置secret。
使用密码验证
需要1.15.2以上,1.18.6以下版本
1.18.4新增了--rpc-secret
,设置的RPC授权令牌, 取代--rpc-user
和--rpc-passwd
选项
配置文件
1 | #用户名 |
命令行
使用--rpc-user=user
--rpc-passwd=pwd
选项
启用验证后,使用http://username:passwd@hostname:port/jsonrpc
的地址格式设置密码。
对于RPC模式来说, 界面和后端是分离的, 只要给后端设置密码即可. 前端认证什么的是毫无意义的。
其它相关
YAAW搭配脚本
迅雷离线(需会员账号)
Chrome Extension: ThunderLixianAssistant
UserScript: ThunderLixianExporter
旋风离线
UserScript: XuanFengEx
UserScript: LixianExporter
百度网盘
Chrome Extension: BaiduExporter
Firefox Addons: BaiduExporter
UserScript: BaiduPanDownloadHelper
115网盘
Chrome Extension: 115exporter
其他脚本
Chrome Extension
添加到aria2
Chrome Download Helper
参考文档
http://www.google.com
http://scateu.me/2015/02/12/aria2c-flashgot-firefox-jsonrpc.html
http://skypegnu1.blog.51cto.com/8991766/1637168
http://aria2c.com/usage.html
http://azeril.me/blog/Aria2.html