引言#
上一篇文章 介绍了如何在服务器上部署 OpenList + qBittorrent + Aria2 离线下载方案。服务端跑起来之后,接下来的问题就是:怎么在 Windows 上方便地访问这些文件?
浏览器登录 OpenList 网页当然可以,但每次下载到本地再打开,体验和网盘没啥区别。更好的方式是把 OpenList 直接挂载为 Windows 本地磁盘——你的文件全部出现在资源管理器里,双击即播,拖拽即存。
实现这个目标的核心组合是 WinFsp + Rclone:WinFsp 提供 Windows 文件系统驱动,Rclone 负责把 WebDAV 协议翻译成文件系统操作。再加上 NSSM 把挂载命令封装成 Windows 服务,就能实现开机自启、后台静默运行。
本文整合了 WinFsp 2025、NSSM 2.24-101、rclone ≥ 1.65.0 的兼容性问题,规避了所有已知坑。
开始之前:路径约定#
本文涉及多处本地路径,不同电脑上必然不同。为了避免读者无脑复制导致翻车,这里先用占位符约定好,下文所有命令和代码块中出现的具体路径都是我本机的示例,你需要替换为自己的:
| 占位符 | 本文示例值 | 说明 |
|---|---|---|
<RCLONE_DIR> | D:\Tools\rclone | Rclone 和 NSSM 的安装目录,纯英文无空格即可 |
<CACHE_DIR> | D:\Library\Cache | Rclone 本地缓存目录,建议放在剩余空间最大的盘 |
<CONFIG_PATH> | C:\Users\<你的用户名>\AppData\Roaming\rclone\rclone.conf | Rclone 配置文件位置,通过 rclone config file 获取 |
<盘符> | Z: | 挂载目标盘符,被占用就换 Y: 或 X: |
<remote名> | openlist | Rclone 中给 OpenList 连接起的名字,可自定义 |
<你的域名> | — | OpenList 的访问域名 |
<RCLONE_DIR>\mount.bat | D:\Tools\rclone\mount.bat | 启动脚本路径 |
📌 记不住没关系,下文每次用到这些路径时都会再次提醒替换。
方案概览#
OpenList 服务器 (WebDAV)
↓ HTTPS
Rclone (WebDAV 客户端, 协议翻译)
↓
WinFsp (文件系统驱动)
↓
Windows 资源管理器 → <盘符>
NSSM → 包装为 Windows 服务 → 开机自启, 后台运行| 组件 | 角色 | 版本要求 |
|---|---|---|
| Rclone | WebDAV 客户端,将远程文件系统映射到本地 | ≥ 1.65.0 |
| WinFsp | Windows 文件系统驱动,让虚拟磁盘被系统识别 | 最新 2025 版 |
| NSSM | 将挂载脚本封装为 Windows 服务,实现开机自启 | 2.24-101 预发布版 |
⚠️ NSSM 稳定版 2.24 在 Win10/11 有启动 bug,必须用预发布版。WinFsp 2025 版服务名已改为
WinFsp.Launcher,后文命令已适配。
第一步:下载三大组件#
1. Rclone#
- 下载:Rclone 官网
- 选择 Windows Intel/AMD - 64 Bit,下载
.zip - 解压到
<RCLONE_DIR>(纯英文无空格,比如D:\Tools\rclone) - 添加到系统 PATH:
Win+R→sysdm.cpl→ 高级 → 环境变量 → 系统变量 Path → 新建 → 填入<RCLONE_DIR> - 重新打开 PowerShell,验证:
rclone version版本号需 ≥ 1.65.0,低于此版本不支持 WinFsp 2025。
2. WinFsp#
- 下载:https://winfsp.dev/rel/ ,选择最新的
winfsp-*.msi - 双击安装,不要取消任何组件
- 安装过程中弹出重启提示时务必点 No,保存所有工作后再手动重启
- 重启后验证。注意服务名是
WinFsp.Launcher,不是winfsp:
sc query WinFsp.Launcher看到 STATE : 4 RUNNING 即安装成功。
3. NSSM#
- 下载预发布版:NSSM CI
- 解压后只需把
win64/nssm.exe复制到<RCLONE_DIR>(跟 rclone.exe 放一起即可)
第二步:配置 Rclone 连接 OpenList#
在 PowerShell 中执行:
rclone config逐行操作(→ 后面是需要你输入的内容,# 开头是注释):
n) New remote → n
name> → <remote名> # 我起的名字是 openlist
Storage> → webdav
url> → https://<你的域名>/dav # /dav 不能省
vendor> → 8 # Other
user> → <你的OpenList用户名>
password> → y → 输入密码 → 确认
bearer_token> → 直接回车跳过
Edit advanced config? → n
Keep this "<remote名>" remote? → y
q) Quit config → q测试连接:
rclone lsd <remote名>:/能列出文件夹即配置成功。如果报错,检查三项:域名是否带 /dav、用户名密码是否正确、OpenList 后台是否开启了「WebDAV 读取」权限。
第三步:手动挂载测试#
在正式安装服务之前,先在 PowerShell 前台挂一次,确认一切正常。
单行命令(替换 <remote名> 和 <盘符>):
rclone mount <remote名>:/ <盘符> --vfs-cache-mode full --dir-cache-time 30m --vfs-cache-max-size 10G --vfs-cache-max-age 24h --vfs-read-ahead 512M --buffer-size 256M --transfers 8 --multi-thread-streams 8 --no-checksum --no-modtime --read-only --network-mode --volname "OpenList"📌 以上命令中
<remote名>替换为第二步起的名字,<盘符>替换为你想用的盘符。其余参数照抄,不要随意删减。
参数说明:
| 参数 | 作用 |
|---|---|
--vfs-cache-mode full | 完整缓存模式,支持随机读写和流媒体播放 |
--dir-cache-time 30m | 目录结构缓存 30 分钟,减少请求 |
--vfs-cache-max-size 10G | 缓存上限 10GB,保护本地磁盘 |
--vfs-cache-max-age 24h | 缓存文件最长保留 24 小时 |
--vfs-read-ahead 512M | 预读 512MB,播放视频不卡顿的关键 |
--buffer-size 256M | 传输缓冲区 256MB |
--transfers 8 | 8 线程并发传输 |
--read-only | 只读挂载,防止误删服务器文件 |
--network-mode | 网络盘模式,减少不必要的元数据操作 |
--volname "OpenList" | 资源管理器显示的磁盘名称 |
⚠️ 看到
symlinks not supported提示直接忽略,OpenList WebDAV 不支持软链接,不影响使用。
打开文件资源管理器应该能看到挂载的盘,试播一个视频确认流畅,然后 Ctrl+C 卸载。
第四步:创建启动脚本#
先查 Rclone 配置文件在哪儿:
rclone config file记下输出的路径(下文用 <CONFIG_PATH> 指代),后面必须用到。
⚠️ 为什么要显式指定
--config:NSSM 以 SYSTEM 账户运行服务,Rclone 会去 SYSTEM 的配置目录查找,找不到你的<remote名>配置。必须用--config指向你的配置文件。
在 PowerShell 中一行创建 mount.bat。下面这个命令很长,先看懂再复制,把带 <> 的全部换掉:
# ===== 替换说明 =====
# <RCLONE_DIR> → rclone 安装目录,如 D:\Tools\rclone
# <CACHE_DIR> → 缓存目录,如 D:\Library\Cache
# <remote名> → 第二步起的名字,如 openlist
# <盘符> → 挂载盘符,如 Z:
# <CONFIG_PATH> → 上一步 rclone config file 输出的路径
# ====================
Set-Content -Path <RCLONE_DIR>\mount.bat -Value "@echo off`nset RCLONE_CACHE_DIR=<CACHE_DIR>`nmkdir %RCLONE_CACHE_DIR% 2>nul`n`n<RCLONE_DIR>\rclone.exe mount <remote名>:/ <盘符> --config `"<CONFIG_PATH>`" --vfs-cache-mode full --dir-cache-time 30m --vfs-cache-max-size 10G --vfs-cache-max-age 24h --vfs-read-ahead 512M --buffer-size 256M --transfers 8 --multi-thread-streams 8 --no-checksum --no-modtime --read-only --network-mode --volname `"OpenList`"" -Encoding ASCII以我的本机为例,替换后实际执行的命令长这样:
Set-Content -Path D:\Tools\rclone\mount.bat -Value "@echo off`nset RCLONE_CACHE_DIR=D:\Library\Cache`nmkdir %RCLONE_CACHE_DIR% 2>nul`n`nD:\Tools\rclone\rclone.exe mount openlist:/ Z: --config `"C:\Users\Arguo\AppData\Roaming\rclone\rclone.conf`" --vfs-cache-mode full --dir-cache-time 30m --vfs-cache-max-size 10G --vfs-cache-max-age 24h --vfs-read-ahead 512M --buffer-size 256M --transfers 8 --multi-thread-streams 8 --no-checksum --no-modtime --read-only --network-mode --volname `"OpenList`"" -Encoding ASCII验证脚本内容:
type <RCLONE_DIR>\mount.bat💡 如果你需要可写挂载(从本机上传文件到 OpenList),去掉
--read-only、--no-checksum、--no-modtime三个参数。但 WebDAV 写入性能一般,大文件建议用网页上传。
脚本逻辑很简单:先创建缓存目录,然后执行 Rclone 挂载命令。--read-only 确保只读,不会误删服务器文件。
第五步:用 NSSM 安装为 Windows 服务#
以下命令必须在管理员 PowerShell 中执行(右键开始菜单 → 终端(管理员))。
nssm install OpenListMount弹出窗口配置(<RCLONE_DIR> 换成你的实际路径):
| 标签页 | 字段 | 值 |
|---|---|---|
| Application | Path | <RCLONE_DIR>\mount.bat |
| Application | Arguments | 留空 |
| Application | Startup type | Automatic (Delayed Start) |
| Log on | Log on as | Local System account |
点击 Install。
配置日志(排错时非常有用,<RCLONE_DIR> 同样替换):
nssm set OpenListMount AppStdout <RCLONE_DIR>\stdout.log
nssm set OpenListMount AppStderr <RCLONE_DIR>\stderr.log
nssm set OpenListMount AppRotateFiles 1
nssm set OpenListMount AppRotateBytes 10485760启动服务:
net start OpenListMount报
OpenService(): 拒绝访问说明不在管理员终端,重新右键管理员打开。
服务启动后打开文件资源管理器,你的盘应该出现了。如果没出现,先看日志:
type <RCLONE_DIR>\stderr.log第六步:PotPlayer 播放优化#
挂载盘的视频播放体验取决于播放器的缓冲策略。PotPlayer 是 Windows 上对网络盘支持最好的播放器,推荐以下配置:
F5→ 播放 → 缓冲:文件播放缓冲100000 KB,网络播放缓冲200000 KB,勾选「使用预读缓冲」→50000 KBF5→ 滤镜 → 视频解码器 → 内置解码器/DXVA 设置 → 勾选「使用硬件加速(DXVA)」→ 选择DXVA2 本机F5→ 常规 → 更新 → 取消勾选「自动检查更新」F5→ 播放 → 播放列表 → 勾选「自动加载文件夹中的所有文件」
💡 VLC 和 MPC-BE 也是不错的选择。但 Windows 自带的「电影和电视」和「媒体播放器」对网络盘缓冲优化较差,4K 视频可能卡顿。
第七步:验证清单#
逐项确认,全部通过才算配置成功:
| # | 检查项 | 命令/操作 | 预期结果 |
|---|---|---|---|
| 1 | WinFsp 服务 | sc query WinFsp.Launcher | STATE : 4 RUNNING |
| 2 | Rclone 连接 | rclone lsd <remote名>:/ | 列出文件夹 |
| 3 | 手动挂载 | 前台执行挂载命令 | 盘出现,能播放视频 |
| 4 | 服务挂载 | net start OpenListMount | 盘自动出现 |
| 5 | 重启验证 | 重启电脑 | 盘自动出现 |
故障排查速查表#
| 现象 | 原因 | 解决 |
|---|---|---|
sc query winfsp 报 1060 | WinFsp 2025 改了服务名 | 用 sc query WinFsp.Launcher |
| NSSM 服务启动成功但无盘 | 缺少 --config,Rclone 找不到配置 | 确认 mount.bat 里 --config 指向了 rclone config file 输出的路径 |
nssm set 报拒绝访问 | 不是管理员终端 | 右键开始菜单 → 终端(管理员) |
| 手动挂载后服务启动失败 | 盘被手动进程占用 | 先 rclone unmount <盘符> 再启服务 |
| 播放视频卡顿 | 缓存参数不够 | 确认用了完整参数,尤其 --vfs-read-ahead 和 --buffer-size |
rclone mount 报 WinFsp 未安装 | 安装顺序问题 | 先装 WinFsp,重启后再装 Rclone |
| 盘能打开但文件列表加载慢 | 目录缓存时间过短 | 加大 --dir-cache-time 到 1h |
| 服务启动后盘闪现消失 | Rclone 版本低于 1.65.0 | 升级 Rclone |
symlinks not supported 错误 | OpenList WebDAV 不支持软链接 | 完全忽略,不影响使用 |
日常管理#
# 启停服务
net stop OpenListMount # 停止
net start OpenListMount # 启动
# 强制卸载
rclone unmount <盘符>
# 清除缓存(先停止服务)
net stop OpenListMount
del /q/s <CACHE_DIR>\*
net start OpenListMount
# 查看日志
type <RCLONE_DIR>\stderr.log完整卸载#
net stop OpenListMount
nssm remove OpenListMount confirm控制面板卸载 WinFsp,然后清理文件(替换 <RCLONE_DIR> 和 <CACHE_DIR>):
rd /s /q <RCLONE_DIR>
rd /s /q <CACHE_DIR>结语#
WinFsp + Rclone + NSSM 这个组合,让 OpenList 从一个「需要打开浏览器」的网页网盘,变成了一个跟 C 盘 D 盘并列的本地磁盘。双击就能播 4K 视频,文件管理器里拖拽就能复制,体验和本地文件几乎没有区别。
三个组件各司其职:WinFsp 负责让 Windows 认这个「磁盘」、Rclone 负责跟 OpenList 的 WebDAV 通信、NSSM 负责开机自动拉起。一旦搭好就忘掉它的存在,这才是好工具该有的样子。
有任何问题欢迎到 GitHub 仓库 提 Issue 🚀




