5 分钟跑通 webdav:从零搭一台自己的 WebDAV 文件共享服务器

📅 2026/8/21 21:22:20
5 分钟跑通 webdav:从零搭一台自己的 WebDAV 文件共享服务器
5 分钟跑通 webdav从零搭一台自己的 WebDAV 文件共享服务器【免费下载链接】webdavA simple and standalone WebDAV server.项目地址: https://gitcode.com/gh_mirrors/we/webdav发大文件给同事云盘要会员、邮件塞不下、下载链接半天就失效。与其到处求人不如自己架一台webdav 是一个跑在自己服务器上的轻量 WebDAV 文件共享服务一条命令就能把任意目录变成可远程读写的网盘。webdav 是什么一个把目录变网盘的 WebDAV 服务器先说清它到底是个啥免得后面读着发懵。webdav 用 Go 写编译出来是个独立可执行文件不依赖数据库、不需要装运行时拉起来就是一个 HTTP 服务。它讲的是 WebDAV 这门方言——你平时访问网页用的 HTTP 协议本身只会把页面发给你而 WebDAV 在它上面补了上传、建文件夹、改名、移动、锁定这些文件操作操作系统和不少客户端天生就认得不用额外装软件。所以它的逻辑很直白你指给它一个本地文件夹它把这个文件夹投影成一个网址任何客户端连上这个网址就像多挂了一块网络盘。把服务跑起来最少命令装好并启动 ⚡这一节目标就一个——用最少的步骤把它部署起来确认端口通细节稍后再调。装的时候三选一# 安装任选其一 go install github.com/hacdias/webdav/v5latest # brew install webdav # docker pull ghcr.io/hacdias/webdav:latest # 进到你想要共享的文件夹启动默认只读 webdav --port 6065它会监听0.0.0.0:6065把当前所在文件夹共享出去默认权限只读R而且这个最小启动没配任何账号。记住这只是本地快速验证千万别这么直接暴露到公网。第一次连上去Windows / macOS / Linux 三种连法 装好只是开始这一步是让你亲眼确认它真的能用。最快先在命令行敲一发curl -X PROPFIND -H Depth: 1 http://localhost:6065/PROPFIND 是 WebDAV 里列出目录内容的请求只要回一串带文件名的 XML就说明服务活着了。再切到各系统连上看一眼Windows 打开资源管理器地址栏输\\localhost\6065连别的机器换成对应 IP需先在启用或关闭 Windows 功能里勾上 WebDAV 客户端组件macOS 打开访达走前往 → 连接服务器填http://localhost:6065Linux 用 davfs2 挂载mount -t davfs http://localhost:6065 /mnt/webdav。挂上之后你能直接看到刚才那个文件夹里的东西——到这里它就是个能用的网盘了。账号与权限怎么配地址、目录、用户、权限四件套现在给它上门把账号、目录、权限写进一个config.ymlYAML/JSON/TOML 都行启动时webdav --config config.yml。四个关键项每个一句话address / port监听哪个网卡、哪个端口0.0.0.0对外127.0.0.1只许本机。directory共享的根目录用户没单独指定时都用它想挂多个互不相干的目录就改用directories。users账号列表密码支持明文、{bcrypt}$2y$...、{env}变量名三种写法。permissions全局默认权限C 建、R 读、U 改、D 删可自由组合如CRUDnone表示全禁。address: 0.0.0.0 port: 6065 directory: /data permissions: R users: - username: alice password: {bcrypt}$2y$10$... permissions: CRUD要加密密码就跑webdav bcrypt 你的密码把输出的$2y$...前加上{bcrypt}填进去再建个只读访客时密码写成{env}GUEST_PASSWORD把真实值挪进环境变量更干净。更细的控制靠rules按path或regex给某段路径单独定权限匹配从列表末尾往回找、命中即止且path是相对该用户目录的——比如封掉某个机密目录、把.pdf放开编辑。用户一旦自己配了rules默认用rulesBehavior: overwrite覆盖全局改成append则叠加。还有个容易忽略的点只要users非空服务就自动启用 Basic 认证之前的裸跑就失效了。完整字段见 lib/config.go。从本机到生产环境加密、反代与开机自启 真上线时本机那套只读裸奔肯定不够这节只给结论、不堆配置。加密要么让 webdav 自己开 TLStls: true配上cert、key要么更省心——前面放 Nginx 或 Caddy 做 HTTPSwebdav 只走内网 HTTP推荐后者。走反向代理时记得透传Destination、X-Forwarded-For这些头否则 COPY/MOVE 会 502、日志也记不到真实 IP这时把behindProxy设成true。开机自启交给 systemd 的Restartalways或 Docker 的restart: always再配个 Fail2Ban 盯住日志里的invalid password防暴破。密码务必别用明文一律走 bcrypt 或环境变量。常见问题 FAQ部署跑起来之后下面这几个坑你大概率会踩到。连接超时或打不开先看端口通没通、address是不是0.0.0.0、防火墙放没放行Windows 还要确认开了 WebDAV 客户端组件。连上了却拒绝访问核对用户名密码、该用户的directory和permissions回 401/403 多半是权限没给够。大文件传一半就断通常是客户端或反向代理的超时、请求体上限比如 Nginx 的client_max_body_size太小调大即可。只想给访客只读把permissions设成R敏感目录再叠一条none的rules封掉。每个字段的默认值翻 lib/config.go 就能对照CRUD 各自拦哪些请求翻 lib/permissions.go。从眼前这台只读小网盘起步加上账号、挂到反代后面一个能长期用的 WebDAV 文件共享服务就成了。【免费下载链接】webdavA simple and standalone WebDAV server.项目地址: https://gitcode.com/gh_mirrors/we/webdav创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考