搭建Cloudreve私有云盘

前言

对于网盘来说现在最普及的就是百度云盘,不过很不喜欢百度盘的一点是:
分享一个文件给朋友,对方必须使用百度云客户端才可以下载,而且百度云对于资源会进行审核。

这个时候就希望一个网盘能实现:
1.发送给对方分享链接
2.对方点击链接,直接下载
(且下载速度不受限,文件内容不被监管)

这就需要搭建一个私有的个人网盘,并满足上述的需求。
于是Cloudreve诞生了。

私有网盘的优势是,所有文件都在自己的服务器上,更安全可靠,自由度更高。
那么搭建个人网盘的条件是什么?

  • 一点linux基础
  • 一台云主机

下面就为大家介绍cloudreve,并讲解如何搭建cloudreve服务。

Cloudreve介绍

Cloudreve是一个开源的网盘系统,它具有如下特性:

  • 网页端直接上传/下载。
  • 支持离线下载
  • 支持WebDAV协议
  • 多用户组,用户管理,支持用户注册
  • 视频,图片,音频,文本,office文档在线预览
  • 支持本机、从机、七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive作为存储端
  • 等等等…

cloudreve的主页

后台配置页面

更多了解可以访问它的github主页:
https://github.com/cloudreve/Cloudreve

支持WebDAV
除了上传分享文件外,笔者最常用的就是将cloudreve网盘挂载成一个网络驱动器。

首先为朋友的电脑挂上这个网络驱动器(因为cloudreve支持WebDAV)。
每次要分享文件的时候,只需要将文件拷贝进去。

对方就可以在他的电脑上打开这个盘,拿走文件。

搭建Cloudreve

搭建这样的一个网盘,肯定需要一台云服务器。
(其实就是一台配有公网ip的电脑主机)

笔者是在腾讯云租的lightroom轻量应用服务器
其它的如阿里云,华为云,国外的一些云服务器厂商也都ok。

这里我选用的是香港地区,CentOS8.0系统。
一个最便宜的资费套餐。

进入控制台,找到公网ip,并重置一下密码。

我使用的是MobaXterm这款软件进行ssh连接(贼好用)。
然后就开始命令行环节了。

准备cloudreve程序

从这里找到最新的版本:
https://github.com/cloudreve/Cloudreve/releases

我用的是CentOS,x86架构,所以这里选择amd64版本。

鼠标右键复制链接地址。

1
2
3
4
5
6
7
8
9
10
11
# 下载cloudreve主程序,wget后面是刚刚复制的地址
wget https://github.com/cloudreve/Cloudreve/releases/download/3.3.1/cloudreve_3.3.1_linux_amd64.tar.gz

# 解压
tar xvf cloudreve_3.3.1_linux_amd64.tar.gz

# 复制到指定位置
cp cloudreve /usr/bin/cloudreve

# 给予可执行权限
chmod 755 /usr/bin/cloudreve

安装配置mysql

默认情况下,Cloudreve会使用内置的SQLite数据库。笔者建议使用mysql。

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
26
# 安装mysql
yum install mysql-server

# 启动mysql
systemctl start mysqld.service

# 进入到mysql交互界面
mysql

# 设置root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

# 创建用户
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';

# 开启root远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

# 刷新设置
FLUSH PRIVILEGES;

# 退出交互界面
exit

# 重启mysql服务
systemctl restart mysqld.service

mysql默认运行在3306端口,我们需要将它配置给cloudreve。
新建一个文件:

1
vim /etc/cloudreve.conf

写入下面的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Database]
; 数据库类型,目前支持 sqlite | mysql
Type = mysql

; MySQL 端口
Port = 3306

; 用户名,根据自己情况修改
User = root

; 密码,根据自己情况修改
Password = "mysql的root密码"

; 数据库地址,根据自己情况修改
Host = 127.0.0.1

; 数据库名称,根据自己情况修改
Name = mysql

; 数据表前缀
TablePrefix = cd

进行测试

这个时候cloudreve服务就已经配置好了。
输入下面的命令启动它:

1
2
# 用刚刚创建的配置文件启动
cloudreve -c /etc/cloudreve.conf

可以看到终端里输出的信息,初始的账户和密码。

它运行在5212端口,打开浏览器,输入你的服务器”公网ip:5212”,回车。
输入刚刚显示的账户和密码就可以登陆了:

