R4S闲着不用?我用iStoreOS+WebDAV把USB硬盘挂成可远程访问的网络盘
前言
家里有一些不想放第三方云盘的文件,又希望电脑、手机在不同网络下都能访问,最直接的思路就是自己搭一个WebDAV存储入口。但真正做起来,并不是“装个共享软件”就结束:R4S要先跑起iStoreOS,双网口和单网口的网络关系要分清,USB硬盘要正确挂载,WebDAV账号和6086端口要验证,Windows端还要能真正挂成网络盘。
这次我用4GB版NanoPi R4S做完整实操。先把iStoreOS镜像写入SD卡,通过双网口方式进入192.168.100.1,再用系统里的快速配置安装GoWebdav,把外接硬盘作为共享目录。
局域网链路跑通以后,继续用RaiDrive把WebDAV挂载到Windows资源管理器,并实际播放硬盘里的视频,确认不是“页面能打开”就算结束。
最后再在iStoreOS里安装cpolar,把6086从随机公网地址切换到固定二级子域名,并重新配置RaiDrive。整篇重点是把R4S → iStoreOS → WebDAV → RaiDrive → 远程挂载这条链真正跑通。
这类方案真正值得折腾的地方,也不只是“文件能从外面打开”,而是把系统、硬盘、WebDAV和Windows挂载分成几层逐一验证。以后哪一层出问题,就能直接判断是R4S网络、共享服务、硬盘还是公网入口,而不是把所有故障都归到“云盘不好用”上。
而且更方便后续继续扩展。

1 这套方案真正解决什么问题
这篇不是把R4S硬说成传统NAS,而是利用它的:
- 双千兆网口;
- USB 3.0;
- microSD启动;
- ARM平台;
- OpenWrt / iStoreOS生态;
搭一套轻量WebDAV文件服务。
R4S硬件页面:

本次使用的是:
4GB版NanoPi R4S。
2 本次需要准备的硬件和软件
材料包括:
- NanoPi R4S;
- 5V / 3A Type-C电源;
- USB读卡器;
- TF / SD卡;
- 两根网线;
- 移动硬盘;
- iStoreOS镜像;
- balenaEtcher;
- 局域网IP扫描工具;
- RaiDrive。
准备示意:

移动硬盘在这篇里要求:
- 容量至少20G;
- 使用EXT4格式。
如果硬盘已经有数据,后面涉及格式化时一定先备份。
3 先把iStoreOS写进SD卡
本次镜像文件:
istoreos-24.10.2-2025090517-r4s-squashfs.img.gz
使用:
balenaEtcher-Setup-1.18.11.exe
打开balenaEtcher以后,把镜像文件导入:

4 目标磁盘一定选对SD卡
插入USB读卡器和SD卡。
选择目标磁盘:

这一步最需要注意的是:
不要选错电脑本机硬盘。
刷写属于覆盖操作。
如果目标盘选错,后果不是“安装失败”,而是数据直接被覆盖。
5 开始烧录并等待验证
点击:
现在烧录
过程中可能弹出提示:

按照本次流程继续等待。
烧录和验证完成:

这时把SD卡从电脑拔出。
6 R4S双网口和单网口的网络逻辑不同
R4S有:
- WAN;
- LAN;
两个网口。
本次主要演示:
双网口模式。
双网口模式下,R4S作为路由设备工作,默认管理地址使用:
192.168.100.1
单网口模式则需要把LAN口接入上游路由器,与上游网络处在同一网段,再通过路由器设备列表或IP扫描工具找R4S地址。
所以如果浏览器打不开192.168.100.1,先确认自己到底是哪种接法。
7 把SD卡插回R4S
页面:

然后开始接线。
8 双网口方式这样连接
本次连接方式:
- WAN口连接上游路由器或光猫;
- LAN口连接电脑。
页面:

网络示意:

这种方式的好处是:
初次配置时管理地址比较明确。
9 等待R4S启动
上电后等待约2~3分钟。
指示灯状态参考:
- PWR:电源;
- SYS:系统;
- WAN:上游网络;
- LAN:本地连接。
页面:

