前言

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

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

部署工作

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

安装Docker和Nginx

Docker

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

Nginx

1
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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

1
2
3
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

1
2
3
4
5
6
7
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配置方法

1
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转换)

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

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

SSL配置

Nginx反向代理端口

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

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

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

对其添加如下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
```
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

结尾

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

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