VPS搭建Aria2下载环境
月底快到了,刚买的VPS流量才用了2G多,还剩497G没用。索性想想办法,除了翻墙之外,让VPS干点别的事情。刚巧最近一直在研究安装Arch Linux,看到了Aria2
这款下载工具,于是产生了在VPS上搭建Aria2
下载环境的想法。因为我的VPS系统是CentOS 6,相对较老,所以这只是一篇针对CentOS 6上的教程,并不完全适用于CentOS 7,但是可以用来参考。
要说在Arch上安装Aria2
那是分分钟的事情,一条命令搞定
1 | pacman -S Aria2 |
问题是现在的环境变成了CentOS 6。我是参考了这篇教程来做的。一上来就遇到了无法安装Aria2
的问题。要么CentOS 6上的epel-release
源,删除了Aria2
,无法通过yum
命令来安装,要么就是无法访问 http://pkgs.repoforge.org 网址,不能安装rpmforge
源。再就是安装gcc
来编译源代码,问题是,网上下载的repo,安装失败,涉及安装gcc
的某个链接失效了。
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 |
以上yum install
命令失败。无奈之下,我自己找到了一个可以下载aria2.rpm
的网站。在安装的时候我走了一些弯路。我总结了一下心得。
首先先别急着下载rpm文件,在CentOS里,执行命令
1 | yum info glibc |
查看一下你的VPS安装的glibc
是32位的还是64位的。为什么要查看glibc
,因为它是aria2
最基础的依赖。我一开始以为环境是64位的,所以得下载安装64位的aria2
。其实我的VPS预装的glibc
是32位的,所以我只需要下载32位的aria2
就OK了。
i686代表32位,x86_64代表64位。打开aria2.rpm下载网址,可以看到CentOS 6可以下载的aria2
版本都是相对较低的,最高也只有1.16.4,最新的aria2
的功能都用不了,不过也不打紧,能用就行。
执行命令,下载aria2-1.16.4-1.el6.rf.i686.rpm
文件,如果你的glibc
是64位,那就安装aria2-1.16.4-1.el6.rf.x86_64.rpm
文件。
1 | wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/i386/rpmforge/RPMS/aria2-1.16.4-1.el6.rf.i686.rpm |
下载rpm文件完成后,执行命令来安装rpm源
1 | rpm -Uvh aria2-1.16.4-1.el6.rf.i686.rpm |
发现报错,根据错误提示再去下载关联的rpm源,主要是因为缺少关联项,这里就不写了。自己到Requires里去找链接地址。
最后,如果相关依赖项都安装成功,执行命令
1 | rpm -Uvh aria2-1.16.4-1.el6.rf.i686.rpm |
通过的话,再执行
1 | yum install aria2 |
,aria2
就安装成功了。注意aria2
的命令是aria2c
,使用的时候要注意。接下来需要创建并配置一下aria2.conf
文件。
1 | mkdir /etc/aria2/ |
将下面的内容黏贴进去
#用户名
#rpc-user=user
#密码
#rpc-passwd=passwd
#上面的认证方式不建议使用,建议使用下面的token方式
#设置加密的密钥
#rpc-secret=token
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
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=*
#文件保存路径, 默认为当前启动位置
dir=/home/user/downloads
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
dht-file-path=~/.aria2/dht.dat
注意,将配置中的dir=/home/user/download
替换成你的保存路径,建议使用绝对路径。同样dht-file-path=~/.aria2/dht.dat
建议换成绝对路径。接下来就可以使用aria2
啦。
aria2的用法
aria2下载文件
1 | aria2c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 |
使用aria2
下载文件,只需在命令后附加地址即可。
aria2 分段下载
1 | aria2c -s 2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 |
利用aria2
的分段下载功能可以加快文件的下载速度,对于下载大文件时特别有用。为了使用aria2
的分段下载功能,你需要在命令中指定-s
选项。
断点续传
1 | aria2c -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 |
在命令中使用-c
选项可以断点续传文件。
下载torrent文件
1 | aria2c /tmp/CentOS-6.3-i386-bin-DVD1to2.torrent |
既可以通过本地torrent文件进行下载,也支持联网下载torrent文件后下载。
列出种子内容
1 | aria2c -S .torrent |
下载种子内特定编号的文件
1 | aria2c --select-file=1,4-7 .torrent |
此处下载编号为1,4,5,6,7的文件
后台下载
1 | aria2c -D url |
这里只列出了一部分的用法,更多更详细的用法,可以去aria2官网查看。
RPC Server模式
虽然更多时候,直接使用命令行来下载很方便,但是我更推荐使用RPC Server模式,使aria2
作为后台进程运行,哪怕ssh断开连接后,依然不影响下载。而且还能够结合webui-aria2界面,通过网页来实时查看下载情况,网页还能够用来驱动aria2
后台进程的运行,简直不能更赞。
首先需要创建一个管理脚本
1 | vi /etc/init.d/aria2 |
将下面的内容复制进去
1 | #!/bin/bash |
然后,添加可执行权限
1 | chmod +x /etc/init.d/aria2 |
启动aria2
脚本
1 | /etc/init.d/aria2 start |
查看aria2
是否运行
1 | /etc/init.d/aria2 status |
到这一步aria2
后台进程算是开启了。接下来需要使用Nginx服务器,当然你也可以用你自己的服务器。如果还没搭过Nginx,建议看一下CentOS 6安装Nginx和Nginx搭建文件下载服务器。
首先需要安装git,执行命令
1 | yum install git |
安装完成后,下载webui-aria2
1 | git clone https://github.com/ziahamza/webui-aria2 |
接下来就是把下载好的webui-aria2
文件夹放到Nginx展示目录下。我的目录地址为/usr/share/nginx/html/
,把当前webui-aria2
移动到该目录下就行。
1 | mv webui-aria2 /usr/share/nginx/html/ |
移动完成后,用浏览器打开网址http(s)://yourvpsdomainname/webui-aria2/#
,将yourvpsdomainname
替换成你的域名即可浏览。
我用aria2
,下载了一部电影感觉还是蛮快的,最高可以达到2M/s。虽然不如迅雷,但是有些迅雷下载速度为0的资源,aria2
下载的速度依然可以达到1M~2M。而且它还支持用户以及密码的安全设置,防止他人直接操控你的vps。我的1.16.4这个版本不支持token
,最新版本推荐使用token
来取代用户名和密码。不过能用就行,要是结合OwnCloud网盘的话,就能实现下载的视频在线看了,爽~