搭建Aria2+AriaNg离线下载服务器

前言

为什么需要部署这种服务器?

由于国内较为保守的路由管理,导致个人用的宽带较难申请到公网IP,而下载种子文件是一个互相的行为,如果本地网络不开放,就会导致种子文件的下载只有下载并没有上传的共享行为。恰好我有一台闲置的服务器,就将其部署在上面,接下来我会用最简单快速的方法教你如何去部署这样一个服务器。

部署工作

该部署运行于以下环境 System: - Ubuntu 20.04.3 LTS Env: - Docker version 20.10.9 - Web反代框架(如Nginx)

安装Docker和Nginx

Docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

Nginx

wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && ./install.sh nginx

通过Docker安装Aria2

因为是快速部署,我们直接采用别人的做好的Aria2容器:Aria Pro

docker pull p3terx/aria2-pro #拉取容器 docker run -d \ --name aria2-pro \ --restart unless-stopped \ --log-opt max-size=1m \ --network host \ -e PUID=$UID \ -e PGID=$GID \ -e RPC_SECRET=<TOKEN> \ -e RPC_PORT=6800 \ -e LISTEN_PORT=6888 \ -v $PWD/aria2-config:/config \ -v $PWD/aria2-downloads:/downloads \ p3terx/aria2-pro

上述为参考的启动命令,只需替换您自己的

<TOKEN>
即可正常运行

具体参数参考https://p3terx.com/archives/docker-aria2-pro.html

AriaNg

通过Nginx创建vhost并运行(Recommended)

lnmp vhost add #创建vhost(域名以example.com代称) +-------------------------------------------+ | Manager for LNMP, Written by Licess | +-------------------------------------------+ | https://lnmp.org | +-------------------------------------------+ Please enter domain(example: www.lnmp.org): example.com Your domain: example.com Enter more domain name(example: lnmp.org *.lnmp.org): Please enter the directory for the domain: example.com Default directory: /home/wwwroot/example.com: Virtual Host Directory: /home/wwwroot/example.com Allow Rewrite rule? (y/n) n You choose rewrite: none Enable PHP Pathinfo? (y/n) n Disable pathinfo. Allow access log? (y/n) n Disable access log. Add SSL Certificate (y/n) y 1: Use your own SSL Certificate and Key 2: Use Let's Encrypt to create SSL Certificate and Key 3: Use BuyPass to create SSL Certificate and Key 4: Use ZeroSSL to create SSL Certificate and Key Enter 1, 2, 3 or 4: 2

通过Lnmp自带的功能创建vhost后去到网站目录安装AriaNg

cd /home/wwwroot/example.com wget https://github.com/mayswind/AriaNg/releases/download/1.2.3/AriaNg-1.2.3.zip unzip AriaNg-1.2.3.zip

此时即可通过

example.com
访问您的AriaNg网站

通过Docker安装并运行

此方法不需要配置Nginx

docker pull p3terx/ariang docker run -d \ --name ariang \ --restart unless-stopped \ --log-opt max-size=1m \ -p 80:6880 \ p3terx/ariang

此时即可通过

example.com
访问您的AriaNg网站

API RPC配置方法

http://example.com/#!/settings/rpc/set/${protocol}/${rpcHost}/${rpcPort}/${rpcInterface}/${secret}

如使用

example.com
为域名的AriaNg,连接协议使用
http
,主机域名为
example.com
,端口为
6800
,RPC路径使用
jsonrpc
,RPC密钥为
EXAMPLE
(RPC密钥应转换为base64编码以保证安全:base64转换)

http://example.com/#!/settings/rpc/set/http/example.com/6800/jsonrpc/RVhBTVBMRQ==

通过上述网址即可直接使用AriaNg管理Aria2而不用每次都输入密钥

SSL配置

Nginx反向代理端口

为保障安全,可以为服务器配置SSL协议,这里我仅介绍Nginx反向代理端口的方法

在前面我们通过Lnmp创建了带有SSL证书的vhost,现在我们对其配置文件进行相应的操作

vim /usr/local/nginx/conf/vhost/example.com.conf

对其添加如下配置

``` listen 443 ssl http2; ``` location /jsonrpc { proxy_redirect off; proxy_pass http://127.0.0.1:6800/jsonrpc; #配置为你Aria2的RPC即可 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ```

重启Nginx后即可通过

https://example.com/jsonrpc
访问您的Aria2

后记

本文章仅介绍最快速的搭建方案,不代表此方案是最优选择。

之后会出文章讲如何去进行文件目录的浏览