辰·技术空间

极空间 WebDAV 功能使用和示例

极空间 WebDAV 及证书部署

为什么要这么折腾

先把动机说清楚,省得后面忘了自己在干嘛:

  • 为什么用 WebDAV:它是 HTTP 之上的标准文件协议,跨平台,最重要的是按几个按钮就可以在极空间上启用。Obsidian 的 Remotely Save、KeePass2、RaiDrive、各类备份工具都原生支持,是把 NAS 当"标准云盘"用的最低成本通道。
  • 为什么值得折腾:使用 NAS 本就是为了将数据搬到离自己更近的地方,更安全更可控,传输更简单。在外网环境有一个文件服务接口是必要的,可以用来同步多平台应用的数据,比如 Obsidian、KeePass2。
  • 为什么一定要 HTTPS:WebDAV 的认证默认是 Basic Auth,账号密码近乎明文。一旦走公网或不可信 Wi-Fi,明文 HTTP 等于把钥匙挂在门外。上了 TLS,链路才谈得上"安全"。
  • 为什么开独立账号:主要是怕外部入侵,即使入侵者是获得了笔记本账号内的存储空间的访问权限,也看不到其他文件。
  • 为什么开防火墙:对外暴露端口是一个很危险的事,所以要减少暴露面。防火墙用来把访问来源、端口收窄到"够用就行"。

整体结构长这样:

flowchart LR
    subgraph 客户端
        A[Obsidian<br/>Remotely Save]
        B[KeePass2 / Keepass2Android]
        C[其他客户端]
    end
    A & B & C -->|HTTPS 5006| FW[极空间防火墙]
    FW --> DAV[WebDAV 服务<br/>独立账号 webdav-svc]
    DAV --> SHARE[共享文件夹<br/>obsidian / keepass]
    CERT[SSL 证书<br/>Let's Encrypt] -.挂载.-> DAV
    DDNS[DDNS 域名] -.解析.-> FW

第一步:开启 WebDAV 服务

进入极空间管理后台(网页端 zconnect 或客户端均可),路径:

系统设置 → 文件及共享服务 → WebDAV

把 WebDAV 服务的开关打开。这里有两个关键信息要记下来:

  • HTTP 端口默认 5005(明文,不要对外用,特别是密码文件)
  • HTTPS 端口默认 5006(加密,对外只放这个)

端口可以改,有条件的也建议改下,后面客户端和防火墙都要用。

Pasted image 20260603145414.png

图 1:系统设置 → 文件及共享服务 → WebDAV,开启服务并确认 5005/5006 端口

提示:极空间 ZOS 系统更新较频繁,菜单文字和端口默认值可能随固件版本略有差异。以你面板里实际显示的端口为准,别照抄。

此时在局域网内就能先验证一下。用浏览器或 RaiDrive 访问:

http://NAS局域网IP:5005/

能弹出账号密码框、输入后能看到文件,就说明服务本身没问题。注意现在还是明文 HTTP,仅供内网自测,下一步就把它换掉。

Pasted image 20260605092026.png

第二步:用 HTTPS 取代 HTTP(部署证书)

这一步是整篇的重点,也是最容易卡住的地方。要让外网访问走 https://域名:5006/,需要三样东西:一个域名 + 一张可信证书 + 把证书挂到服务上

2.1 先有域名和 DDNS

家庭宽带的公网 IP 多数是动态的,所以需要 DDNS(动态域名解析)把固定域名绑到不断变化的 IP 上。如果没有IPv4公网环境,可以试下IPv6环境,但是对使用环境有限制,有时候单位是v4环境就不能用了。

  • 域名网上有很多免费的和低价的域名,国内的阿里云、腾讯云或者国外的cloudflare
  • 极空间已经内置了 SSL 证书功能,DDNS 功能也有内置的版本,能用官方的就优先用官方(省心)。

2.2 申请证书(Let’s Encrypt)

系统设置 → 网络设置 → 证书管理 → 上传

提示:具体可以看参考第三篇文章

  1. 在线申请
  2. 选证书颁发机构 Let’s Encrypt(免费,有效期 90 天)。
  3. 验证方式选 DNS 验证,按你域名的托管服务商(Cloudflare、阿里云、腾讯云等)填入对应的 ID / Token(这个步骤如果是阿里云主要是分配权限,申请AccessKey)。
    ![[Pasted image 20260605093423.png]]
  4. 域名列表通常填两行:主域名泛域名*.yourdomain.com)。
  5. 提交后等几分钟,看到"证书申请成功 / 已签发时间 + 到期时间"即表示拿到证书。

Let’s Encrypt 证书 90 天到期,配一次基本不用再管。(确实省心)

2.3 把证书挂到 WebDAV 服务上

证书申请下来还要"挂上去"才生效:用极空间官方 SSL 功能的,无需操作会自动使用这个证书。

2.4 路由器端口转发

证书挂好后,外网还进不来——路由器默认不会把外部流量放进内网。需要在路由器后台做端口转发:把外部端口转发到极空间的 5006(HTTPS)

只转发 5006,绝不转发 5005——5005 是明文 HTTP,一律不出内网。

