应用场景:飞牛NAS自带了远程挂载服务,却为什么要自定义挂载网盘呢?因为在飞牛影视更新后对webdav或者说自带挂载网盘服务的扫描速度大大折扣,同时也不支持在飞牛影视媒体库封面右下角中显示分辨率,影视详情页下也不会自动显示视频信息(需要播放一遍退出才显示),而通过自定义挂载网盘可以解决这一问题。
打开飞牛NAS设置项中SSH服务22
端口
📦️rclone
ssh连接具体不做解释
ssh <username>@<host>
sudo -i
由于飞牛nas本质上是linux debian,也自带了rclone【可能被飞牛官方技术巨巨精简过的】
如果想使用完整版的rclone可以先卸载再重新安装【谨慎抉择】
# 卸载
sudo apt remove rclone
# 安装
sudo -v ; curl https://rclone.org/install.sh | bash
🗃️挂载网盘
rclone config
根据以指导挂载即可,这里不做解释,直接以123网盘的webdav为例
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q>
🗄️挂载至本地路径
重点:笔者NAS只有一块500GB的SSD,飞牛NAS系统安装也在这块硬盘上,所以就将网盘挂载至这块SSD上,使用的配置可能与读者有异,具体可自行调整【遇事不决,可问春风,春风不语,还有AI】
目标路径:/vol1/1000/Media/123pan
🧩直接给挂载命令吧
# rclone123pan 名字自定义
vim /etc/systemd/system/rclone123pan.service
内容为【具体的优化内容可以将CPU 内存 硬盘与需求情况发送给 “癌”,它将会给你最佳配置】
此方式为笔者最开始的挂载方式,后期笔者将网盘中的媒体分类后改为“冷热分离”挂载
[Unit]
Description=Rclone Mount 123pan (Optimized)
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/rclone mount 123pan:/ /vol1/1000/Media/123pan \
--vfs-cache-mode full \
--vfs-cache-max-size 50G \
--vfs-cache-max-age 12h \
--vfs-read-chunk-size 128M \
--vfs-read-chunk-size-limit 1G \
--buffer-size 64M \
--dir-cache-time 5m \
--poll-interval 30s \
--multi-thread-streams 4 \
--no-modtime \
--allow-other \
--log-level NOTICE \
--log-file /var/log/rclone-123pan.log
ExecStop=/bin/fusermount -u /vol1/1000/Media/123pan
Restart=on-failure
RestartSec=10
User=root
Environment=RCLONE_CONFIG=/root/.config/rclone/rclone.conf
[Install]
WantedBy=multi-user.target
--vfs-cache-mode full
:播放高码率 4K 时必须使用此项,避免边播放边下载时卡顿。--vfs-cache-max-size 50G
:同时播放多个大码率 4K 文件,这个提升会很有帮助。也可以改成--vfs-cache-max-size off
表示不限,但要小心爆 SSD 空间。--vfs-cache-max-age 12h
:提升连贯播放体验,尤其是回看。建议12h
或24h
。--vfs-read-chunk-size 128M
+--vfs-read-chunk-size-limit 1G
:逐步提升下载块,兼顾速度和压力。--buffer-size 64M
:较为合理,配合 chunk 提高读取性能。--dir-cache-time 5m
:目录缓存时间,5 分钟(你也可以写成1h
、30s
、24h
等),5分钟内不会重新访问远程读取目录内容,即便远程盘有新文件上传、重命名、删除,本地不会立即更新。--poll-interval 30s
:补充上条5分钟内不刷新的,每隔 30 秒轮询远程存储,检查文件或目录是否有变动(添加、修改、删除),从而触发目录缓存的刷新。
🔍 和 --dir-cache-time 的关系:
--dir-cache-time:决定“最多缓存多久不去检查”
--poll-interval:决定“多频繁去远程问一次有没有变化”
🧠 举个类比:
你设了 --dir-cache-time 5m,那意味着 rclone 最多保留 5 分钟的目录缓存。
但有了 --poll-interval 30s 后,如果远程盘发生变化(例如 123pan 网页上传了新文件):
rclone 每 30 秒轮询一次
发现远程变动,会立刻 刷新缓存
所以不会真的等满 5 分钟才看到新文件
✅ 实现了“快照式动态刷新”。
--multi-thread-streams 4
:允许同时多线程拉取一个文件(默认是4),能提高下载带宽利用率,特别是 WebDAV 类网盘常限速时。--no-modtime
:部分 WebDAV(如123pan)不支持修改时间,强行访问可能引发错误,建议加上此项提高稳定性。--log-file
:方便排错,平时不要用,日志会爆炸。Restart=on-failure
:容错处理良好。User=root
+--allow-other
:确保能访问挂载路径。
🚀 启用并运行挂载任务
# 重新加载 systemd 配置
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
# 启用并启动定时器
sudo systemctl enable rclone123pan.service
此时可以看到路径:/vol1/1000/Media/123pan 里已经有内容,飞牛影视授权一下可访问Media
路径即可扫描。
🕒️监控缓存空间占用(可选)
可以加个定时清理脚本/cron 防止 SSD 堆满
1. 清理脚本内容(推荐保存为 /usr/local/bin/clean-rclone-cache.sh
)
vim /usr/local/bin/clean-rclone-cache.sh
# 写入以下内容
#!/bin/bash
CACHE_DIR="/root/.cache/rclone/vfs"
LOG_FILE="/var/log/clean-rclone-cache.log"
# 清理超过2天未访问的缓存文件
find "$CACHE_DIR" -type f -atime +2 -print -delete >> "$LOG_FILE" 2>&1
并添加执行权限:chmod +x /usr/local/bin/clean-rclone-cache.sh
2. Systemd Service
vim /etc/systemd/system/clean-rclone-cache.service
# 写入以下内容
[Unit]
Description=Clean Rclone VFS Cache (files not accessed in 2 days)
[Service]
Type=oneshot
ExecStart=/usr/local/bin/clean-rclone-cache.sh
3. Systemd Timer
vim /etc/systemd/system/clean-rclone-cache.timer
# 写入以下内容
[Unit]
Description=Run daily to clean old Rclone VFS cache files
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
🚀 启用并运行定时清理任务
# 重新加载 systemd 配置
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
# 启用并启动定时器
sudo systemctl enable --now clean-rclone-cache.timer
⛓️💥冷热分离
将四个目录分别挂载到 /vol1/1000/Media/123pan/目录名
✅ 准备工作(只需做一次)
确保目标挂载目录存在(可加在飞牛里或手动建):
mkdir -p /vol1/1000/Media/123pan/电视节目
mkdir -p /vol1/1000/Media/123pan/电影
mkdir -p /vol1/1000/Media/123pan/其他影视
mkdir -p /vol1/1000/Media/123pan/更新中
🎯 服务文件 1:vim /etc/systemd/system/rclone-123pan-tv.service
[Unit]
Description=Rclone Mount 123pan - 电视节目
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStartPre=/bin/mkdir -p /vol1/1000/Media/123pan/电视节目
ExecStart=/usr/bin/rclone mount 123pan:/电视节目 /vol1/1000/Media/123pan/电视节目 \
--vfs-cache-mode full \
--vfs-cache-max-size 20G \
--vfs-cache-max-age 24h \
--vfs-read-chunk-size 128M \
--vfs-read-chunk-size-limit 1G \
--buffer-size 64M \
--dir-cache-time 24h \
--poll-interval 1h \
--multi-thread-streams 4 \
--no-modtime \
--allow-other \
--log-level NOTICE \
--log-file /var/log/rclone-123pan-tv.log
ExecStop=/bin/fusermount -qzu /vol1/1000/Media/123pan/电视节目
Restart=on-failure
RestartSec=10
User=root
Environment=RCLONE_CONFIG=/root/.config/rclone/rclone.conf
[Install]
WantedBy=multi-user.target
🎯 服务文件 2:vim /etc/systemd/system/rclone-123pan-movie.service
[Unit]
Description=Rclone Mount 123pan - 电影
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStartPre=/bin/mkdir -p /vol1/1000/Media/123pan/电影
ExecStart=/usr/bin/rclone mount 123pan:/电影 /vol1/1000/Media/123pan/电影 \
--vfs-cache-mode full \
--vfs-cache-max-size 20G \
--vfs-cache-max-age 24h \
--vfs-read-chunk-size 128M \
--vfs-read-chunk-size-limit 1G \
--buffer-size 64M \
--dir-cache-time 24h \
--poll-interval 1h \
--multi-thread-streams 4 \
--no-modtime \
--allow-other \
--log-level NOTICE \
--log-file /var/log/rclone-123pan-movie.log
ExecStop=/bin/fusermount -qzu /vol1/1000/Media/123pan/电影
Restart=on-failure
RestartSec=10
User=root
Environment=RCLONE_CONFIG=/root/.config/rclone/rclone.conf
[Install]
WantedBy=multi-user.target
🎯 服务文件 3:vim /etc/systemd/system/rclone-123pan-others.service
[Unit]
Description=Rclone Mount 123pan - 其他影视
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStartPre=/bin/mkdir -p /vol1/1000/Media/123pan/其他影视
ExecStart=/usr/bin/rclone mount 123pan:/其他影视 /vol1/1000/Media/123pan/其他影视 \
--vfs-cache-mode full \
--vfs-cache-max-size 20G \
--vfs-cache-max-age 24h \
--vfs-read-chunk-size 128M \
--vfs-read-chunk-size-limit 1G \
--buffer-size 64M \
--dir-cache-time 24h \
--poll-interval 1h \
--multi-thread-streams 4 \
--no-modtime \
--allow-other \
--log-level NOTICE \
--log-file /var/log/rclone-123pan-others.log
ExecStop=/bin/fusermount -qzu /vol1/1000/Media/123pan/其他影视
Restart=on-failure
RestartSec=10
User=root
Environment=RCLONE_CONFIG=/root/.config/rclone/rclone.conf
[Install]
WantedBy=multi-user.target
🎯 服务文件 4(更新中目录,媒体内容会更新,因此缓存策略更激进):vim /etc/systemd/system/rclone-123pan-updating.service
[Unit]
Description=Rclone Mount 123pan - 更新中
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStartPre=/bin/mkdir -p /vol1/1000/Media/123pan/更新中
ExecStart=/usr/bin/rclone mount 123pan:/更新中 /vol1/1000/Media/123pan/更新中 \
--vfs-cache-mode full \
--vfs-cache-max-size 50G \
--vfs-cache-max-age 6h \
--vfs-read-chunk-size 64M \
--vfs-read-chunk-size-limit 512M \
--buffer-size 32M \
--dir-cache-time 5m \
--poll-interval 30s \
--multi-thread-streams 4 \
--no-modtime \
--allow-other \
--log-level NOTICE \
--log-file /var/log/rclone-123pan-updating.log
ExecStop=/bin/fusermount -qzu /vol1/1000/Media/123pan/更新中
Restart=on-failure
RestartSec=10
User=root
Environment=RCLONE_CONFIG=/root/.config/rclone/rclone.conf
[Install]
WantedBy=multi-user.target
💣️启动
systemctl daemon-reexec
systemctl daemon-reload
# 启动
systemctl start rclone-123pan-tv
systemctl start rclone-123pan-movie
systemctl start rclone-123pan-others
systemctl start rclone-123pan-updating
# 设置开机自启
systemctl enable rclone-123pan-tv
systemctl enable rclone-123pan-movie
systemctl enable rclone-123pan-others
systemctl enable rclone-123pan-updating
提示:rclone缓存路径默认为~/.cache/rclone/vfs
,在此,将 123pan 的四个目录(如 电视节目 / 电影 / 更新中 / 其他影视)分开挂载后,原本的 rclone 缓存清理脚本不需要重写