在带宽、硬盘、电费都相对低廉的现在,或许很多人都觉得离线下载基本丧失了意义:我大可以电脑24h开机,用任何下载工具慢慢拖回本地。但是对于我而言,还是需要一个可靠的离线下载平台的,在各种程序和平台中,我最后选定了这样的一个组合:aria2+AriaNg+Directory Lister。

我为何需要离线下载

关于我为何需要离线下载,我大概可以概括出下面2点:

  1. 需要随时随地下载文件。我可能在工作中、路途上发现了某个资源,而我不希望错过它,同时也不希望还需要“回家-打开电脑-重新找到那个资源”这样浪费时间。
  2. 减少自身电脑、网络的负担。24h挂机下载,尤其是迅雷,对于我的电脑、网络都是比较大的负担,既降低了电脑的性能,同时也影响了我的其他的网络应用,比如在线视频等。

而有了离线下载之后,我得到了这些益处:

  1. 资源下载速度大大提高。由于宽带运营商QOS限制、迅雷百度网盘的恶意限速(即便我都开了会员),所以尽管我目前使用的是200M电信光纤,但下载美剧等资源时速度依旧差强人意,而使用独服/VPS则几乎满速。
  2. 自己的下载速度大大提高。我可以直接通过http直连下载文件,跑满带宽,而且由于不再是P2P形式,只需要IDM这类轻便的下载工具,甚至直接浏览器下载即可,对于电脑的负担极小。
  3. 可以在线播放预览。对于100-200M大小的美剧比如生活大爆炸等,我可以直接在网页上播放,免去了下载。

为何选择aria2而非Transmission

其实我用过一段时间的Transmission,搭配https://github.com/ronggang/transmission-web-control之后也有很好的体验,但是aria2更轻量级,同时各种WebUI也更为丰富。不过aria2不支持eMule下载是让我比较在意的。
FireShot Screen Capture #022 - 'aria2' - aria2_github_io.png


在ubuntu下部署aria2

这里我提供两种安装方法,一种是自己编译,一种则是直接通过apt-get:
第一种,自己编译:
下载tar.bz2包:https://sourceforge.net/projects/aria2/files/stable/aria2-1.19.0/aria2-1.19.0.tar.bz2/download

tar xf aria2-1.19.0.tar.bz2
cd /aria2-1.19.0
./configure
make
make install

至此编译安装完成,aria2c -v即可查看版本。

第二种是apt-get,需要注意的是,如果你直接apt-get,那么安装的就是1.18系列的版本,此版本是不支持rpc-secret特性的,所以我们需要修改包管理器源:

mv /etc/apt/sources.list /etc/apt/sources.list.bak && wget --no-check-certificate -P /etc/apt "https://softs.pw/Bash/sources/us.sources_stretch.list" && mv /etc/apt/us.sources_stretch.list /etc/apt/sources.list

安装Aria2 等软件:

apt-get update && apt-get install aria2 curl unzip vim -y

还原备份的 包管理器源,注意下次再安装软件的时候,请先运行 apt-get update ,否则包列表还是前面测试版源!

rm -rf /etc/apt/sources.list && mv /etc/apt/sources.list.bak /etc/apt/sources.list

至此安装完成,aria2c -v即可查看版本。
然后自己找一个或者创建一个目录(我是放在下载目录里,/data/wwwroot/download):

mkdir /data/wwwroot/download    #新建文件夹
touch /data/wwwroot/download/aria2.session    #新建session(下载任务记录)文件
chmod 777 /data/wwwroot/download/aria2.session    #设置aria2.session可写
vi /data/wwwroot/download/aria2.conf    #创建配置文件

关于aria2.conf,我推荐使用http://aria2c.com/usage.html的预设,再根据自己需要修改。我修改了下面这些:

