linux下载神器aria2
一. 简介
玩PT用的transmission只能下载种子文件,最近要下载个http链接的文件, 只能找找别的下载软件了。
还别说真让我找到个,它就是下载神器aria2,支持 HTTP、FTP、BitTorrent、Metalink等多协议、多来源的命令行下载工具。
这个工具的配置比较复杂,下面记录下centos7安装aria2的过程。
二. aria2
安装aria2
install_aria2.sh
yum -y install epel-release
yum -y install aria2 git
mkdir -p /etc/aria2
touch /etc/aria2/aria2.session
配置aria2
/etc/aria2/aria2.conf
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
#断点续传
continue=true
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用
#disk-cache=0
#另一种Linux文件缓存方式
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
file-allocation=prealloc
#自己设置的参数
#用户名
#rpc-user=root
#密码
#rpc-passwd=your-passwd
#上面的认证方式不建议使用,建议使用下面的token方式
#设置加密的密钥
rpc-secret=your-secret
#下载历史保存路径
input-file=/etc/aria2/aria2.session
save-session=/etc/aria2/aria2.session
#文件保存路径, 默认为当前启动位置
dir=/vps/hosts/aria2/downloads
大家可以根据自己需要,修改"#自己设置的参数"下面的内容
- rpc-user和rpc-passwd是老的认证方式,已经不建议使用了,这里注释掉
- rpc-secret这个是新认证方式-token方式,这里使用这个,设置的是"your-secret"
- input-file和save-session是下载历史保存的路径
- dir配置的下载文件保存路径
命令
按照上面的配置应该没啥问题,我们可以先用下面的命令来测试是否可以启动aria2服务
/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf
如果可以正常启动,ctrl+c
结束,执行下面命令后台运行
/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf -D
三. WebUI
现在aria2服务已经启动起来了,要想方便的使用它,还差个好的管理工具。
aria2不像transimission那样有自带的web管理界面,还好它支持JSON-RPC和XML-RPC接口远程调用,我们可以使用https://github.com/ziahamza/webui-aria2来作为它的WebUI。
cd /vps/hosts
git clone https://github.com/ziahamza/webui-aria2
mv webui-aria2 aria2
nginx配置
我们使用nginx来做它的web服务器,配置文件是
server {
listen 80;
listen [::]:80;
server_name aria2.wangbin.io;
location / {
root /vps/hosts/aria2;
index index.html index.htm;
}
location /jsonrpc {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:6800/jsonrpc;
proxy_redirect off;
}
}
- root对应的值为我们刚才git下来的工程路径/vps/hosts/aria2
- 这个工程会调用aria2的JSON-RPC接口,但aria2的rpc默认端口是6800,这里我们用nginx反代一下,这样我们就可以不开放6800端口,只开放80端口了。相应的,我们需要修改工程的默认配置,后面我们会说到。
修改后,执行nginx -t
检查下配置是否有问题,没问题再执行nginx -s reload
重新加载nginx配置。
webui-aria2配置
webui-aria2的配置文件为configuration.js
我们需要修改其中2个地方,连上之前启动的aria2服务。
- port: 80,使用nginx的服务,上面nginx配了反代aria2在6800端口提供的服务,这样我们请求nginx的80端口就可以了
- token: 'your-secret',上面aria2的配置文件中rpc-secret对应的值,工程会拿这个用于验证
配置文件详细解释可以看这里https://www.jianshu.com/p/7ba0e08e9946
结尾
按照上面的配置后,访问nginx配置的server_name aria2.wangbin.io,就可以愉快的使用aria2下载http链接的资源啦,赶紧试试吧。
参考: