🎉 欢迎访问并使用我搭建的网盘: 👉 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 在搭建过程中提供的测试和帮助!🎉