OpenWrt 分享文件的方法有很多,适合外网访问管理的选择却很少。WebDAV 服务是少有的比较优秀的选择。在 OpenWrt 上实现 WebDAV 服务的方法有多种,本文暂且只讨论使用 Caddy 完成。
Caddy v1
首先到 Caddy 官网下载对应版本,注意插件选项中需要勾选 http.webdav
。将下载下来的 Caddy 程序拷贝到 /usr/bin/caddy
,并注意给予执行权限 chmod +x /usr/bin/caddy
。
然后创建 Caddy 配置文件 /etc/caddy/Caddyfile
,如下配置。
0.0.0.0:8080 {
basicauth / 用户名 密码
webdav /webdav {
scope /mnt
}
}
之后设置系统服务,以便开机启动。创建文件 /etc/init.d/caddy
,内容如下。
#!/bin/sh /etc/rc.common
START=99
SERVICE_USE_PID=1
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
start() {
service_start /usr/bin/caddy -conf /etc/caddy/Caddyfile
}
stop() {
service_stop /usr/bin/caddy
}
创建之后不要忘记添加执行权限 chmod +x /etc/init.d/caddy
,设置开机启动 /etc/init.d/caddy enable
,启动服务 /etc/init.d/caddy start
。
Caddy 的 WebDAV 服务到此配置完成。
Caddy v2
官网下载链接:https://caddyserver.com/download
启动命令为 caddy run --config Caddyfile
,可以参考 v1 的脚本,替换掉之前的 caddy -conf Caddyfile
即可。
v2 的配置文件格式有所变化:
{
order webdav last
}
:8080 {
encode gzip
basicauth {
用户名 加密格式密码
}
webdav {
root /mnt
prefix /webdav
}
}
其中密码不能直接填写明文,需要用命令转换成加密格式才行:
caddy hash-password --plaintext 明文密码
其余配置均可参考 v1 版本。