news 2026/8/22 2:40:48

如何自建 WebDAV 服务器:5 步跑起个人文件服务,手机电脑都能连

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何自建 WebDAV 服务器:5 步跑起个人文件服务,手机电脑都能连

如何自建 WebDAV 服务器:5 步跑起个人文件服务,手机电脑都能连

【免费下载链接】webdavA simple and standalone WebDAV server.项目地址: https://gitcode.com/gh_mirrors/we/webdav

在多台设备之间传文件、又不想给网盘开会员、更不想把私人资料放到公共云上时,自建一台 WebDAV 服务器是最直接的办法。这个项目就是一个独立的 WebDAV 服务:一份配置加一个可执行文件,跑起来后,任何支持 WebDAV 的客户端都能连上它读、写、删文件。

先认识一下:适合谁,跑起来是什么样子

它是一个单进程的 WebDAV 服务器,没有数据库、没有管理后台,适合部署在一台家用主机、树莓派或便宜的 VPS 上,个人和小团队够用。跑起来之后,它就是一个监听 6065 端口的目录服务:你把文件放进服务器上某个文件夹,客户端连上后就能直接看到、拖进拖出,浏览界面就是你客户端自己的文件管理器。

挑一条安装路径:有 Docker 和无 Docker 怎么选

看机器上有什么环境就走哪条路。有 Docker 的机器,直接拉项目发布的镜像,把配置文件和数据目录挂载进容器就能用,后面所有配置写法完全一样。没有 Docker 的机器,用 Go 工具链从源码编译,编译完得到一个独立二进制,后面各章按这条路演示:

git clone https://gitcode.com/gh_mirrors/we/webdav cd webdav && go build

clone 地址不用改,编译出的 webdav 二进制就在当前目录,下面直接以./webdav调用。

第一次启动:写最小配置并验证成功

在服务目录里建一个config.yml,第一次只需要这四个字段:

address: 0.0.0.0 port: 6065 directory: ./data users: - username: admin password: admin

directory改成你真正存文件的目录,password先随便写一个,后面会换成加密密码。

保存后启动并验证:

./webdav -c config.yml curl -I -u admin:admin http://127.0.0.1:6065/

curl 那行的账号密码改成你配置里的值。终端打印出 listening 日志、curl 返回 200,说明服务已就绪;不带-u参数访问返回 401 是正常现象,说明认证已生效。

连上客户端,传第一份文件

新手最容易卡在这一步,其实只差一个地址。以 macOS 为例,不用装任何软件:打开访达,顶部菜单"前往"→"连接服务器",输入dav://你的服务器IP:6065,在弹窗里填配置里的用户名和密码,你的目录就会像网络共享一样出现在访达里。

Windows 在资源管理器地址栏输入\\服务器IP:6065\(需要系统自带的 WebClient 服务在运行);手机上装任意一款 WebDAV 客户端,服务器地址填http://服务器IP:6065,账号密码同上。连上后随便拖一个文件进去,再到服务器directory对应的文件夹里确认文件出现了,第一份文件就算传成功了。

进阶配置:多用户、目录权限和加密密码

三个字段,各对应一个"什么时候需要":要第二个人用,就在users列表里加一个账号,用directory给每人一个独立目录;要限制某人只能读某些内容,就给他配permissions(C 创建、R 读、U 改、D 删,可组合,如RU)或rules按路径细分权限;确定要放外网,就别再用明文密码。

生成加密密码用自带命令,输出的哈希直接填回配置:

./webdav bcrypt '你的密码'

'你的密码'换成真实密码,填回配置时注意保留{bcrypt}前缀:

users: - username: admin password: "{bcrypt}$2y$10$xxxxxxxxxxxxxxxxxxxx" directory: /data/admin permissions: CRUD

hash 那行整段替换成上一步命令的输出。

放到服务器上长期跑:反代 HTTPS 和开机自启

长期跑要做两件事。第一件是开机自启,用 systemd 托管,服务文件里关键的[Service]段这样写([Unit][Install]段按标准模板补上即可):

[Service] Type=simple User=root ExecStart=/usr/bin/webdav -c /opt/webdav.yml Restart=on-failure

ExecStart里的二进制路径和配置位置改成你自己的实际位置。第二件是把入口挪到反代后面做 HTTPS:在 Nginx 里加一个 location 把请求转到127.0.0.1:6065,并透传HostX-Forwarded-For头;如果客户端会用 COPY/MOVE,还要按项目 README 里的示例重写Destination头,否则部分操作会报 502。

常见坑:端口被占、外网不通、密码前缀漏了

6065 端口被占。启动时报 bind 失败,先用ss -lntp查谁占着这个端口,然后把配置的port换成一个空闲端口。

本地能连、外网不通。先在本机用 curl 确认服务本身正常,再依次检查三处:address是不是写成了127.0.0.1(要对外访问就得是0.0.0.0)、系统防火墙、云服务器安全组有没有放行对应端口。

换了 bcrypt 密码却登录不上。检查配置里密码是否带{bcrypt}前缀、哈希是否以$2y$10$开头且没有被断行截断;漏了前缀就会被当成明文密码去比对,永远对不上。

接下来可以做两件事:再连一台设备(手机或另一台电脑),用同一个账号确认多端一致;确定要长期对外用,就按上一节把入口换成 HTTPS。

【免费下载链接】webdavA simple and standalone WebDAV server.项目地址: https://gitcode.com/gh_mirrors/we/webdav

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 2:39:02

智能体驱动的价值流仿真:从静态映射到动态认知的架构与实现

1. 项目概述:当VSM模拟遇上“智能体”洞察如果你正在研究复杂系统的建模与仿真,特别是那些涉及供应链、生产流程或服务设计的领域,那么“价值流图”和“离散事件仿真”这两个词对你来说一定不陌生。传统的VSM(Value Stream Mappin…

作者头像 李华
网站建设 2026/8/22 2:37:49

双流记忆与调和架构:解决AI健康教练临床建议不一致性难题

1. 项目概述:当健康教练AI“说错话”时,我们如何发现?在数字健康领域,AI驱动的健康教练代理正变得越来越普遍。它们能提供7x24小时的饮食建议、运动指导和生活方式干预,听起来很美好,对吧?但作为…

作者头像 李华
网站建设 2026/8/22 2:37:32

RAG与微调混合策略:构建高精度大模型应用的工程实践

1. 项目概述:当RAG遇上Fine-Tuning,大模型落地的“双引擎”策略最近和几个做AI应用落地的朋友聊天,大家普遍有个共识:单纯靠提示工程(Prompt Engineering)或者微调(Fine-Tuning)来驱…

作者头像 李华
网站建设 2026/8/22 2:37:16

3步搞定100+网站小说批量下载:novel-downloader 完整指南

3步搞定100网站小说批量下载:novel-downloader 完整指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 列车钻了隧道,你追更的小说卡在最后一章,…

作者头像 李华
网站建设 2026/8/22 2:36:32

五一建模C题解析:从煤矿冲击地压预测看时序数据分类实战

1. 项目概述:从赛题到实战的完整推演五一建模比赛C题“煤矿深部开采冲击地压危险预测”一出来,很多同学可能有点懵。这题目听起来非常专业,感觉离我们日常生活很远,是不是需要非常深厚的矿业工程背景才能做?其实不然。…

作者头像 李华