hacdias WebDAV 5.17 介绍与选型指南

hacdias WebDAV 5.17 介绍与选型指南:基于官方公开资料溯源的 Go 单二进制 WebDAV 服务器解析——版本信息基准、配置驱动的服务架构、用户权限与 TLS 等功能特性、官方快速上手方式、适用场景与限制,以及与 WsgiDAV、Nginx、Apache httpd、Rclone 的量化选型对比。

hacdias/webdavhacdias/webdav2026/10/19

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.17Go 单二进制 WebDAV 服务器MIT
WsgiDAVPython 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/webdavWsgiDAVNginxApache httpdRclone serve webdav
开源许可MITMIT2-clause BSDApache-2.0MIT
GitHub stars5.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)
技术栈GoPython(WSGI)CCGo
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,建议从本站配置详解文档入手掌握权限规则。

八、参考链接