痛点起源 我的家庭服务器是一台零刻迷你主机,刷了 Ubuntu Server 24.04,上面用 Docker 跑着 Jellyfin、qBittorrent 等各种自托管服务。自带的 1TB SSD 放个学习和工作数据还算宽裕,但面对动辄数十 GB 一部的高清影视资源,空间瞬间捉襟见肘。用昂贵的 SSD 存放冷数据影音库无疑是巨大浪费,而添加一块外置硬盘又要破坏迷你主机的紧凑美感,还徒增功耗和线缆。
出路:网盘挂载 云盘是个理想的容量蓄水池,前提是要解决两个致命问题:
- 必须支持标准协议,不能靠逆向接口等灰色手段。
- 必须能被 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 下载完成后自动归档到云端,一切都像在操作本地文件。
如果你也有一台安静的小主机,又不想被硬盘容量绑架,不妨试试这个组合。它或许会为你打开一扇新的大门。