跳过正文
  1. 技术博客/

把自建网盘挂载成 Windows 本地磁盘:WinFsp + Rclone + WebDAV 教程

·3631 字·8 分钟·
Arguo
作者
Arguo
OpenList 自建 - 这篇文章属于一个选集。
Part 2: 本文

引言
#

上一篇文章 介绍了如何在服务器上部署 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\rcloneRclone 和 NSSM 的安装目录,纯英文无空格即可
<CACHE_DIR>D:\Library\CacheRclone 本地缓存目录,建议放在剩余空间最大的盘
<CONFIG_PATH>C:\Users\<你的用户名>\AppData\Roaming\rclone\rclone.confRclone 配置文件位置,通过 rclone config file 获取
<盘符>Z:挂载目标盘符,被占用就换 Y: 或 X:
<remote名>openlistRclone 中给 OpenList 连接起的名字,可自定义
<你的域名>OpenList 的访问域名
<RCLONE_DIR>\mount.batD:\Tools\rclone\mount.bat启动脚本路径

📌 记不住没关系,下文每次用到这些路径时都会再次提醒替换。

方案概览
#

OpenList 服务器 (WebDAV)
       ↓ HTTPS
  Rclone (WebDAV 客户端, 协议翻译)
  WinFsp (文件系统驱动)
  Windows 资源管理器 → <盘符>
       
  NSSM → 包装为 Windows 服务 → 开机自启, 后台运行
组件角色版本要求
RcloneWebDAV 客户端,将远程文件系统映射到本地≥ 1.65.0
WinFspWindows 文件系统驱动,让虚拟磁盘被系统识别最新 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+Rsysdm.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 88 线程并发传输
--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> 换成你的实际路径):

标签页字段
ApplicationPath<RCLONE_DIR>\mount.bat
ApplicationArguments留空
ApplicationStartup typeAutomatic (Delayed Start)
Log onLog on asLocal 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 上对网络盘支持最好的播放器,推荐以下配置:

  1. F5播放 → 缓冲:文件播放缓冲 100000 KB,网络播放缓冲 200000 KB,勾选「使用预读缓冲」→ 50000 KB
  2. F5滤镜 → 视频解码器 → 内置解码器/DXVA 设置 → 勾选「使用硬件加速(DXVA)」→ 选择 DXVA2 本机
  3. F5常规 → 更新 → 取消勾选「自动检查更新」
  4. F5播放 → 播放列表 → 勾选「自动加载文件夹中的所有文件」

💡 VLC 和 MPC-BE 也是不错的选择。但 Windows 自带的「电影和电视」和「媒体播放器」对网络盘缓冲优化较差,4K 视频可能卡顿。

第七步:验证清单
#

逐项确认,全部通过才算配置成功:

#检查项命令/操作预期结果
1WinFsp 服务sc query WinFsp.LauncherSTATE : 4 RUNNING
2Rclone 连接rclone lsd <remote名>:/列出文件夹
3手动挂载前台执行挂载命令盘出现,能播放视频
4服务挂载net start OpenListMount盘自动出现
5重启验证重启电脑盘自动出现

故障排查速查表
#

现象原因解决
sc query winfsp 报 1060WinFsp 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 🚀

OpenList 自建 - 这篇文章属于一个选集。
Part 2: 本文

相关文章