如果是 IPv6 或没有公网 IPv4,端口转发的做法不同(IPv6 直接放通防火墙、或用 STUN 穿透),按你的网络环境调整。

2.5 验证证书

浏览器打开 https://你的域名:5006/,地址栏出现安全小锁、不再提示"不安全",证书部署就成了。

sequenceDiagram
    participant U as 客户端
    participant R as 路由器(转发5006)
    participant Z as 极空间 WebDAV(HTTPS)
    U->>R: https://域名:5006
    R->>Z: 转发到内网 5006
    Z-->>U: 出示 Let's Encrypt 证书
    Note over U,Z: TLS 握手成功 → 全程加密传输

第三步:新增独立账号(最小权限)

极空间提供了多账号系统,可以为不同用户创建账号,对权限来说就是创建了不同权限的账号。

这个隔离特性正好被我们利用:给 WebDAV 单开一个账号,这条对外通道天生就和主账号数据隔离开了。

操作:系统设置 → 用户管理(账号管理)→ 新增用户

  • 用户名起个一眼能认出用途的,比如 webdav-svc
  • 设一个长且随机的强密码(这账号要走公网,密码强度直接等于安全底线)。
  • 不要直接把文件放在账号里,使用团队空间里的文件夹,这样主账号可以直接管理文件内容,如果文件直接放在子账号里,即使共享给主账号,也会无法编辑。
  • 每一种内容(比如笔记、密码本)单独建一个账号存储,从主账号分配不同的文件和权限给他们。

Pasted image 20260605094210.png


第四步:开启防火墙

极空间自带防火墙。对外开了端口,这一步就不是可选项。

操作:系统设置 → 安全 → 防火墙(具体位置随版本可能略有不同)

收窄的原则就一句话:只放必要的端口和来源

  • 对外只需要放 WebDAV 的 HTTPS 端口(5006/或你映射后的端口)
  • 明文 5005 不对外,仅限内网。
  • 如果你的常用客户端 IP 相对固定(比如固定办公网络),可以进一步把规则限制到特定来源 IP 段。

案例:把 KeePass2 的密码库搬到nas上增强隐私性

前面的地基打好,这一步就很轻。KeePass 2.x 原生支持 WebDAV 路径,不需要任何额外网盘客户端。

  1. 在团队空间新建一个文件夹,设置相应用户的权限,放入文件。
  2. 在浏览器输入webdav的地址,从浏览器里先找到文件,不算难找,第一个界面是存储区域的选择,如果在团队空间,那文件在public目录下。
  3. 复制文件地址到 KeePass2 的数据库网址上

Pasted image 20260605100059.png

桌面端 KeePass2

  1. 先把 .kdbx 数据库文件放进共享出来的 keepass/ 目录(可以先用网页端或 RaiDrive 上传)。
  2. 打开 KeePass2:文件 → 打开 → 打开网址(URL)
  3. 填写:
    • URLhttps://你的域名:5006/keepass/库名.kdbx(务必用 https)
    • 用户名webdav-svc
    • 密码:该账号的密码
  4. 确认后输入数据库主密码,之后的用法和打开本地库没有任何区别

KeePass 自带同步合并机制:多个终端同时打开同一个库,保存时会弹出"同步 / 覆盖 / 取消",不用担心多端互相覆盖。再加上 .kdbx 本身是 AES-256 加密的,即便文件被人拿到,没有主密码也打不开——前提是你的主密码足够强。

安卓端(Keepass2Android)

打开文件 → 选择 http(s)/WebDAV → 填 https://域名:5006/keepass/库名.kdbx + 账号密码 → 输入主密码解锁。逻辑和桌面端一致。

flowchart TD
    PC[桌面 KeePass2] -->|打开网址 URL https| DAV[(极空间 WebDAV<br/>keepass/库.kdbx)]
    AND[Keepass2Android] -->|WebDAV https| DAV
    DAV --> SYNC{保存时}
    SYNC -->|检测到远端变更| MERGE[同步合并<br/>避免互相覆盖]

常见坑与排错(含 Obsidian Remotely Save)

把这条通道接到客户端时,绝大多数"连不上"都集中在下面几点:

  • URL 格式写错。Remotely Save / KeePass 的地址必须是 协议://地址:端口/目录路径,目录别漏,端口别漏。例如 https://nas.example.com:5006/obsidian。少写目录或端口是最高频的错误。
  • 别拿 5005 当 HTTPS 用。5005 是明文 HTTP,5006 才是 HTTPS,端口和协议要对上。
  • 平台兼容性。部分插件在 iOS 上的支持不如安卓完整,遇到问题先确认客户端版本与平台是否被支持。
  • 连不通先分段排查:先在内网用 http://内网IP:5005 验证 WebDAV 服务本身 → 再用浏览器开 https://域名:5006 验证证书与转发 → 最后才回到客户端填配置。一段段缩小范围,比盲目改配置快得多。

设备型号:z2pro

参考

极空间官网-防火墙说明
Obsidian Remotely Save设置webdav问题总汇 - 知乎
无公网ip,如何实现远程异地高速访问NAS? - 知乎