家庭服务器零成本扩容:用 123 云盘 WebDAV 挂载为本地影音库

记录我这一路折腾存储空间的路程。

痛点起源 我的家庭服务器是一台零刻迷你主机,刷了 Ubuntu Server 24.04,上面用 Docker 跑着 Jellyfin、qBittorrent 等各种自托管服务。自带的 1TB SSD 放个学习和工作数据还算宽裕,但面对动辄数十 GB 一部的高清影视资源,空间瞬间捉襟见肘。用昂贵的 SSD 存放冷数据影音库无疑是巨大浪费,而添加一块外置硬盘又要破坏迷你主机的紧凑美感,还徒增功耗和线缆。

出路:网盘挂载 云盘是个理想的容量蓄水池,前提是要解决两个致命问题:

  1. 必须支持标准协议,不能靠逆向接口等灰色手段。
  2. 必须能被 Linux 服务器无缝 mount 为本地路径,让 Docker 容器直接读写。

经过排查,国内多数个人网盘早已封闭 WebDAV。最终我盯上了 123 云盘:开通会员后,官方明确提供了 WebDAV 访问,协议稳定、不限速,正是合规的正解。于是,有了这套 rclone + 123 云盘 WebDAV 的轻量方案。

软件清单

  • 操作系统:Ubuntu Server 24.04(无桌面)
  • 挂载核心:rclone (v1.60+)
  • 网盘:123 云盘 VIP(提供 WebDAV 地址、用户名、独立密码)
  • 服务管理:systemd
  • 媒体服务:Jellyfin、qBittorrent(均为 Docker 部署)

实操:从配置到永久挂载

1. 安装 rclone

curl https://rclone.org/install.sh | sudo bash
rclone version   # 确认版本 ≥1.60

2. 添加 WebDAV 远程

rclone config
# n → 名称:123pan
# 类型:webdav
# 输入123云盘提供的 WebDAV URL,如 https://webdav.123pan.cn/webdav
# Vendor 选 other
# 用户名:你的手机号或账号
# 密码:WebDAV 专用密码(不是登录密码)
# 其余选项一路回车默认,最后保存。

测试连通性:

rclone ls 123pan:/

3. 本地挂载点准备

sudo mkdir -p /mnt/123pan
sudo chown $USER:$USER /mnt/123pan   # 关键:不能跳过

4. 手动挂载测试

先确保 fuse3 已安装(sudo apt install fuse3)。

rclone mount 123pan:/ /mnt/123pan \
  --vfs-cache-mode writes \
  --vfs-cache-max-size 2G \
  --cache-dir /tmp/rclone-cache \
  --allow-other

如果没有报错,ls /mnt/123pan 能看到云盘文件,按 Ctrl+C 终止,说明一切正常。

5. 配置 systemd 开机自启

创建服务文件 /etc/systemd/system/rclone-123.service

[Unit]
Description=RClone mount for 123Pan WebDAV
After=network-online.target

[Service]
Type=simple
User=你的用户名
ExecStartPre=/bin/mkdir -p /var/cache/rclone
ExecStart=/usr/bin/rclone mount 123pan:/ /mnt/123pan \
 --vfs-cache-mode writes \
 --vfs-cache-max-size 4G \
 --cache-dir /var/cache/rclone \
 --allow-other \
 --config /home/你的用户名/.config/rclone/rclone.conf
ExecStop=/bin/fusermount -uz /mnt/123pan
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

为什么是 Type=simple 而不是 notify rclone mount 不发送 sd_notify 信号,使用 notify 会导致 systemd 一直等待而失败。

加载并启动:

sudo systemctl daemon-reload
sudo systemctl enable rclone-123.service
sudo systemctl start rclone-123.service
systemctl status rclone-123.service   # 确认 active

6. 与 Docker 容器打通

Jellyfin 容器增加卷映射 -v /mnt/123pan/media:/media:ro,qBittorrent 配合脚本将下载完成的文件 mv/mnt/123pan/downloads。本地 SSD 彻底从媒体存储中解放。


缓存与体验调优

  • 缓存模式--vfs-cache-mode writes 兼顾写入和读取缓存,播放时会将部分数据缓存到本地,拖动进度条更顺畅。
  • 缓存大小:建议根据 SSD 空闲空间分配 4~8GB(--vfs-cache-max-size),用来缓存热门影片的头部数据。
  • 大文件无忧:即使用 cp 拷贝大于缓存上限的影片,rclone 会分块上传,缓存自动循环冲刷,不会报错。
  • 缓存目录:必须放在本地快速分区(如 SSD 上的 /var/cache/rclone),切忌与挂载点重合。

最后

这套方案让我在未添置任何硬盘的情况下,拥有了一个近乎“无限”的媒体仓库。123 网盘会员年费远低于同等容量的机械硬盘,且不受硬件老化困扰。Jellyfin 播放 4K 原盘流畅,qBittorrent 下载完成后自动归档到云端,一切都像在操作本地文件。

如果你也有一台安静的小主机,又不想被硬盘容量绑架,不妨试试这个组合。它或许会为你打开一扇新的大门。

版权声明:本站文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

评论加载中...