Aria2+AriaNg打造24小时下载服务器
条评论前言
老司机不知道多久没下过片了,大概有好几年了,有人发了张车牌照,看上去很养眼……
那咱得去仔细研究下,发现下载速度堪忧,照这速度也不知道猴年马月能下载完。想想自己常年养着几个外网 VPS,也大都处于资源闲置状态,不如就此整个下载服务器。
系统方案
不知道哪年整过 aria 下载,那自然是按熟悉的套路来:AriaNg 作为前端管理下载任务,aria2 作为后端下载。经过筛选,看到 P3TERX 大神整了个 Aria2 Docker,功能够强大,完全能满足需求。
graph LR; AriaNg --> aria2 --files--> download_to_local & remote_player; Browser --bt/http/ftp...--> AriaNg;
实施
安装 Aria2-Pro-Docker
没必要写重复的教程,直接看 P3TERX 大神的教程,总的来说这个 Docker 使用 Aria2 完美配置方案,功能比较完善,镜像特点:
- BT 下载率高、速度快
- 重启后不丢失任务进度、不重复下载
- 删除正在下载的任务自动删除未完成的文件
- 下载错误自动删除未完成的文件
- 下载完成自动删除控制文件(.aria2后缀名文件)
- 下载完成自动删除种子文件(.torrent后缀名文件)
- 下载完成自动删除空目录
- BT 下载完成自动清除垃圾文件(文件类型过滤功能)
- BT 下载完成自动清除小文件(文件大小过滤功能)
- 有一定的防版权投诉、防迅雷吸血效果
- 更好的 PT 下载支持
部署 AriaNg
有人把这个也放 Docker 里,但站长觉着完全没必要,AriaNg就是个前端静态页,如果用宝塔之类的部署个网站就更简单快捷,也不用多一次反代处理,还能让宝塔自动申请证书。
同样的,不写重复的教程,可参考:P3TERX 大神的教程
科普: AriaNg 只是一个静态网页,只负责发送指令给 Aria2 服务端,所填写的
RPC
地址和RPC 密钥
等设置数据只会储存在本地浏览器中,不管是在本地直接打开使用还是访问在线网页使用都只是本地浏览器到远端 Aria2 服务的RPC
协议通讯。所以部署到 Web 服务器不是必要操作,对页面设置密码更是徒劳。
以上两个弄完,随便传个种子就可以体验公网 IP 下载速度了,如果不做限速,服务器带宽能跑满,这个24小时挂机的下载服务器你值得拥有!
常见问题
关于前面的安装部署,网上教程多如牛毛,但往往自己去实施的时候就遇到各种磕磕碰碰,这才是本文章要记录的重点。
提示错误:认证失败
这一定是 Aria2 RPC 密钥
错误了,在 AriaNg 页面上打开:AriaNg 设置 --》RPC……
,填上正确的认证密钥,就是 Aria2 Docker
启动时 RPC_SECRET=
设置的值,建议不要有空格。
errorCode=1 Failed to bind a socket, cause: Name or service not known
有以下两种可能会导致:
- Docker 端口未做外部映射:做端口映射,同时防火墙将端口放行
- 启用了https,但https不可用状态:配置https证书,见下文配置方法
https访问时aria2未连接
当使用 https
协议访问前端 AriaNg 时,Aria2 RPC 连接协议
会被强制为 Https
或 WebSocket(安全)
,此时我们需要配置 Aria2 启用安全协议及证书,编辑 Aria2 配置文件 aria2.con
:
1 | # RPC 服务 SSL/TLS 加密, 默认:false |
保存配置重启 Docker,就能愉快地使用 Https
或 WebSocket(安全)
协议连通 Aria2 了。
以上涉及的文件路径:
aria2.con
:在 Docker 启动时/config
映射的对应路径里,不知道的话可以用find / -name aria2.conf
搜索rpc-certificate
:以宝塔自动申请的证书位置为例,在/www/server/panel/vhost/cert/
下以域名目录存放,默认认证文件为fullchain.pem
rpc-private-key
:同上,另一个privkey.pem
即为私钥文件
证书配置好了,仍然报错:无法连接到 Aria2
是不是域名启用了CDN?
如前文 AriaNg 科普所言:
不管是在本地直接打开使用还是访问在线网页使用都只是本地浏览器到远端 Aria2 服务的
RPC
协议通讯
也就是说是关系到通讯端口的,启用CDN后访问端口 443
,默认是不能转发到 AriaNg 需要使用的 https://xxx:6800/jsonrpc
这个端口,所以需要额外做一个反代,如前文配置中的注释提示:
1 | # 不推荐开启,建议使用 web server 反向代理,比如 Nginx、Caddy ,灵活性更强。 |
站长一开始就没有接受 Aria2 的建议,把 cloudflare 的云朵代理关了,因为就自己用,想用 CDN 的有两条路径:
- 将RPC通讯端口改成 CDN 支持的端口,如 cloudflare 的
8443
,具体可以参考:Network ports compatible with Cloudflares proxy - 再搞个单独的域名用于 RPC 通讯地址,然后该域名再反代到 RPC 的
6800
端口
文件自动归档/分类
所谓归档,就是将下载完成的任务文件移动到一个单独的文件夹去,默认是在下载文件夹下的 completed
目录,如果需要移动到其他目录,那么需要给 Docker 做相应路径映射:
1 | -v /data/downloads:/downloads \ # 下载中 |
同时,修改 script.conf
:
1 | ## 文件移动设置(move.sh) ## |
以上,每次下载完成的任务就会自动被移动到 /data/completed
这个目录,但由于 Docker 的限制,此移动并不是真正的移动,而是复制后删除,也就意味着磁盘会被重复全量写一遍,虽然死道友不死贫道,但貌似也没必要。
参考链接
本文标题:Aria2+AriaNg打造24小时下载服务器
文章作者:凹凸曼
发布时间:2023-12-26
最后更新:2024-05-05
原始链接:https://sobaigu.com/aria2-with-ariang-downlowd-server.html
版权声明:转载请务必保留本文链接和注明内容来源,并自负版权等法律责任。