在带宽、硬盘、电费都相对低廉的现在,或许很多人都觉得离线下载基本丧失了意义:我大可以电脑24h开机,用任何下载工具慢慢拖回本地。但是对于我而言,还是需要一个可靠的离线下载平台的,在各种程序和平台中,我最后选定了这样的一个组合:aria2+AriaNg+Directory Lister。
我为何需要离线下载
关于我为何需要离线下载,我大概可以概括出下面2点:
- 需要随时随地下载文件。我可能在工作中、路途上发现了某个资源,而我不希望错过它,同时也不希望还需要“回家-打开电脑-重新找到那个资源”这样浪费时间。
- 减少自身电脑、网络的负担。24h挂机下载,尤其是迅雷,对于我的电脑、网络都是比较大的负担,既降低了电脑的性能,同时也影响了我的其他的网络应用,比如在线视频等。
而有了离线下载之后,我得到了这些益处:
- 资源下载速度大大提高。由于宽带运营商QOS限制、迅雷百度网盘的恶意限速(即便我都开了会员),所以尽管我目前使用的是200M电信光纤,但下载美剧等资源时速度依旧差强人意,而使用独服/VPS则几乎满速。
- 自己的下载速度大大提高。我可以直接通过http直连下载文件,跑满带宽,而且由于不再是P2P形式,只需要IDM这类轻便的下载工具,甚至直接浏览器下载即可,对于电脑的负担极小。
- 可以在线播放预览。对于100-200M大小的美剧比如生活大爆炸等,我可以直接在网页上播放,免去了下载。
为何选择aria2而非Transmission
其实我用过一段时间的Transmission,搭配https://github.com/ronggang/transmission-web-control之后也有很好的体验,但是aria2更轻量级,同时各种WebUI也更为丰富。不过aria2不支持eMule下载是让我比较在意的。
在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中设置的密码。
下载目录程序的选择
首先可以参考老左的这篇内容:http://www.laozuo.org/6300.html
在Directory Lister、Encode Explorer、h5ai中,我最后选择了Directory Lister,因为它界面更清爽,配置更简单。
不过官方原版中,因为使用了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 密码”就有很多教程。
23 comments
[...]http://aria.hislife.inPowered by AriaNGRelated:「aria2+AriaNg 打造自己的离线下载/云播平台」通过AriaNG,连接任意对外开放的Aria2下载服务。响应式布局支持移动端显示,不记录任何个人信息。目前托管于美国「Krypt」机房,大陆地区访问速度优异。[...]
[...]关于如何使用aria2+AriaNg打造自己的离线下载平台,这里不再赘述,传送门其实通过AriaNg已经可以实现跨平台离线下载,只要有一个浏览器,无论PC/MAC/手机等终端,都可以实现。而云播放的解决方案,当时我是借助了目录列表程序,直接显示了下载文件夹的内容,然后通过浏览器直接播放,这样的不便之处在于,目录列表程序大多UI比较简陋(H5AI除外),无法直观显示视频的预览,同时一些格式如MKV等[...]
[...]关于如何使用aria2+AriaNg打造自己的离线下载平台,这里不再赘述,传送门[...]
[...]关于如何使用aria2+AriaNg打造自己的离线下载平台,这里不再赘述,传送门[...]
[...]关于如何使用aria2+AriaNg打造自己的离线下载平台,这里不再赘述,传送门其实通过AriaNg已经可以实现跨平台离线下载,只要有一个浏览器,无论PC/MAC/手机等终端,都可以实现。而云播放的解决方案,当时我是借助了目录列表程序,直接显示了下载文件夹的内容,然后通过浏览器直接播放,这样的不便之处在于,目录列表程序大多UI比较简陋(H5AI除外),无法直观显示视频的预览,同时一些格式如MKV等[...]
[...]http://aria.hislife.inPowered by AriaNGRelated:「aria2+AriaNg 打造自己的离线下载/云播平台」通过AriaNG,连接任意对外开放的Aria2下载服务。响应式布局支持移动端显示,不记录任何个人信息。目前托管于美国「Krypt」机房,大陆地区访问速度优异。[...]
[...]http://aria.hislife.inPowered by AriaNGRelated:「aria2+AriaNg 打造自己的离线下载/云播平台」通过AriaNG,连接任意对外开放的Aria2下载服务。响应式布局支持移动端显示,不记录任何个人信息。目前托管于美国「Krypt」机房,大陆地区访问速度优异。[...]
[...]http://aria.hislife.inPowered by AriaNGRelated:「aria2+AriaNg 打造自己的离线下载/云播平台」通过AriaNG,连接任意对外开放的Aria2下载服务。响应式布局支持移动端显示,不记录任何个人信息。目前托管于美国「Krypt」机房,大陆地区访问速度优异。[...]
[...]https://yorkchou.com/aria2.html[...]
Directory Lister、Encode Explorer 略简些,个人推荐h5ai,其实还有更好的可用哦。
他用http协议,这样的话会不会泄露密码。。。。。。。
AriaNG似乎已经支持https协议了~
请问一下,有没有这套方案的Docker镜像?
抱歉暂时没有哦,其实核心就是aria2c的部署,你或许可以找一下有没有人提供,至于AriaNG和目录程序其实都只是上传个文件夹的功夫
好吧,想偷懒,嘿嘿。博客很漂亮!
(。・∀・)ノ゙嗨,我看到有人出了类似的方案,v2ex.com/t/383801
我也看见了,正在研究,嘿嘿。
感谢!~!~(。・∀・)ノ゙
博主,请问有使用Transmission作为离线下载的教程(心得)吗?
你好,Transmission没什么花头吧,基本就都搭配transmission-web-control作为Web界面使用,我推荐一个帖子:laozuo.org/9020.html,你可以看一下。
好的,我去学习一下o(^▽^)o
评论如果无法回复的话,试试按照关掉这个选项:设置->评论->开启反垃圾保护和设置->评论->检查评论来源页 URL选项
(具体:https://handsome.ihewro.com/#/comment)
我是来测试回复功能的。