尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

快速搭建个人WebDAV服务器:从启动到长期运行的完整教程

快速搭建个人WebDAV服务器:从启动到长期运行的完整教程 快速搭建个人WebDAV服务器从启动到长期运行的完整教程【免费下载链接】webdavA simple and standalone WebDAV server.项目地址: https://gitcode.com/gh_mirrors/we/webdav手机照片已经涨到几十GB你想备份到家里那台常开的电脑上又不想走网盘按月付费。把支持WebDAV协议的客户端指向一个WebDAV服务器就能让文件由自己保管。开源项目webdav干的就是这件事一个独立的Go程序起一个WebDAV服务自己配用户和权限没有数据库、没有配套客户端。下面带你从3分钟启动一路做到能7x24挂着。它适合谁这一节快速判断它合不合你的场景。webdav面向把自己的文件端给自己的设备装在有树莓派、NAS或一台小服务器上对外暴露一个目录仅此而已。它和大型文件同步套件的区别在于——不自己做客户端、不做版本同步只实现标准WebDAV协议所以Cyberduck、macOS/Windows文件管理器、安卓备份工具这类现成客户端都能直接连。如果你要的是带完整Web界面的网盘去别处找要的是一个稳定、可控的传输端点它就够用。3分钟跑起来这一节用Docker把服务拉起来完成后你能在 http://localhost:6065 访问文件。只有一条命令docker run -p 6065:6065 -v ./data:/data ghcr.io/hacdias/webdav它默认监听 0.0.0.0:6065把当前目录下的 ./data 作为文件根目录。注意此时没有配置文件也就没有开启任何鉴权谁连上都能访问本地试跑完全没问题。不用Docker的话有Homebrew直接brew install webdav有Go环境可以 clone https://gitcode.com/gh_mirrors/we/webdav 后go build自己编译。第一次使用的正确打开方式这一节按启动 → 登录 → 传文件的顺序走一遍做完你就完整体验过一次。先写个带一个用户的配置文件 config.ymlYAML、JSON、TOML 都支持让服务不再裸奔directory: /data users: - username: admin password: changemedirectory是用户登录后看到的文件根目录users里一出现用户基本认证就自动开启。然后把服务器指到这个配置并启动docker run -p 6065:6065 \ -v $(pwd)/config.yml:/config.yml:ro \ -v $(pwd)/data:/data \ ghcr.io/hacdias/webdav -c /config.yml登录验证用curl最省事curl -u admin:changeme http://localhost:6065/返回目录列表而不是401就说明认证通了。接着上传一个文件再拉回来# 把本地 hello.txt 上传到服务器根目录 curl -u admin:changeme -T hello.txt http://localhost:6065/hello.txt # 把文件下载回本地 curl -u admin:changeme -O http://localhost:6065/hello.txt到这里一次完整的启动、登录、传输就闭环了之后接什么客户端都是重复这个流程。只改这几个配置这一节只讲配置文件里必须动的字段文件位置、默认权限、权限规则、密码怎么写其余字段先不管。配置文件不指定路径时会在当前目录和 /etc/webdav/ 下找名为 config 的 json/toml/yaml 文件。两个容易踩坑的默认值监听地址是 0.0.0.0:6065默认权限只有 R只读。directory用户登录后的文件根目录不改就是进程工作目录permissions每个用户的默认权限C创建、R读、U更新、D删除随意组合全功能写 CRUDrules对部分路径单独放收权限按 path 或正则匹配rules: - path: /public/access/ permissions: CRUD - regex: ^..js$ permissions: RU规则是从最后一行往前匹配、命中即止路径相对于该用户自己的目录。密码存法分三档明文仅限测试、bcrypt生产推荐、环境变量保密级别最高。服务器自带生成bcrypt哈希的命令把输出填回配置即可webdav bcrypt 你的密码password: {bcrypt}$2y$10$生成的哈希...放到服务器上长期跑要让机器开机自启、挂了自愈还要在套一层反向代理拿到HTTPS。Nginx反代的关键是转对请求头尤其Destination必须重写成纯路径否则COPY/MOVE会502location / { proxy_pass http://127.0.0.1:6065; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; set $dest $http_destination; if ($http_destination ~ ^https://你的域名(?path(.))) { set $dest /$path; } proxy_set_header Destination $dest; }自启交给systemd单元文件放进 /etc/systemd/system/ 后执行systemctl enable --now webdav[Unit] DescriptionWebDAV Afternetwork.target [Service] Typesimple ExecStart/usr/bin/webdav --config /opt/webdav.yml Restarton-failure [Install] WantedBymulti-user.target服务跑起来之后建议再挂上Fail2Ban对连续输错密码的IP自动封禁防暴力猜解。常见问题端口被占用或不想用6065改配置文件里的port字段或启动时加-p参数docker那头的端口映射同步改一下即可。外网怎么访问域名加反向代理上面Nginx那段同时确认address保持 0.0.0.0别改成127.0.0.1否则只有本机连得上。忘记密码了密码就存在配置文件里直接改掉重启。如果用的是bcrypt哈希明文本来就不可见用webdav bcrypt生成新的替换即可。为什么有的用户删不了文件默认权限只有R只读。把permissions改成CRUD或给对应用户加rules单独放开。不写配置文件会怎样不启用任何鉴权谁连上都能访问只适合本地体验别暴露到网络上。下一步到这里你已经有了一个自己的WebDAV端点。接下来接一个真实客户端——手机备份应用或桌面文件管理器把第一批文件搬上去吧。【免费下载链接】webdavA simple and standalone WebDAV server.项目地址: https://gitcode.com/gh_mirrors/we/webdav创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表