发布于 

为Cloudreve添加离线下载节点

前言

在配置Cloudreve期间,发现VPS仅有的60G空间对于离线下载远远不够,因此决定将内网的一台机器作为Cloudreve的离线下载节点。

思路

在子节点上运行Cloudreve和Aria2,并通过frp将子节点服务暴露给公网,最后通过Cloudreve自带的功能进行子节点离线下载

Cloudreve 支持“从机离线下载”,您可以将离线下载任务分流至多台服务器处理,避免这些任务过多占用主机的资源。每个负责处理离线下载任务的节点需要运行一组 Cloudreve 和 Aria2 实例。您可以按照管理面板中的节点添加向导指引配置并添加新节点。

Requirements

  • 1 * 拥有公网ip的机器
  • 1 * 无公网ip的机器
  • frp软件
  • Cloudreve

准备步骤

内网机

安装Cloudreve

参见安装配置Cloudreve

安装frp

参见frp内网穿透教程

安装aria2

1
2
3
4
apt install aria2
# 创建aria2配置文件
mkdir -p /etc/aria2
nano /etc/aria2/aria2.conf

/etc/aria2/aria2.conf中添加

1
2
3
4
5
6
# 启用 RPC 服务
enable-rpc=true
# RPC 监听端口
rpc-listen-port=6800
# RPC 授权令牌,可自行设定
rpc-secret=<your token>

创建aria2用户

1
useradd aria2

编辑/etc/systemd/system/aria2c.service

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description= Aria2c Service
After=network.target

[Service]
Type=simple
User=aria2
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf

[Install]
WantedBy=multi-user.target

创建离线下载临时文件夹,并设置权限防止报错

1
2
3
4
mkdir /offline_download
# 将所有者改为aria2用户并设置权限
chown -R aria2 /offline_download
chmod -R 777 /offline_download

配置frp

/etc/frp/frpc.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[common]
server_addr = 公网机ip
server_port = 7000

[https2http]
type = https
custom_domains = 访问内网服务用的域名

plugin = https2http
plugin_local_addr = 127.0.0.1:5212

# HTTPS 证书相关的配置
plugin_crt_path = 域名证书crt文件路径
plugin_key_path = 域名证书key文件路径
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

注:这里我公网机Cloudreve使用了https,则暴露内网机服务时必须也使用https

公网机

安装frp、Cloudreve略

配置frp

在服务端frp配置中添加用于访问内网Cloudreve的HTTPS端口

/etc/frp/frps.ini

1
2
3
[common]
bind_port = 7000
vhost_https_port = 访问用端口

配置Cloudreve

现在可以通过https://[公网机ip]:端口访问内网的Cloudreve了

打开公网机上的Cloudreve,点击管理面板离线下载节点接入新节点,打开添加新节点界面,复制生成的从机密钥

在内网机上Cloudreve配置文件中添加:

1
2
[Slave]
Secret = 从机密钥

并修改Mode字段的值为slave,重启Cloudreve

在管理面板从机地址中填入https://[公网机ip]:端口,并测试是否正常

下一步启用,在RPC授权令牌中填入aria2c.conf中的rpc-secret

RPC服务地址http://127.0.0.1:6800/

绝对路径填离线下载文件夹在内网机上的位置,如/offline_download

完成后测试aria2通信,检查是否正常

点击下一步设置节点名字,自此,离线下载节点添加完成