不要只凭“灯亮了”就判断系统完全正常,后面还要继续确认电脑拿到的地址和Web页面。
10 先检查电脑是不是100网段
Windows CMD执行:
ipconfig
结果:

本次电脑地址是:
192.168.100.137
网关:
192.168.100.1
这说明电脑已经进入R4S的LAN网络。
11 浏览器打开iStoreOS
访问:
http://192.168.100.1
页面:

能够进入登录界面以后,可以确认:
电脑 → R4S LAN → iStoreOS
这一层已经跑通。
12 第一次登录先设置管理员密码
首次进入时按页面提示设置密码:

保存:

这一层不要省。
后面不仅要配置存储,还会继续安装远程访问组件。
管理后台不适合长期保留空密码。
13 开始配置WebDAV
回到首页:
存储服务 → 快速配置
页面:

选择:
局域网文件共享(WebDAV)
系统会提示安装:
GoWebdav
页面:

确认安装即可。
14 插入USB移动硬盘
把外置硬盘插入R4S USB接口:

后面的WebDAV共享目录就放在这个硬盘上。
15 选择共享硬盘
页面:

如果没有外接硬盘,也可以选择SD卡。
但长期文件存储更适合单独使用外部存储,而不是持续占用系统卡空间。
16 是否格式化要看硬盘里有没有数据
页面:

本次选择格式化。
这里必须再次强调:
格式化会清空硬盘内容。
如果外置盘里已有资料,先备份再继续。
17 创建WebDAV账号
共享配置页面:

设置:
- 用户名;
- 密码。
然后创建。
WebDAV后面不仅用于局域网浏览器访问,还会继续挂载到Windows和映射公网,所以账号密码不要使用过于简单的组合。
18 检查WebDAV信息
配置完成以后可以看到:

本次页面显示:
- 挂载路径:/mnt/usb6-3
- 服务路径:http://192.168.100.1:6086
- 用户:user
这里最关键的是:
6086
后面的RaiDrive和远程访问都围绕这个WebDAV服务继续。
19 浏览器先在局域网验证6086
访问:
http://192.168.100.1:6086
页面:

浏览器会要求认证。
输入刚刚创建的账号密码:

能够进入以后,说明WebDAV已经正常响应。
20 再拿真实文件做一次验证
本次上传了一个视频并直接访问播放:

这一层比单纯看到目录更有意义。
因为它说明:
R4S → USB硬盘 → WebDAV → 浏览器
文件访问链已经实际跑通。
21 到这里还只是局域网文件服务
当前链路是:
R4S
↓
iStoreOS
↓
USB硬盘
↓
GoWebdav
↓
6086
↓
局域网浏览器
如果只需要家里局域网共享文件,到这里已经可以使用。
后面继续解决:
Windows挂载体验。
22 Windows端使用RaiDrive挂载
安装RaiDrive:

官方下载地址按材料保留:
https://www.raidrive.com/download
启动以后进行登录:

登录完成后,Add按钮可用。
23 添加WebDAV连接
点击:
Add
配置页面:

这里填写前面已经验证过的:
- WebDAV地址;
- 端口;
- 用户名;
- 密码。
连接以后,资源管理器里会出现新的网络位置。
24 Windows资源管理器里已经能看到网络盘
页面:

做到这里,可以确认:
Windows → RaiDrive → WebDAV → R4S硬盘
已经建立。
这里说“像本地硬盘一样使用”更适合理解为:
操作入口类似本地盘。
实际读写速度、延迟和稳定性仍然取决于网络和WebDAV本身。
25 容量显示不正确时这样处理
先停止连接:

进入设置:

在高级选项里手动填写硬盘真实容量,再重新连接。
这个设置主要影响:
Windows端显示的容量信息。
并不会真正改变硬盘物理容量。
26 再播放一个视频验证RaiDrive链路
页面:

