hacdias WebDAV 5.17 介绍与选型指南
hacdias WebDAV 5.17 介绍与选型指南:基于官方公开资料溯源的 Go 单二进制 WebDAV 服务器解析——版本信息基准、配置驱动的服务架构、用户权限与 TLS 等功能特性、官方快速上手方式、适用场景与限制,以及与 WsgiDAV、Nginx、Apache httpd、Rclone 的量化选型对比。
hacdias WebDAV 5.17 介绍与选型指南
目标:面向文件共享与远程挂载场景,基于官方公开资料(GitHub 官方仓库 hacdias/webdav 及其 README)梳理 hacdias 开发的 WebDAV 服务器(下称 hacdias/webdav)的版本信息、架构、功能特性、快速上手路径与选型对比。本文为认知类介绍文档,全部信息均来自官方公开渠道溯源,未做本地安装与运行实测,查询日期为 2026-10-19。
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方公开资料溯源(GitHub 官方仓库 hacdias/webdav 的 Releases 与 README;该项目无独立官网,README 即官方文档),本文不做本地安装与运行实测。
- 版本结论:当前最新版本为 v5.17.1(2026-10-10 发布),5.x 稳定线维护节奏约每月一个版本。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新补丁 | v5.17.1(2026-10-10,修复从环境变量正确读取用户权限与规则) | github.com/hacdias/webdav/releases |
| 近期发版时间线 | v5.17.0(2026-10-03)、v5.16.1(2026-09-26)、v5.16.0(2026-09-20)、v5.15.1(2026-09-04)、v5.15.0(2026-08-28)、v5.14.2(2026-08-05) | github.com/hacdias/webdav/releases |
| 代码仓库 | hacdias/webdav(Go,创建于 2017-08-03,2026-10-16 仍有提交) | github.com/hacdias/webdav |
| 开源许可 | MIT License | 仓库 LICENSE |
| 社区热度 | 5.9k stars(shields.io,2026-10-19,与 GitHub API 5,925 口径一致) | shields.io |
| 官方文档 | 仓库 README(无独立官网) | github.com/hacdias/webdav#readme |
1.3 官方来源清单
| 来源 | 地址 |
|---|---|
| 源码仓库 | https://github.com/hacdias/webdav |
| 发行页 | https://github.com/hacdias/webdav/releases |
| 安装与运行说明 | https://github.com/hacdias/webdav#readme |
二、软件概述
本文介绍的是 hacdias/webdav v5.17.1(当前 5.x 线最新补丁,2026-10-10 发布)。
hacdias/webdav 是一款用 Go 编写的轻量级 WebDAV 服务器:单个二进制文件加一份配置文件即可对外提供标准 WebDAV 协议服务,供文件管理器、网盘客户端等远程挂载与读写文件。项目由 hacdias 开发维护,以 MIT 许可发布,自 2017 年开源至今,定位是"简单、可配置、开箱即用"的文件服务组件。
项目在 GitHub 上拥有 5.9k stars(shields.io,2026-10-19 实查)。它不追求企业级邮件、数据库或全功能网盘,而是把"把一个目录以 WebDAV 协议安全地共享出去"这一件事做完整:多用户、按用户与路径的权限规则、TLS、反向代理支持与 fail2ban 友好日志一应俱全。
三、核心架构
3.1 单二进制服务进程
整个服务器是一个 Go 编译的单二进制:无外部依赖、无数据库,用户与权限规则直接写在配置文件中。启动时读取配置并监听指定地址端口,以 HTTP(S) 提供 WebDAV 方法集(官方 README)。
3.2 配置驱动的目录与用户模型
- 配置格式:支持 YAML、JSON、TOML 三种格式;字段命名约定为顶层 camelCase、嵌套 snake_case(官方 README)。
- 服务根目录:directory 字段指定默认工作目录(容器形态下对应 /data)。
- 用户与权限:users 用户对象下可配置每个用户的口令、permissions 权限与 rules 路径规则,实现"哪些用户对哪些路径可读/可写"的细粒度控制(官方 README,与本站配置详解文档口径一致)。
3.3 部署形态
官方提供四种获取方式(README 实查):从 Releases 下载对应平台二进制;go install github.com/hacdias/webdav/v5@latest 源码安装;Homebrew(brew install webdav);以及容器镜像 ghcr.io/hacdias/webdav(或 Docker Hub 的 hacdias/webdav)。Linux 上通常再以 systemd 托管为常驻服务。
四、功能特性
4.1 WebDAV 协议服务
提供标准 WebDAV 方法支持,兼容主流客户端的远程挂载与文件同步场景;支持 partial updates(If-Range 相关的局部更新,README 提及),便于大文件的高效传输。
4.2 多用户与权限规则
users 配置可为每个用户单独设置口令、权限与路径规则(rules),例如允许某用户只读某子目录;权限体系覆盖读写行为控制,是同类轻量方案中配置粒度较完整的一类(官方 README,字段细节可参考本站《hacdias WebDAV 配置参数详解》)。
4.3 接入安全与运维
- TLS:配置 tls/cert/key 即启用 HTTPS。
- 反向代理:behindProxy 开启后信任代理并从 X-Forwarded-For 读取真实 IP 记录日志;noSniff 控制响应嗅探行为。
- fail2ban 友好:日志中包含认证失败等关键信息,便于配合 fail2ban 做暴力破解防护(README 提及)。
- 调试:debug 开关输出详细日志。
4.4 5.x 系列状态
5.x 线保持高频率小步迭代:2026 年 8 月至 10 月间连续发布 v5.14.2 至 v5.17.1 共七个版本(官方 Releases 实查),v5.17.1 修复了环境变量方式配置用户权限与规则的问题。项目活跃度高,问题响应快,适合跟随升级。
五、快速上手
以下内容转述自官方仓库 README(https://github.com/hacdias/webdav#readme ),本文不做本地实测。
5.1 获取
四种官方安装路径任选其一:Releases 页下载二进制、go install 源码安装、Homebrew 安装,或使用官方镜像 ghcr.io/hacdias/webdav。
5.2 最小配置与运行
编写 config.yml(官方 README 示例字段):
address: 0.0.0.0
port: 6065
directory: /data
以容器形态启动(官方 README 给出的等价命令):
docker run \
-p 6065:6065 \
-v ./config.yml:/config.yml:ro \
-v ./data:/data \
ghcr.io/hacdias/webdav -c /config.yml
二进制形态则直接 webdav -c /path/to/config.yml 启动,可用 webdav --help 查看参数。
5.3 添加用户与验证
在配置中追加 users 段定义用户名、口令与权限规则后重启服务;用任意 WebDAV 客户端(如文件管理器挂载或 curl)以该用户访问服务地址验证读写行为是否符合规则。完整字段说明见本站《hacdias WebDAV 配置参数详解》。
六、适用场景与限制
6.1 适用场景
- 个人/小团队自建网盘后端:配合桌面文件管理器、移动端 WebDAV 客户端远程读写文件。
- 服务器间文件交换:为脚本与定时任务提供标准的 HTTP 文件读写通道。
- 只读资料分发:用权限规则将文档目录以只读方式共享给指定用户。
- 嵌入式与轻量设备:单二进制、零依赖,资源占用低。
6.2 限制与注意事项
- 无 Web 管理界面:全部配置走文件,改配置需重启生效;对偏好图形化管理的用户不如全功能网盘直观。
- 非全功能网盘:不含分享链接、缩略图、在线预览、同步引擎等网盘特性。
- 口令以配置为准:用户与口令在配置文件中管理,注意配置文件本身的权限与保密。
- 公网暴露需加固:建议全程 TLS 并配合 fail2ban、反向代理限流等手段,behindProxy 场景务必正确配置以保留真实来源 IP。
- 高并发场景需评估:单进程单机形态,无内置集群能力,超大规模文件服务应评估专业对象存储方案。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| hacdias/webdav 5.17 | Go 单二进制 WebDAV 服务器 | MIT |
| WsgiDAV | Python WSGI 实现的 WebDAV 服务器 | MIT |
| Nginx | 通用 Web 服务器,DAV 模块化支持 | 2-clause BSD |
| Apache httpd | 通用 Web 服务器,mod_dav 完整实现 | Apache-2.0 |
| Rclone(serve webdav) | 多后端存储网关,WebDAV 为其暴露形态之一 | MIT |
7.2 量化对比(2026-10-19 实查)
| 维度 | hacdias/webdav | WsgiDAV | Nginx | Apache httpd | Rclone serve webdav |
|---|---|---|---|---|---|
| 开源许可 | MIT | MIT | 2-clause BSD | Apache-2.0 | MIT |
| GitHub stars | 5.9k(shields.io) | ≈1.2k(shields.io) | ≈32k(shields.io) | ≈4k(GitHub 镜像仓,shields.io) | ≈60k(shields.io) |
| 最新版本 | v5.17.1(2026-10-10) | v4.3.5(2026-06-27) | 稳定 1.30.6 / 主线 1.31.7(nginx.org) | 2.4.69(2026-10-01,downloads.apache.org) | v1.75.2(2026-10-09) |
| 技术栈 | Go | Python(WSGI) | C | C | Go |
| WebDAV 完整度 | 原生完整支持 | Class 1/2 完整(域控制器/ACL) | 内置模块仅 PUT/DELETE/MKCOL/COPY/MOVE,完整版需第三方 dav-ext 模块 | mod_dav + mod_dav_fs 完整支持 | 原生完整支持(网关形态) |
| 形态侧重 | 配置文件驱动的独立文件服务 | Python 生态内嵌/挂 Gunicorn 部署 | 已有 Nginx 栈的极简补充 | 已有 Apache 栈的成熟方案 | 把 S3/SMB 等任意后端以 WebDAV 暴露 |
(stars 取自 shields.io 公开口径;版本取自各项目官方发布渠道;许可取自各自仓库 LICENSE。)
7.3 选型建议
要一个独立、极简、配置即所得的 WebDAV 文件服务,hacdias/webdav 是轻量场景的首选;Python 技术栈内嵌或需要 ACL 域控制器的,选 WsgiDAV(可参考本站《WsgiDAV 配置参数详解》);只是想在现有 Nginx/Apache 上顺带暴露目录,用其内置模块或官方扩展即可,不必额外引入独立进程;而核心诉求是"把多种存储后端统一以 WebDAV 暴露"的网关场景,Rclone 的 serve webdav 更合适。若确定选 hacdias/webdav,建议从本站配置详解文档入手掌握权限规则。
八、参考链接
- 源码仓库:https://github.com/hacdias/webdav
- 发行页:https://github.com/hacdias/webdav/releases
- WsgiDAV 仓库:https://github.com/mar10/wsgidav
- Nginx 下载页:https://nginx.org/en/download.html
- Apache httpd 下载页:https://downloads.apache.org/httpd/
- Rclone 仓库:https://github.com/rclone/rclone