dir=/data/wwwroot/download    #下载目录
max-concurrent-downloads=3    #最多同时下载3个任务
input-file=/data/wwwroot/download/aria2.session    #从会话文件中读取下载任务
save-session=/etc/aria2/aria2.session    #在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session-interval=60    #定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
enable-rpc=true    #启用RPC,这样就能通过WebUI进行下载管理
rpc-allow-origin-all=true    #允许所有来源
rpc-listen-all=true    #允许非外部访问, 默认:false
rpc-secret=<TOKEN>    #设置密码

至此,aria2安装完成,尝试启动:

aria2c --conf-path=/data/wwwroot/download/aria2.conf

如果没有提示错误,按ctrl+c停止运行命令,转为后台运行:

aria2c --conf-path=/data/wwwroot/download/aria2.conf -D

添加开机启动:

vi /etc/init.d/aria2c    #把Aria2做成服务

粘贴以下代码:

#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
 
case "$1" in
start)
 
 echo -n "已开启Aria2c"
 sudo -u root aria2c --conf-path=/data/wwwroot/download/aria2.conf -D
 #sudo -u后面的是你正在使用的用户名
;;
stop)
 
 echo -n "已关闭Aria2c"
 killall aria2c
;;
restart)
 
 killall aria2c
 sudo -u root aria2c --conf-path=/data/wwwroot/download/aria2.conf -D
 #同上面的一样,根据自己的用户改-u后面的用户名
;;
esac
exit

保存文件把权限给为755:

chmod 755 /etc/init.d/aria2c

测试Aria2服务是否可以正常启动:

service aria2c start

如果只显示“开启Aria2c”,没有其他错误提示的话就说明成功了。添加Aria2c服务到开机启动:

update-rc.d aria2c defaults

Aria2c服务命令使用说明:

service aria2c start //启动Aria2c
service aria2c restart //重启Aria2c
service aria2c stop /关闭Aria2c


配置AriaNg

AriaNg:https://github.com/mayswind/AriaNg

AriaNg 使用纯 html & javascript 开发, 所以既不需要编译也不依赖于任何运行环境,
您只需要打开您的游览器就可以使用. 通过借助响应式布局设计, 您可以在任何计算机或移动设备上使用.

因此只需下载最新Release:https://github.com/mayswind/AriaNg/releases,上传到网站目录下即可。
AriaNg 0.1.0 beta4分流下载:https://dl.yorkchou.com/php/aria-ng-0.1.0-b4.zip

接着打开部署好的AriaNg,在“AriaNg设置”中,输入自己的服务器/VPS地址和端口(默认6800),以及刚刚在aria2.conf中设置的密码。
aria2-2.png


下载目录程序的选择

首先可以参考老左的这篇内容:http://www.laozuo.org/6300.html
在Directory Lister、Encode Explorer、h5ai中,我最后选择了Directory Lister,因为它界面更清爽,配置更简单。
aira2-3.png
不过官方原版中,因为使用了google的一些css/js,导致大陆访问时会一直处于加载中,因此我这里推荐一个修改版,使用的是360的网站卫士常用前端公共库CDN服务,修改来自于http://list.downsoft.cn/
下载:http://list.downsoft.cn/PHP%E4%BB%A3%E7%A0%81/DirectoryLister.v2.6.1.tar.gz
分流下载:https://dl.yorkchou.com/php/DirectoryLister.v2.6.1.tar.gz
将所有文件原样上传至下载目录(/data/wwwroot/download),然后访问,就能显示出你所有用aria2下载的文件。
而对于目前的不论是电脑端还是手机端的浏览器,都支持MP4等格式的直接播放,因此你只需要直接点击打开即可开始在线播放了。

提一下Encode Explorer

之所以提一下Encode Explorer,是因为它支持设置密码访问,这样一来能保护你的下载隐私,或许比起Directory Lister,它更符合你的要求。不过实际上,如果你的环境是nginx的话,也可以轻松的设置用户名和密码来限制访问,这里就不赘述了,搜索“nginx 密码”就有很多教程。

Last modification:July 10, 2019
If you think my article is useful to you, please feel free to appreciate