本次可以直接从网络盘调用本地播放器播放视频。
这说明:
Windows资源管理器 → RaiDrive → WebDAV → R4S USB硬盘
已经跑通。
27 但此时仍然只能在局域网内使用
当前WebDAV地址是:
192.168.100.1:6086
这是局域网地址。
一旦电脑离开R4S所在网络,就无法直接使用这个地址。
后面的远程部分解决的是:
如何让外部网络访问6086。
28 在iStoreOS里安装cpolar
先打开iStoreOS终端:

进入终端页面:

先下载公钥:
wget -O cpolar-public.key http://openwrt.cpolar.com/releases/public.key
结果:

29 添加公钥和软件源
执行:
opkg-key add cpolar-public.key
echo "src/gz cpolar_packages http://openwrt.cpolar.com/releases/packages/$(. /etc/openwrt_release ; echo $DISTRIB_ARCH)" >> /etc/opkg/customfeeds.conf
结果:

这里是在iStoreOS / OpenWrt的软件管理体系里增加cpolar源。
30 更新opkg仓库
执行:
opkg update
结果:

完成以后再安装主程序和LuCI插件。
31 安装cpolar和中文LuCI插件
执行:
#安装 cpolar 主程序,这是核心二进制文件,可以运行隧道服务。
opkg install cpolar
#安装 LuCI 的前端管理界面插件,也就是在 iStoreOS 的 Web 界面(LuCI)里能看到图形化的 Cpolar 配置。
opkg install luci-app-cpolar
#安装 LuCI 的中文语言包,让 Web 界面显示中文。
opkg install luci-i18n-cpolar-zh-cn
结果:

这三部分分别是:
- cpolar主程序;
- LuCI管理插件;
- 中文语言包。
32 刷新iStoreOS查看cpolar入口
页面:

进入服务菜单后就可以看到cpolar。
这样就不需要只靠命令行维护隧道。
33 打开cpolar Web UI
点击:
打开Web-UI管理界面
页面:

注册并登录以后进入隧道列表:

34 把website隧道改给WebDAV使用
选择:
website
点击编辑:

这里真正要指向的是:
WebDAV的6086端口。
如果最终隧道名称改成WebDAV-6086,后面更容易识别。
35 先用随机地址验证公网链路
进入:
状态 → 在线隧道列表
页面:

使用HTTPS地址测试:

能够出现WebDAV认证和访问结果以后,可以确认:
外部浏览器 → 公网地址 → R4S:6086 → WebDAV
链路已经跑通。
36 随机地址适合先验证
随机地址更适合:
- 测试;
- 临时访问;
- 先确认6086能否从公网打开。
如果准备长期挂载到Windows,地址频繁变化会比较麻烦。
所以后面再换固定二级子域名。
37 保留固定二级子域名
进入预留页面。
页面:

本次示例:
- 地区:China Top
- 二级域名:dav01
注释内容按材料保留:
注:二级域名是唯一的,每个账号都不相同,请以自己设置的二级域名保留的为主
实际名称以自己账号最终成功保留的结果为准。
38 编辑WebDAV隧道
回到隧道列表:

点击编辑,把域名类型改成:
二级子域名
填写前面保留的名称:

39 查看固定地址
进入在线隧道列表:

可以看到WebDAV-6086已经切换成固定二级子域名形式。
40 再做一次HTTPS访问测试
页面:

能够正常访问以后,说明固定公网入口已经生效。
这里解决的是:
地址不再频繁变化。
并不代表WebDAV账号、文件权限和网络链路自动变得绝对安全。
41 最后把公网地址重新挂进RaiDrive
回到RaiDrive:

新增一条WebDAV连接。
区别只是:
之前使用局域网地址;
现在改用公网固定地址。
连接成功以后:

