由于商业网盘的容量及限速等问题,使得在一些使用场景下实在一言难尽。个人云盘能够方便存储个人文档,特别是没有上传下载速度限制,可以灵活扩展容量,具有更好的私密性。当具有远程服务器(如 VPS)时,可以使用 FileBrowser 搭建个人云盘。结合 Nginx 实现个性化网页快速访问。下面分别介绍如何在远程服务器上安装 Nginx, filebrowser, 以及他们的配置。本篇以 Debian 11 为例,Ubuntu 系统类似, CentOS 系统需要切换相应命令,但一般是将 apt 更改为 yum

安装 Nginx

sudo apt update
sudo apt install nginx

安装 FileBrowser

curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash

配置 FileBrowser

# 创建配置数据库
filebrowser -d .filebrowser.db config init
# 设置监听地址 例如设置为: 127.0.0.1
filebrowser -d .filebrowser.db config set --address 127.0.0.1
# 设置监听端口,并需要打开端口 例如设置为: 8080
filebrowser -d .filebrowser.db config set --port 8080
# 修改显示语言 (中文)
filebrowser -d .filebrowser.db config set --locale zh-cn
# 设置日志文件
filebrowser -d .filebrowser.db config set --log /usr/local/filebrowser.log

# 设置登录用户和密码,--perm.admin 表示设置为管理员
filebrowser -d .filebrowser.db users add $USER$ $PASSWD$ --perm.admin
# 设置网址根路径
filebrowser -d .filebrowser.db config set --baseurl $FB_PATH$

# 查看配置信息
filebrowser -d .filebrowser.db config cat
# 帮助信息
filebrowser -d .filebrowser.db config --help

其中根据自己的个人信息设定,在用户和密码处替换 $USER$$PASSWD$ 字眼。根据自己的实际需求替换网址的根路径,例如,$FB_PATH$ 替换成 /filebrowser (下文以此为例)。之后需要设置服务器自启动命令

# 创建一个网盘根文件夹
mkdir -p /home/$USER/filebrowser

# 创建一个系统服务
sudo nano /etc/systemd/system/filebrowser.service

# 添加下面代码
[Unit]
Description=filebrowser daemon
After=network.target

[Service]
Type=simple
ExecStart=filebrowser -d /home/$USER/.filebrowser.db
User=$USER
Group=$USER
WorkingDirectory=/home/$USER/filebrowser/
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

指令中的网盘根文件夹、数据库 filebrowser.db 的地址根据自己实际情况而定。

# 加载 service
sudo systemctl daemon-reload
# 查看状态
sudo systemctl status filebrowser.service
# 启动 filebrowser
sudo systemctl start filebrowser.service
# 关闭 filebrowser
sudo systemctl stop filebrowser.service
# 设置开机自启
sudo systemctl enable filebrowser.service
# 查看是否设置开机自启成功
sudo systemctl list-unit-files| grep filebrowser
# 如果对service文件进行修改再次启动,请运行如下命令,重载服务
sudo systemctl daemon-reload
# c重启 filebrowser
sudo systemctl restart filebrowser.service

此时已经可以访问网页: http://vps_ip:8080 即可进入网盘界面登入用户信息查看目录 /home/$USER/files/ 下的文件。

配置 Nginx

sudo nano /etc/nginx/nginx.conf

# 在 server 下添加如下内容
location /filebrowser {
    client_max_body_size 2048m; # 2048m 标识上传最大文件大小 2G,单位 m 为兆字节
    proxy_read_timeout   86400s;
    proxy_send_timeout   86400s;
    proxy_set_header     X-Forwarded-Host $host;
    proxy_set_header     X-Forwarded-Server $host;
    proxy_set_header     X-Real-IP $remote_addr;
    proxy_set_header     Host $host;
    proxy_set_header     X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version   1.1;
    proxy_redirect       off;
    proxy_set_header     Upgrade $http_upgrade;
    proxy_set_header     Connection "upgrade";
    proxy_pass           http://127.0.0.1:8080;
}
# 注意这里的 /filebrowser 需要同配置 filebrowser baseurl 一致

如果申请了域名,可以如下设置

server {
    listen       443;
    server_name  www.xxx.com;
    root /home/xxx/html;
    index index.php index.html index.htm;
}
# 其中 www.xxx.com 是域名,/home/xxx/html 是静态网页文件放置目录
# 注意,请打开 80、443 端口

设置 nginx 服务

sudo systemctl restart nginx
sudo systemctl status nginx

之后,就可以访问网址:https://www.xxx.com/filebrowser 打开个人云盘了。注意,进入后设置强密码。




Reference 1