然后我们需要为它加上一个域名和https,还有aria2(用作离线下载)。

域名解析

我是在namecheap购买的域名和解析,
添加一条A记录输入你的公网ip即可。

配置ssl

网站没有一个小锁是不好看的

有了ssl证书,网站才会是https协议。
我使用的是acme来申请的证书。
首先从安装nginx开始:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装nginx
yum install nginx

# 安装acme的依赖
yum install openssl
yum install socat
yum install netcat

# 下载acme
curl https://get.acme.sh | sh

# 生成证书(在这一步前一定要完成域名解析)
cd .acme.sh/
./acme.sh --issue -d cloud.lingyunfx.com --standalone -k ec-256

这里可以看到终端输出的证书和密钥位置:
(记下来!)

配置nginx:

1
2
3
4
5
# 在此之前新建一个目录
mkdir -p /www/log/

# 新建一个配置文件
vim /etc/nginx/conf.d/default.conf

内容如下(有四个地方需要根据自己的情况进行替换)

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
server
{
listen 80;
listen 443 ssl http2;
server_name cloud.lingyunfx.com; # 这里替换自己的域名
if ($host != 'cloud.lingyunfx.com'){ # 这里替换自己的域名
return 403;
}
if ($server_port = 80 ) {
return 301 https://$host$request_uri;
}
index index.php index.html index.htm default.php default.htm default.html;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:5212;
client_max_body_size 4000m; # 这里限制了单个文件上传的大小
}
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /root/.acme.sh/cloud.lingyunfx.com_ecc/cloud.lingyunfx.com.cer; # 这里是你的证书地址
ssl_certificate_key /root/.acme.sh/cloud.lingyunfx.com_ecc/cloud.lingyunfx.com.key; # 这里是你的密钥路径
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;


#SSL-END

#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}

access_log /www/log/access.log;
error_log /www/log/error.log;
}

完成后启动nginx。

1
systemctl start nginx

再次启动cloudreve服务进行验证。

1
cloudreve -c /etc/cloudreve.conf

现在可以看到网站上有美丽的小锁了。

配置aria2

1
2
3
4
5
6
# 安装
yum install aria2

# 新建一个配置文件
mkdir /etc/aria2
vim /etc/aria2/aria2.conf

写入下面内容:

1
2
3
4
5
6
7
8
#是否启用RPC服务,请设置为true
enable-rpc=true

#RPC服务的端口,默认为6800
rpc-listen-port=6800

#设置PRC服务的密钥,在接下来的步骤中会用到
rpc-secret=my_password

里面rpc-secret后面是你对接aria2的密码,自己改一个。

然后建立并配置aria2服务。

1
vim /usr/lib/systemd/system/aria2.service

写入

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=aria2c

[Service]
User=root
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf
Restart=on-abort

[Install]
WantedBy=multi-user.target

重载daemon,启动服务。

1
2
3
systemctl daemon-reload
systemctl enable aria2
systemctl start aria2

最后需要cloudreve网页端配置aria2。
首先启动cloudreve程序。

1
cloudreve -c /etc/cloudreve.conf

登录后在网站右上角进入管理面板

进行如下设置。
可以参考官方的wiki:https://docs.cloudreve.org/use/aria2

到了这里离线下载的功能就配置好了。

配置cloudreve开机启动

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

写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=Cloudreve
Documentation=https://docs.cloudreve.org
After=network.target
Wants=network.target

[Service]
ExecStart=/usr/bin/cloudreve -c /etc/cloudreve.conf

Restart=on-abnormal
RestartSec=5s
KillMode=mixed

StandardOutput=null
StandardError=syslog

[Install]
WantedBy=multi-user.target

然后更新并启动服务

1
2
3
4
5
6
7
8
# 更新配置
systemctl daemon-reload

# 启动服务
systemctl start cloudreve

# 设置开机启动
systemctl enable cloudreve

到这里就完成了!

挂载网络驱动器

最后说一下怎么把网盘挂载成一个网络驱动器。

我用的是一个叫raidrive的软件进行辅助挂载。windows自身也可以直接进行挂载,
不过这个软件有本地缓存的帮助,访问会流畅很多。

下载地址:
https://www.raidrive.com/download

下载后双击安装,这里进行配置即可

账户密码在这个页面获取


这篇文章差不多就到这里,觉得还不错可以关注下这个公众号,thx!