Windows资源管理器重新出现网络盘。
整条远程链现在变成:
Windows资源管理器 → RaiDrive → 固定公网地址 → cpolar → R4S:6086 → WebDAV → USB硬盘
42 为什么“挂成盘”不等于“性能和本地硬盘一样”
RaiDrive提供的是:
网络驱动器入口。
操作习惯确实接近本地磁盘,但实际性能仍然受到:
- 家庭上行带宽;
- 外部网络质量;
- WebDAV协议;
- 文件大小;
- USB硬盘性能;
- R4S负载;
影响。
所以更准确的表述是:
在资源管理器里以网络盘方式访问。
而不是:
速度和体验一定等同本地硬盘。
43 自托管也不等于“绝对隐私”
文件实际保存在自己的USB硬盘,这一点相比把数据直接上传第三方云盘更可控。
但真正的安全仍然依赖:
- iStoreOS管理员密码;
- WebDAV用户名和密码;
- 公网入口传播范围;
- 移动硬盘是否备份;
- 系统更新;
- 客户端设备安全。
所以“数据在自己手里”更准确的理解是:
存储位置和访问入口主要由自己维护。
44 WebDAV公网开放要特别注意账号强度
这篇最终公开的是:
6086 WebDAV服务。
这意味着只要公网入口存在,就必须依靠WebDAV账号认证保护文件。
长期使用时至少要做到:
- 不用默认弱密码;
- 不把账号密码写进公开截图;
- 不随意分享固定地址;
- 重要资料另外备份;
- 不把“能登录”当作唯一安全标准。
cpolar负责网络入口。
WebDAV自身负责文件访问认证。
45 这套方案适合什么人
比较适合:
- 手里有R4S;
- 想自己搭WebDAV;
- 有USB移动硬盘;
- 需要Windows网络盘体验;
- 希望从外部网络访问自己的文件;
- 能接受自己维护系统、账号和备份。
如果只是临时传几个文件,商业云盘可能更省事。
这套方案真正有价值的地方在于:
存储设备、共享服务和访问入口都由自己维护。
46 最后把整条技术链重新看一遍
硬件:
NanoPi R4S + SD卡 + USB硬盘
系统:
iStoreOS
刷写:
balenaEtcher → SD卡
网络:
双网口192.168.100.1 / 单网口同上游网段
WebDAV:
GoWebdav → 6086
本地验证:
浏览器 → 用户认证 → 文件播放
Windows挂载:
RaiDrive → 网络盘
cpolar安装:
opkg源 → 主程序 → LuCI插件 → 中文包
随机远程:
公网随机地址 → 6086
固定远程:
固定二级子域名 → 6086
最终挂载:
RaiDrive → 固定公网地址 → WebDAV
实际完成:
- iStoreOS镜像烧录;
- SD卡启动;
- 双网口连接;
- IP检查;
- 192.168.100.1后台;
- 管理员密码;
- GoWebdav安装;
- USB硬盘;
- WebDAV账号;
- 6086;
- 浏览器认证;
- 视频播放;
- RaiDrive安装;
- 网络盘挂载;
- 容量调整;
- 网络盘视频播放;
- cpolar软件源;
- cpolar主程序;
- LuCI插件;
- 随机公网访问;
- 固定二级子域名;
- 公网RaiDrive挂载。
这样R4S才真正从一块开发板,变成一套能够提供WebDAV共享、挂载到Windows资源管理器,并支持外部网络访问的轻量文件存储节点。
总结
这次真正跑通的是一条完整的R4S文件访问链:先把iStoreOS写入SD卡,通过双网口方式进入192.168.100.1,再安装GoWebdav,把USB移动硬盘作为共享存储,并通过6086完成浏览器认证和文件播放验证。
局域网链路正常以后,又继续使用RaiDrive把WebDAV挂成Windows网络盘,并从资源管理器直接播放硬盘里的视频。这里“像本地盘一样”指的是入口和操作方式接近本地磁盘,实际速度和延迟仍然由网络、WebDAV、R4S和硬盘共同决定。
远程部分没有停在“公网地址能打开”。后面继续在iStoreOS中安装cpolar及LuCI插件,把6086从随机公网地址切换成固定二级子域名,最后再把这个公网地址重新加入RaiDrive,完成外网网络盘挂载。
这套方案的价值在于把存储位置、WebDAV服务和访问入口放到自己维护的设备上,但自托管不等于绝对安全。长期使用时,管理员密码、WebDAV账号、固定地址传播范围、硬盘备份和系统维护,仍然决定这套“私人云盘”到底能不能放心使用。



