CentOS 下搭建 aria2 远程下载环境
aria2 是另一款 Linux 下轻量级的多线程下载工具,支持 Http/Https、Ftp、BitTorrent、Metalink 协议。它比 axel 优秀的地方在于:完全支持 BitTorrent 协议,同时可以作为 BitTorrent 客户端来下载种子文件;支持 Metalink 协议;远程控制(通过 web 端)下载进程。 比起 wget, aria2 支持多线程下载,比起 Transmission, aria2 更快,支持的协议更多。
Aria 2 本身是一款纯命令行工具,看来 6 MB 的体积没能容下精心设计的图形界面,但这绝不妨碍它成为一款使用体验上佳的下载器——退一步讲,没有图形界面也算变相避开了广告等无关因素的骚扰吧。Aria 2 支持 BT、磁力链和普通 HTTP(s) / FTP 下载,没能解析 ed2k:// 是个遗憾。作为下载器中的高端货,设置磁盘缓存、多线程、远程服务器登录和上下行限速等不在话下,它甚至能够处理 URL 通配符、从多个地址下载/合并同一文件、加载 Cookie / Header、伪装 User Agent 和允许远程控制等等。
官网地址:http://aria2.sourceforge.net ,首页有简略使用教程(Usage Examples),更多高阶教程围观官网 Manual (一切宝藏尽在这里)。
一、aria2 安装
默认 repo 里没有 aria2 ,我们需要添加第三方的 yum 源。
CentOS:
1、先安装 RepoForge Repos
2、 yum -y install aria2
Ubuntu:
$ sudo apt-get install aria2
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm # rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm # yum -y install aria2
编译安装:
源码下载地址:http://aria2.sourceforge.net/,目前最新版的是1.18.10, http://sourceforge.net/projects/aria2/files/stable/aria2-1.18.10/
1、下载 源码包
2、编译安装
# wget http://sourceforge.net/projects/aria2/files/stable/aria2-1.18.10/aria2-1.18.10.tar.gz # tar xf aria2-1.18.10.tar.gz -C /usr/local/src # cd /usr/local/src # ./configure # make ### 报错 ... CXX A2STR.lo CXX AbstractAuthResolver.lo CXX AbstractCommand.lo In file included from AbstractCommand.cc:35: AbstractCommand.h:261: error: ‘nullptr‘ was not declared in this scope AbstractCommand.h:263: error: ‘nullptr‘ was not declared in this scope In file included from FileAllocationMan.h:39, from DownloadEngine.h:50, from AbstractCommand.cc:40: SequentialPicker.h: In member function ‘T* aria2::SequentialPicker<T>::pickNext()‘: SequentialPicker.h:78: error: ‘nullptr‘ was not declared in this scope In file included from DownloadEngine.h:52, from AbstractCommand.cc:40: DNSCache.h: In member function ‘void aria2::DNSCache::CacheEntry::getAllGoodAddrs(OutputIterator) const‘: DNSCache.h:86: error: expected initializer before ‘:‘ token ...
This is because compiler is too old to support C++11 features aria2 requires. And configure check for C++11 feature is a bit weak. At the moment, gcc >= 4.8.3 or clang >= 3.4 compile aria2 fine. gcc 4.6 or 4.7 may also work. But less than that probably fails.
建议下载低版本的 aria2 (aria2-1.17.1), 然后编译安装。
# wget http://sourceforge.net/projects/aria2/files/stable/aria2-1.17.1/aria2-1.17.1.tar.gz # tar xf aria2-1.17.1.tar.gz -C /usr/local/src # cd /usr/local/src # cd aria2-1.17.1/ # ./configure # make && make install # 默认情况下,会在/usr/local/bin 目录创建 aria2c 可执行程序。 # aria2c -v aria2 version 1.17.1 Copyright (C) 2006, 2013 Tatsuhiro Tsujikawa
二、aria2 命令行基本使用
1、Download from WEB # aria2c -c -s 5 http://example.org/mylinux.iso -c : 断点续传 -s : 使用线程数 2、Download from 2 sources # aria2c http://a/f.iso ftp://b/f.iso 3、Download using 2 connections per host # aria2c -x2 http://a/f.iso 4、BitTorrent Magnet URI # aria2c ‘magnet:?xt=urn:btih:248D0A1CD08284299DE78D5C1ED359BB46717D8C‘ 5、Metalink # aria2c http://example.org/mylinux.metalink 6、Download URIs found in text file # aria2c -i uris.txt 7、BT # aria2c /tmp/CentOS-6.3-i386-bin-DVD1to2.torrent
三、aria2 配置示例
aria2 或者 aria2c 通常有两种模式:
第一种模式:
直接下载,比如 aria2c ‘http://host/file.tar.gz‘ 这种,然后当下载完成后,就自动退出了,就和wget 的工作方式一样。
第二种模式:
另一种就是 rpc server 模式,特点就是,它启动之后什么都不干,然后等着从rpc接口添加任务,下载完也不退出,而是一直等着。对,就像迅雷干的那样,当然,它不会上传你硬盘上的数据。
因为第一种方式要每次都敲命令,除非像我是原生*nix,没有命令行就没法用电脑,估计也没什么用,于是常用的就是第二种。一般启动命令是 # aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all -c -D 。但是,其实这个命令是不好的!不要使用这种启动方式。 默认情况下是没有保存设定的功能的,重启服务或服务器,配置都会丢失。
首先,用命令方式导致配置不方便修改保存,-D导致无法看到出错信息。推荐启动方式是使用配置文件 $HOME/.aria2/aria2.conf 或者 /etc/aria2.conf。嗯,我知道路由上这个地址是无法修改或者重启后会丢失的,那么你可以放到别的地方,然后 aria2c --conf-path=<PATH> -D 注意 <PATH> 填完整路径,因为鬼知道这个程序是从那个路径启动的。-D (用于后台执行,daemon 模式, 这样ssh断开连接后程序不会退出) 只有在确认OK之后在启动脚本中使用。
以下方案都基于配置文件方式
## 图形界面
aria2是没有图形界面的,已知相对好用的图形界面有:
YAAW
另一个web前端 webui-aria2
请使用 chrome,firefox 等现代浏览器访问。这两个东西都可以直接使用,除了看英文不爽以外,有什么必要下载回来使用。这两个东西上的配置在重启后都会失效! 使用配置文件保存您的设置
windows下有Aria2c Remote Control
iphone有Aria2 Download Manager
图形界面基本都基于RPC模式,所以一定确定开启了RPC,IP端口可访问,并且在管理器中填写了正确的地址。
##配置
http://aria2.sourceforge.net/manual/en/html/index.html
请将所有配置置于配置文件中
只有在确认配置无误后再加上 -D 选项
请阅读出错信息!
###RPC
需要1.14及以上版本
http://aria2.sourceforge.net/manual/en/html/aria2c.html#rpc-options
#允许rpc enable-rpc=true #允许所有来源, web界面跨域权限需要 rpc-allow-origin-all=true #允许非外部访问 rpc-listen-all=true #RPC端口, 仅当默认端口被占用时修改 #rpc-listen-port=6800
如果启动时出现 Initializing EpollEventPoll failed. 或相似错误, 在配置中加上 event-poll=select
使用token验证(建议使用,需要1.18.4以上版本,帐号密码方式将在后续版本中停用!)
# token验证 rpc-secret=secret
在YAAW中使用 http://token:secret@hostname:port/jsonrpc 的地址格式设置secret.
如果需要使用密码验证(需要1.15.2以上,1.18.6以下版本)
#用户名 rpc-user=username #密码 rpc-passwd=passwd
在YAAW中使用 http://username:passwd@hostname:port/jsonrpc 的地址格式设置密码.
对于RPC模式来说, 界面和后端是分离的, 只要给后端设置密码即可. 前端认证什么的是毫无意义的.
如果你比较新潮, 在YAAW中也可以用 ws:// 为前缀,只用websocket连接aria2c, 如果你不知道websocket是什么. 那就算了.
###速度相关
#最大同时下载数(任务数), 路由建议值: 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=*
###进度保存相关
aria2c只有在正常退出时(ctrl-c), 突然断电是无法保存进度的. 在第一次使用的时候会出现会话文件不存在的错误, 手动创建一个空文件即可. 如果您编写的是自动启动脚本, 在启动aria2前加上 touch aria2.session 这句命令.
input-file=/some/where/aria2.session save-session=/some/where/aria2.session #定时保存会话,需要1.16.1之后的release版 #save-session-interval=60
###磁盘相关
#文件保存路径, 默认为当前启动位置 dir=/some/where #文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本 #disk-cache=0 #另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?) #enable-mmap=true #文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长 #所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持 file-allocation=prealloc
###BT相关
http://aria2.sourceforge.net/manual/en/html/aria2c.html#bittorrent-specific-options
#启用本地节点查找 bt-enable-lpd=true #添加额外的tracker #bt-tracker=<URI>,… #单种子最大连接数 #bt-max-peers=55 #强制加密, 防迅雷必备 #bt-require-crypto=true #当下载的文件是一个种子(以.torrent结尾)时, 自动下载BT follow-torrent=true #BT监听端口, 当端口屏蔽时使用 #listen-port=6881-6999
aria2亦可以用于PT下载, 下载的关键在于伪装
#不确定是否需要,为保险起见,need more test enable-dht=false bt-enable-lpd=false enable-peer-exchange=false #修改特征 user-agent=uTorrent/2210(25130) peer-id-prefix=-UT2210- #修改做种设置, 允许做种 seed-ratio=0 #保存会话 force-save=true bt-hash-check-seed=true bt-seed-unverified=true bt-save-metadata=true #定时保存会话,需要1.16.1之后的某个release版本(比如1.16.2) #save-session-interval=60
配置实战 (注意:请留意aria2的软件版本,其配置参数不一定都适用,请自行调整)
## 第一步:编辑配置文件
# touch /data/aria2.session
# vim /etc/aria2.conf
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=10
#断点续传
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=10K
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
### ======
#文件下载保存路径,默认为当前启动aria2的目录
dir=/data/download
#Log
log=/data/aria2c.log
force-save=true
bt-hash-check-seed=true
bt-seed-unverified=true
bt-save-metadata=true
#定时保存会话,需要1.16.1之后的某个release版本(比如1.16.2)
input-file=/data/aria2.session
save-session=/data/aria2.session
#save-session-interval=60
### ======
#BT下载相关
#启用本地节点查找
bt-enable-lpd=true
#添加额外的tracker
#bt-tracker=<URI>,…
#单种子最大连接数
#bt-max-peers=55
#强制加密, 防迅雷必备
#bt-require-crypto=true
#当下载的文件是一个种子(以.torrent结尾)时, 自动下载BT,Default: true
follow-torrent=true
#BT监听端口, 当端口屏蔽时使用
#listen-port=6881-6999
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许非外部访问
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
## 第二步:启动服务
[root@skype ~]# aria2c --conf-path=/etc/aria2.conf -D
04/21 22:20:53 [WARN] Unknown option: max-overall-upload-limit=10K
04/21 22:20:53 [WARN] Unknown option: max-upload-limit=0
04/21 22:20:53 [WARN] Unknown option: bt-enable-lpd=true
04/21 22:20:53 [WARN] Unknown option: follow-torrent=true
### 报错,我们把 /etc/aria2.conf 中相应的参数 注释即可。
[root@skype ~]# aria2c --conf-path=/etc/aria2.conf -D
[root@skype ~]# ss -tulpn | grep aria2c
tcp LISTEN 0 1 :::6800 :::* users:(("aria2c",41664,7))
tcp LISTEN 0 1 *:6800 *:* users:(("aria2c",41664,6))网上copy的一个 aria2.conf 配置,大家可以参考:
mkdir -p /opt/var/log/aria2 mkdir -p /opt/etc/aria2 mkdir -p /tmp/mnt/disca_3/Downloads touch /opt/etc/aria2/aria2.conf vi /opt/etc/aria2/aria2.conf ###SWITCH TO INSERT MODE WITH ‘i‘ ###### daemon=true enable-rpc=true rpc-listen-port=6800 rpc-listen-all=true ####### your download folder, ensure that this folder exist! ########## dir=/tmp/mnt/disca_3/Downloads #where is your logfile located log=/opt/var/log/aria2/aria2.log log-level=warn dht-listen-port=6801 auto-save-interval=30 #seed ratio and seed time in minutes seed-ratio=1.0 seed-time=1460 max-upload-limit=20K event-poll=select ####end of file aria2.conf#### ### Enter ‘ESC‘ and ‘:wq‘ to store and leave vi ###
aria2c 的服务管理脚本:
touch /opt/etc/init.d/S85aria2
vi /opt/etc/init.d/S85aria2
###SWITCH TO INSERT MODE WITH ‘i‘ ######
# For Olegs & Ily‘s FW for Asus Routers
# store this script in /opt/etc/init.d if you‘ve installed optware
# Prgmname=/full_path/Prgmname
prgmname1="/opt/bin/aria2c"
shortname="aria2c"
#one option
options="--conf-path="
# configfile=/full_path/configfile
configfile="/opt/etc/aria2/aria2.conf"
start() {
# Code here to start the program
logger -t ARIA2C "Starting aria2c daemon "
${prgmname1} ${options}${configfile}
sleep 5
return 0
}
stop() {
# Code here to stop the program and check it‘s dead
if [ -n "`pidof $shortname`" ]; then
logger -t ARIA2C "Shutting down aria2c daemon "
/usr/bin/killall $shortname
sleep 5
fi
return 0
}
##########################start here##########################
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
logger -t ARIA2C "$shortname restart, executed from $(whoami)"
stop
sleep 2
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
sleep 1
exit
#### end of file S85aria2 ####
### Enter ‘ESC‘ and ‘:wq‘ to store and leave vi ###
chmod 755 /opt/etc/init.d/S85aria2
reboot四、aria2 web 前端控制界面
YAAW – Yet Another Aria2 Web Frontend
是一个纯前端实现的Aria2 Web前端界面。无需架设任何服务器,只需要在浏览器(chrome, firefox, 使用IE的同学嘛。。。)中打开即刻使用。
http://aria2.ghostry.cn/yaaw-master/
在扳手处填入path: http://<ip_of_your_route>:6800/jsonrpc,然后修改 JSON-RPC Path, 否则报错: Error: Internal server error
Aria2 webui
Aria 2 Web-UI 是一个在线图形界面(下载到本地也可以使用),完美支持 Aria 2 的各种功能,包括自定义客户端地址进行远程控制。要下载最新版本请访问 http://github.com/ziahamza/webui-aria2
或用你的浏览器(推荐Firefox, Chrome)直接访问 http://ziahamza.github.com/webui-aria2
http://ziahamza.github.io/webui-aria2/
我们可以直接访问在线的链接, 然后设置服务器地址即可。
Aria2 webui 部署到本地服务器:
1、首先部署 web 服务器,这里使用nginx
# 使用yum工具安装 gcc 编译器以及相关工具
[root@localhost ~]# yum -y install gcc gcc-c++ automake autoconf libtool make
# 使用yum工具安装模块依赖的库
# pcre, zlib, 前者为了支持重写rewrite, 后者为了支持gzip压缩
# ssl
[root@localhost ~]# yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
# 添加用户和组
# groupadd nginx
# useradd -g nginx -s /sbin/nologin nginx
# cd /usr/local/src
# wget http://nginx.org/download/nginx-1.7.9.tar.gz
# tar xf nginx-1.7.9.tar.gz
# cd nginx-1.7.9
# ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx/lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --user=nginx --group=nginx
# make && make install
# 注意iptables 与 SELinux , 这里我们关闭它
## For iptables
# service iptables stop
# chkconfig iptables off
## For SELinux
# setenforce 0
# getenforce
# sed -i ‘/SELINUX/s/enforcing/disabled/‘ /etc/selinux/config
## nginx 服务管理脚本
# vim /etc/init.d/nginx
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse # proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed ‘s/[^*]*--user=\([^ ]*\).*/\1/g‘ -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep ‘configure arguments:‘`
for opt in $options; do
if [ `echo $opt | grep ‘.*-temp-path‘` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
## 添加可执行权限
# chmod +x /etc/init.d/nginx
# 启动
[root@skype ~]# ss -tulpn | grep nginx
tcp LISTEN 0 128 *:80 *:* users:(("nginx",44232,6),("nginx",44234,6))2、下载官方的 aria2 webgui
# git clone https://github.com/ziahamza/webui-aria2.git
3、部署到nginx
# cp -r webui-aria2 /usr/local/nginx/html/
## 编辑 nginx.conf 配置文件
# vim /etc/nginx/nginx.conf
location /webui-aria2 {
root html;
index index.html index.htm;
}
## 重启nginx
# service nginx restart
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stopping nginx: [ OK ]
Starting nginx: [ OK ]4、访问
打开浏览器,在地址栏输入 http://your_ip/webui-aria2 即可访问
webui-aria2, 以及 yaaw 都有相应的中文汉化版。可以 查看这个网址: http://aria2.ghostry.cn/
yaaw:
https://github.com/ghostry/yaaw
上面几种方式都可以进行下载,但是需要提醒的是:
因为下载完成后文件是存在服务器上的,所以下载完成后需要通过ftp或ssh等其他方式才能取得文件。
五、ThunderLixianExporter
作用:
将迅雷离线地址导出成aria2/wget等下载命令,方便Linux/Mac用户使用
您需要拥有迅雷会员帐号才能使用此插件
原生导出界面整合, 原生设置界面整合
反文件名截断
多种可扩展的导出器(aria2/aria2-rpc/wget/IDM/Orbit)
云点播HTML5播放,导出
直接输出选中的链接,配合FlashGot/DownThemAll使用
接下来要改造chrome 浏览器。请访问 http://binux.github.com/ThunderLixianExporter/
按照网站的提示,将书签「ThunderLixianExporter」拖动到书签栏中。
然后我们去迅雷离线网站 lixian.xunlei.com,然后通过某个方式找一个迅雷账号,登录。在主界面下,点下刚才保存的书签,会在取回本地按钮边出现一个下拉菜单(先不要点哈)。
先点 右上角 的齿轮图标,进去后填如下地址,当然IP还是改成你的 aria2 服务器的 IP,其它不改
保存设置,然后找到一个文件,点取回本地的下拉“三角”, 选择 YAAW
然后打开刚才弄好的Aria WebUI,看看是不是有任务开始下载了?如果你没有成功,别着急,可能需要重新打开迅雷离线网站,点下那个书签,再下一次,应该没问题的。
##常见问题
###Internal server error
手动访问你的JSON-RPC地址 http://hostname:port/jsonrpc?jsoncallback=1 如果没有返回, 请确认aria2是否启动以及连通性. 如果aria2在路由器后或没有公网IP, 请做好端口映射.
###如何使用迅雷离线
http://binux.github.com/ThunderLixianExporter/
安装后, 在迅雷离线的右上角的设置中设置RPC地址.
提供chrome插件:https://chrome.google.com/webstore/detail/thunderlixianassistant/eehlmkfpnagoieibahhcghphdbjcdmen
###如何使用旋风离线(QQ离线)
http://userscripts.org/scripts/show/142624安装脚本后, 在旋风离线页面使用.
###如何安装aria2
我也不知道, 看你的box上有什么开源包管理器之类的东西, 有什么用什么. 如果没有, google之, 如果没有, 放弃吧.
本文出自 “Share your knowledge” 博客,请务必保留此出处http://skypegnu1.blog.51cto.com/8991766/1637168






