搭建Aria2+AriaNg离线下载服务器
by CUNOE, December 28, 2021
前言
为什么需要部署这种服务器?
由于国内较为保守的路由管理,导致个人用的宽带较难申请到公网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
后记
本文章仅介绍最快速的搭建方案,不代表此方案是最优选择。
之后会出文章讲如何去进行文件目录的浏览