搭建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

后记

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

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