OpenList 的 WebDAV 挂载点不是根路径

举报
yd_258587103 发表于 2026/11/13 22:53:24 2026/11/13
【摘要】 手机播放器挂载 OpenList 一直失败,日志只有一行 PROPFIND 405。用 curl 对比两个地址,一分钟定位到原因:WebDAV 端点不是根路径。附排查顺序和几个常见坑。

一、缘起:能打开网页,却挂不上

我在小主机上用 Docker 跑了一个 OpenList,网页端一直正常,手机播放器通过 WebDAV 挂载却总失败。播放器只给了一句很含糊的"连接失败",抓包才看到关键一行:

PROPFIND / HTTP/1.1  405 Method Not Allowed

第一反应是账号密码错了。但 401 才和鉴权有关,405 是"方法不允许"——服务器收到了请求,只是这个路径不接受 PROPFIND 这个方法。方向立刻就变了:不是身份问题,是地址问题。

二、405 和 401 别混

WebDAV 客户端连上服务器,第一件事不是上传下载,而是发 PROPFIND 问"这个目录里有什么"。这个方法的响应码能直接说明问题:

响应码 含义 通常原因
401 未授权 用户名/密码错、没带 Basic Auth
403 禁止访问 账号没有该目录权限
404 路径不存在 地址拼错、容器没起
405 方法不允许 路径不是 WebDAV 端点
207 多状态(正常) 目录列表返回成功

看到 405,基本可以把"改密码"这条路划掉了。

三、两个地址一对比,原因就出来了

不用装客户端,直接用 curl 发同样的请求:

curl -s -o /dev/null -w '%{http_code}\n' -X PROPFIND \
  -H 'Depth: 1' -u '用户名:密码' \
  http://192.168.1.10:5244/

根路径返回 405。把地址换成 /dav 再试:

curl -s -o /dev/null -w '%{http_code}\n' -X PROPFIND \
  -H 'Depth: 1' -u '用户名:密码' \
  http://192.168.1.10:5244/dav/

这次返回 207 Multi-Status,响应体里是标准的 XML 目录列表,说明 WebDAV 服务本身完全正常。

原因很简单:OpenList 的 WebDAV 端点固定在 /dav,根路径留给 Web UI。 播放器里填 http://192.168.1.10:5244,它就会去请求根路径,于是稳定拿到 405。

把挂载地址改成:

http://192.168.1.10:5244/dav

用户名和密码填 OpenList 的管理员账号,保存后立刻能浏览目录。

四、顺手记下几个容易踩的点

末尾斜杠。 多数客户端对 /dav 和 /dav/ 都能处理,但个别实现会把两者当成不同路径。填 /dav 不行时,加个斜杠再试一次。

端口别写成 Web UI 的访问端口。 这里的 5244 是容器映射出来的端口,Web UI 和 WebDAV 共用同一个端口,区别只在路径。如果改过 ports 映射,客户端里也要跟着改。

Basic Auth 是必须的。 WebDAV 挂载走的是 HTTP Basic 认证,账号密码会随请求头发送。如果只在局域网用问题不大;要暴露到公网,记得套一层 HTTPS,别让密码明文过网。

根目录能列不代表能写。 207 只说明"读得到"。上传失败要单独看账号权限和存储驱动的写权限,别把两件事混在一起排查。

五、总结

  1. WebDAV 报 405 先查路径,不查密码;PROPFIND 打到的必须是真的 WebDAV 端点。
  2. OpenList 的端点是 /dav,根路径是网页界面,一条 curl 就能验证。
  3. 排查顺序建议:405/401 分清 → curl 对比路径 → 再看权限和端口,比在客户端里反复试快得多。

END

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。