买了云服务器只能拿来写博客?No No No!还可以搭建一个个人云盘,实现离线下载、BT下载,还要百度云、迅雷干什么呢(摊手)

先上图:

✨ Cloudreve 特性
  • ☁️ 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive (包括世纪互联版) 作为存储端
  • ? 上传/下载 支持客户端直传,支持下载限速
  • ? 可对接 Aria2 离线下载
  • ? 在线 压缩/解压缩、多文件打包下载
  • ? 覆盖全部存储策略的 WebDAV 协议支持
  • ⚡ 拖拽上传、目录上传、流式上传处理
  • ?️ 文件拖拽管理
  • ?‍?‍? 多用户、用户组
  • ? 创建文件、目录的分享链接,可设定自动过期
  • ?️‍?️ 视频、图像、音频、文本、Office 文档在线预览
  • ? 自定义配色、黑暗模式、PWA 应用、全站单页应用
  • ? All-In-One 打包,开箱即用
  • ? … …
✨ Aria2 特性
  • ☁️ 通过 HTTP(S)/FTP/SFTP/BitTorrent 下载文件
  • ? 多线程下载
  • ⚡ 轻量客户端
  • ? 远程控制(RPC)
  • ? … …

Cloudreve 体验网站:

Cloudreve Demo

Ps:本文在之前提到的服务器上搭建,即阿里云的 CentOS 7。

  1. 1. Aria2 的安装
  • 安装 epel 源:
yum install epel-release
  • 安装 Aria2:
yum install aria2
  • 配置aria2(使用 root 用户登录 SSH 进行操作):
# 创建 Aria2 配置文件
cd /etc/
mkdir aria2
cd aria2
touch aria2c.conf
touch aria2.session
# 创建文件的下载目录(/home/download)
cd /home
mkdir download
chmod 777 /download
  • 编辑 /etc/aria2/aria2.conf:
点击展开 Aria2 详细配置
## 文件保存相关 ##
 
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/home/download/
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=none
# 断点续传
continue=true
 
## 下载连接相关 ##
 
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=1
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=5
# 整体下载速度限制, 运行时可修改, 默认:0
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0
#max-overall-upload-limit=0
# 单个任务上传速度限制, 默认:0
#max-upload-limit=0
# 禁用IPv6, 默认:false
disable-ipv6=true
 
## 进度保存相关 ##
 
# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
#save-session-interval=60
 
## RPC相关设置 ##
 
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=<token>
 
## BT/PT下载相关 ##
 
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=514143
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
#enable-dht=true
# 打开IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
#bt-enable-lpd=false
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=false
# 每个种子限速, 对少种的PT很有用, 默认:50K
#bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
peer-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=1
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
  • 更改阿里云防火墙:

进入阿里云控制台 -> 安全 -> 防火墙 -> 添加规则,把配置文件中的 listen-portrpc-listen-portdht-listen-port 添加进去

  • 给 Apache 授予权限:
chown -R apache:apache /home/download
  • 启动 Aria2:
# -D 表示后台运行,首次运行建议去掉 -D 以查看错误信息(如端口冲突等)
aria2c --conf-path=/etc/aria2/aria2c.conf -D

若出现端口冲突,更改配置文件中的相应数据并重新配置阿里云的防火墙。

  • (可选)设置开机自启

创建文件:/usr/lib/systemd/system/aria2.service,输入内容:

[Unit]
Description= aria2
After=aria2.service
[Service]
#PIDFile=/run/aria2.pid
ExecStart=/usr/bin/
aria2c -c --conf-path=/etc/aria2/aria2c.conf 
[Install]
WantedBy=multi-user.target

然后依次执行:

systemctl daemon-reload
systemctl enable aria2.service
systemctl start aria2.service

最后,可以进入 Aria2webUI 或者 Ariang 等 webUI 界面,在设置中输入服务器IP(或域名)、端口、密钥进行链接测试。

若 BT 下载无速度,可在设置中添加 bt-tracker,参考每日更新的 top20 tracker :https://ngosang.github.io/trackerslist/trackers_best.txt

我的 bt-tracker 配置(tracker之间以逗号分隔)
bt-tracker=udp://tracker.opentrackr.org:1337/announce,udp://tracker.leechers-paradise.org:6969/announce,udp://9.rarbg.to:2710/announce,udp://9.rarbg.me:2710/announce,udp://p4p.arenabg.com:1337/announce,udp://exodus.desync.com:6969/announce,udp://tracker.cyberia.is:6969/announce,udp://open.stealth.si:80/announce,udp://tracker.tiny-vps.com:6969/announce,udp://retracker.lanta-net.ru:2710/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.moeking.me:6969/announce,udp://tracker3.itzmx.com:6961/announce,http://tracker1.itzmx.com:8080/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://bt2.archive.org:6969/announce,udp://bt1.archive.org:6969/announce,udp://zephir.monocul.us:6969/announce,udp://valakas.rollo.dnsabr.com:2710/announce,udp://tracker.zerobytes.xyz:1337/announce

2. Cloudreve 安装配置

# 进入工作目录
cd /hom/cloudreve
# 解压获取到的主程序
tar -zxvf cloudreve_VERSION_OS_ARCH.tar.gz
# 赋予执行权限
chmod +x ./cloudreve 
# 赋予 Apache 权限
chown -R apache:apache /home/cloudreve

Ps. 本文以解压到 /home/cloudreve 为例

  • 初次运行
cd /home/cloudreve
./cloudreve

Cloudreve 在首次启动时,会创建初始管理员账号,请注意保管管理员密码,此密码只会在首次启动时出现。如果您忘记初始管理员密码,需要删除同级目录下的 cloudreve.db ,重新启动主程序以初始化新的管理员账户。

Cloudreve 默认会监听 5212 端口。你可以在浏览器中访问 http://服务器IP:5212 进入 Cloudreve。

使用系统提供的账号密码即可登录测试。

  • Apache 配置(反向代理)

打开 /etc/httpd/conf/http.d,加入以下内容:

<VirtualHost *:80>
  ServerName cloud.kylechoy.top
  DocumentRoot "/home/cloudreve/"
  AllowEncodedSlashes NoDecode
  ProxyPass "/" "http://127.0.0.1:5212/" nocanon
</VirtualHost>

此时,进入 DNS 解析平台,参考配置如下:

  • (推荐)配置开机自启

创建配置文件:

vim /usr/lib/systemd/system/cloudreve.service

写入以下内容:

[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
Wants=network.target
[Service]
WorkingDirectory=/home/cloudreve
ExecStart=/home/cloudreve/cloudreve
Restart=on-abnormal
RestartSec=5s
KillMode=mixed
StandardOutput=null
StandardError=syslog
[Install]
WantedBy=multi-user.target

再依次执行:

# 更新配置
systemctl daemon-reload
# 启动服务
systemctl start cloudreve
# 设置开机启动
systemctl enable cloudreve
  • 重启 Apache 以应用配置:
systemctl restart httpd.service

此时,访问 cloud.kylechoy.top 即可看到网盘界面

3. 链接 Cloudreve 和 Aria2

使用管理员账号登录后,进入管理面板 -> 参数设置 -> 离线下载,填入 Aria2 的 RPC 地址、端口及密钥即可成功链接。

4. 题外话

在使用 Cloudreve 之前,我尝试过 ownCloud(功能丰富,有多平台客户端)、h5ai(轻量简洁),但是他们都不能与 Aria2 配合使用,只能当一个文件下载器,偶然间发现这个神奇的 Cloudreve,颜值与功能具备,配置也简单,墙裂推荐!


参考资料: