飞牛NAS 自定义挂载网盘媒体

应用场景:飞牛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
https://inmark.dev/archives/9XyeVDRw

🗃️挂载网盘

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 :提升连贯播放体验,尤其是回看。建议12h24h

  • --vfs-read-chunk-size 128M + --vfs-read-chunk-size-limit 1G:逐步提升下载块,兼顾速度和压力。

  • --buffer-size 64M:较为合理,配合 chunk 提高读取性能。

  • --dir-cache-time 5m:目录缓存时间,5 分钟(你也可以写成 1h30s24h 等),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 缓存清理脚本不需要重写

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息