🎉 欢迎访问并使用我搭建的网盘: 👉 https://drive.oldplum.dev


搭建个人专属网盘

本文完整记录了我在 Azure 学生订阅上,从零开始搭建个人网盘的全过程。所有操作均基于真实环境,希望能为同样想拥有私有云存储的朋友提供一份可参考的实践指南。

一、为什么选择自建网盘?

商业网盘越来越难用——免费用户下载限速、文件被自动清理、分享链接动不动就失效。我想找一个完全由自己掌控的解决方案:数据存在自己的服务器上,不限速,不审查,想怎么用就怎么用。

最终我选择了 Cloudreve。它是一个开源的网盘系统,支持本地存储、OneDrive、阿里云OSS等多种存储后端,具备文件管理、分享、在线预览、WebDAV 等功能。简单说,就是自己搭的某度网盘,但比某度网盘好用太多

二、准备工作

搭建网盘需要一台服务器和一个域名。作为学生,我用了两个免费资源:

  • 服务器:通过 GitHub Student Developer Pack 激活的 Microsoft Azure 学生订阅,获得 $100 美元免费额度,无需绑定信用卡即可创建虚拟机。
  • 域名:在 Namecheap 等平台注册的域名(我注册的是 oldplum.dev),托管到 Cloudflare 进行 DNS 解析和 CDN 加速。

三、在 Azure 上创建虚拟机

  1. 登录 Azure 门户,进入 “虚拟机”“创建”
  2. 选择 Ubuntu 24.04 LTS 镜像,虚拟机规格选择 Standard_B2ats_v2(2核 vCPU,1GB 内存)——这个规格在 Azure 学生订阅中完全免费,每月有 750 小时的免费额度。
  3. 身份验证类型选择 SSH 公钥,Azure 会自动生成密钥对并下载 .pem 私钥文件——务必妥善保存,这是连接服务器的唯一凭证。
  4. “磁盘” 选项卡中,将 OS 磁盘大小改为 64 GiB,这是免费套餐允许的最大值。
  5. “网络” 选项卡中,放行 SSH (22) 端口,方便后续远程管理。
  6. 点击 “创建”,等待部署完成。

四、安装 Cloudreve

通过 SSH 连接到服务器(使用之前下载的 .pem 私钥),然后执行以下步骤。

1. 下载并解压 Cloudreve

从 Cloudreve 的 GitHub Releases 页面获取最新版本:

1
2
3
4
5
6
7
8
9
# 创建并进入 Cloudreve 目录
mkdir -p /home/azureuser/cloudreve && cd /home/azureuser/cloudreve

# 下载最新版(以 v3.8.3 为例,请替换为实际最新版本号)
wget https://github.com/cloudreve/Cloudreve/releases/download/3.8.3/cloudreve_3.8.3_linux_amd64.tar.gz

# 解压并赋予执行权限
tar -zxvf cloudreve_3.8.3_linux_amd64.tar.gz
chmod +x ./cloudreve

2. 首次启动并获取管理员密码

1
./cloudreve

首次启动时,终端会输出初始管理员账号和密码,格式类似:

1
2
[Info] 初始管理员账号:admin@cloudreve.org
[Info] 初始管理员密码:xxxxxxxx

务必记下这个密码,它只在首次启动时显示。按 Ctrl+C 停止进程。

3. 配置为系统服务(开机自启)

创建 systemd 服务文件,让 Cloudreve 在后台持续运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo tee /etc/systemd/system/cloudreve.service <<EOF
[Unit]
Description=Cloudreve
After=network.target

[Service]
Type=simple
User=azureuser
WorkingDirectory=/home/azureuser/cloudreve
ExecStart=/home/azureuser/cloudreve/cloudreve
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

启动并设置开机自启:

1
2
3
4
sudo systemctl daemon-reload
sudo systemctl start cloudreve
sudo systemctl enable cloudreve
sudo systemctl status cloudreve # 确认服务正常运行

此时,Cloudreve 默认监听 5212 端口,通过 http://服务器IP:5212 即可访问。

五、配置 Nginx 反向代理与域名

直接用 IP:5212 访问不够方便,也不够安全。通过 Nginx 反向代理可以将域名绑定到网盘,并配合 Cloudflare 实现 HTTPS 加密。

1. 安装 Nginx

1
2
sudo apt update
sudo apt install nginx -y

2. 创建 Nginx 站点配置

1
sudo nano /etc/nginx/sites-available/cloudreve

写入以下配置(将 drive.oldplum.dev 替换为你的实际域名):

1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
server_name drive.oldplum.dev; # 你的网盘域名

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; # 转发到 Cloudreve
}
}

启用配置并重载 Nginx:

1
2
3
sudo ln -s /etc/nginx/sites-available/cloudreve /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

3. 在 Cloudflare 绑定域名

  1. 登录 Cloudflare,将你的域名(如 oldplum.dev)添加到 Cloudflare。
  2. DNS 设置中,添加一条 A 记录
    • 名称drive(即子域名 drive.oldplum.dev
    • 内容:你的 Azure 虚拟机公网 IP
    • 代理状态:开启 橙色云(已代理)
  3. SSL/TLS 设置中,将加密模式设为 “灵活”(Flexible)——Cloudflare 与用户之间 HTTPS 加密,与源服务器之间 HTTP 通信。

等待 DNS 解析生效(通常几分钟),然后访问 https://drive.oldplum.dev,就能看到 Cloudreve 的登录页面了。

六、后续配置与优化

1. 修改站点 URL

登录 Cloudreve 后台,进入 管理面板 → 参数设置 → 站点信息,将 站点 URL 改为 https://drive.oldplum.dev。这样生成的文件分享链接、预览链接都会使用正确的域名。

2. 调整存储策略

管理面板 → 存储策略 中,可以配置上传文件的实际存储位置(默认在服务器本地),也可以挂载 OneDrive、阿里云 OSS 等第三方存储。

3. 开启 HTTPS 强制跳转

在 Cloudflare 的 SSL/TLS → 边缘证书 中,开启 “始终使用 HTTPS”,所有 HTTP 请求会自动跳转到 HTTPS。

七、效果与感受

搭建完成后,我拥有了一个完全属于自己的私有网盘

  • 不限速:下载速度只取决于服务器带宽和用户网络,没有商业网盘那种“几十 KB/s”的折磨。
  • 无审查:文件存在自己的服务器上,不会被平台“误判违规”而自动删除。
  • 功能完整:支持在线预览图片、视频、Office 文档,支持创建分享链接(可设密码和过期时间),还支持 WebDAV 协议,可以像本地文件夹一样挂载到电脑上使用。

最重要的是,Azure 学生订阅的 $100 额度完全覆盖了这台虚拟机的运行成本——虚拟机本身是免费的,只有公网 IP 产生少量费用(约 $0.12/天),$100 额度足够用很久。

如果你也想摆脱商业网盘的束缚,不妨动手试一试。整个过程大概需要一两个小时,但换来的是一个完全由自己掌控的云存储空间,这笔投资很值得。


致谢

特别感谢 mk dk 在搭建过程中提供的测试和帮助!🎉