From 36f2058adf68ba850897075354d22b865c74e0e8 Mon Sep 17 00:00:00 2001 From: LY <51789698+Young-Lord@users.noreply.github.com> Date: Fri, 15 Sep 2023 17:43:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8D=9A=E6=96=87=EF=BC=9A?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20Caddy=20=E6=90=AD=E5=BB=BA=20WebDAV=20?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=EF=BC=88Windows,=20Linux=20?= =?UTF-8?q?=E7=AD=89=E5=85=A8=E5=B9=B3=E5=8F=B0=E9=80=9A=E7=94=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60\351\200\232\347\224\250\357\274\211.md" | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 "_posts/2023-09-15-\344\275\277\347\224\250Caddy\346\220\255\345\273\272WebDAV\346\234\215\345\212\241\345\231\250\357\274\210Windows,Linux\347\255\211\345\205\250\345\271\263\345\217\260\351\200\232\347\224\250\357\274\211.md" diff --git "a/_posts/2023-09-15-\344\275\277\347\224\250Caddy\346\220\255\345\273\272WebDAV\346\234\215\345\212\241\345\231\250\357\274\210Windows,Linux\347\255\211\345\205\250\345\271\263\345\217\260\351\200\232\347\224\250\357\274\211.md" "b/_posts/2023-09-15-\344\275\277\347\224\250Caddy\346\220\255\345\273\272WebDAV\346\234\215\345\212\241\345\231\250\357\274\210Windows,Linux\347\255\211\345\205\250\345\271\263\345\217\260\351\200\232\347\224\250\357\274\211.md" new file mode 100644 index 0000000..82e6a16 --- /dev/null +++ "b/_posts/2023-09-15-\344\275\277\347\224\250Caddy\346\220\255\345\273\272WebDAV\346\234\215\345\212\241\345\231\250\357\274\210Windows,Linux\347\255\211\345\205\250\345\271\263\345\217\260\351\200\232\347\224\250\357\274\211.md" @@ -0,0 +1,79 @@ +--- +tags: [Caddy, WebDAV] +title: 使用 Caddy 搭建 WebDAV 服务器(Windows, Linux 等全平台通用) +slug: caddy-webdav +last_modified_at: 2023-9-15 +--- + +## 前言 + +IIS的WebDAV太烂,于是有了本博文。以下步骤使用的环境为Windows Server 2012 R2。 + +## 安装 + +### 下载 + +先[在官方页面下载](https://caddyserver.com/download)Caddy可执行文件,记得下载前选中`mholt/caddy-webdav`这一插件。 +把这个文件重命名为`caddy.exe`后丢到这里:`C:\Program Files\Caddy\caddy.exe` + +### 自启动 + +根据[官方教程](https://caddyserver.com/docs/running#windows-service),安装为服务: + +```shell +sc.exe create caddy start= auto binPath= "C:\Program Files\Caddy\caddy.exe run" +``` + +> 这样做会有个[漏洞](https://cloud.tencent.com/developer/article/2120444),好孩子不要学。 + +### Caddyfile + +把以下文件丢到和`caddy.exe`同一目录下即可 + +```plain +{ + order webdav last +} +:53091 { + handle_path /files/* { + file_server browse + } + redir /files /files/ + + handle /webdav/* { + webdav { + root E:/ftp + prefix /webdav + } + } + redir /webdav /webdav/ + + basicauth /webdav/* { + ftp $2a$14$8kAfyt3R70WGiKl.gxdrKeMxGGQpqRjy2bAvsrkkfIyW5Y15rDkPi + } +} +``` + +具体来说: + +- `:53091`:绑定到`0.0.0.0:53091` +- `handle_path /files/*`:在`/files`路径下显示一个Web页面用于浏览器访问 +- `handle /webdav/*`:在`/webdav`路径下处理`WebDAV`服务,根目录为`E:/ftp` +- `basicauth /webdav/*`:只允许用户名为`ftp`、密码为`a`的用户访问。这里的密码已经hash过,可以使用`caddy hash-password`生成。 + +## 使用 + +### Windows + +首先解除一些限制[^1]: + +```shell +reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters /v BasicAuthLevel /t REG_DWORD /d 2 /f +reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters /v FileSizeLimitInBytes /t REG_DWORD /d 0xffffffff /f +net stop webclient +net start webclient +``` + +右键“此电脑”,选择“映射网络驱动器”,文件夹写`http://192.168.66.66:53091/webdav`,勾选“使用其他凭据连接”。在弹出的登录提示中用户名输入“ftp”,密码输入“a”。 + +[^1]:[win10原生webdav设置的问题](https://juejin.cn/post/6992463338160521230)