davfs2在多数WebDAV网盘上失败,因其严格依赖标准LOCK/MOVE等操作,而百度网盘、AList等服务常禁用LOCK、不兼容Depth: infinity的PROPFIND或返回405错误,导致挂载后只读或I/O错误;rclone mount更可靠,通过自建VFS层适配非标响应,需配置webdav类型、--vfs-cache-mode writes及合理并发参数。

能挂,但别用 davfs2 直接挂——它不支持 WebDAV 的 LOCK/MOVE 等关键操作,百度网盘、AList、阿里云盘等多数服务会报 Operation not supported 或挂载后只读/无法写入。
为什么 davfs2 在多数 WebDAV 网盘上会失败
davfs2 是 Linux 传统 WebDAV 客户端,依赖标准 HTTP 方法,但实际云盘 WebDAV 接口(尤其是 AList、aliyundrive-webdav、百度企业网盘)往往:
- 禁用或弱化
LOCK、UNLOCK请求(davfs2启动时必发) - 对
PROPFIND的 Depth 处理不兼容(比如只接受Depth: 1,而davfs2发Depth: infinity) - 返回非标准的
405 Method Not Allowed或静默丢弃请求,导致挂载后ls卡住、cp报错Input/output error
简单说:davfs2 想当“标准协议执行者”,但多数网盘 WebDAV 是“协议裁剪版”,两者不咬合。
rclone mount 是更靠谱的选择
它不依赖系统级 WebDAV 栈,而是自己实现 VFS 层,把 WebDAV 当作一种“存储后端”来处理。只要接口返回标准 HTTP 状态码和 XML 响应,就能工作。 实操要点:
- 配置时选
webdav类型(不是http或https),URL 必须带协议头(https://或http://),末尾不要加路径(如/dav) - 用户名密码在
rclone config里填,别写进 URL;若服务要求 Basic Auth,确保服务端开启该认证方式 - 挂载命令必须加
--vfs-cache-mode writes,否则小文件写入会失败(WebDAV 不支持原子性追加,rclone 需缓存后整块 PUT) - 推荐加上
--daemon --log-file=/var/log/rclone-webdav.log跑后台,避免终端关闭导致挂载中断
示例命令:
rclone mount webdav-remote: /mnt/webdav \ --vfs-cache-mode writes \ --buffer-size 32M \ --timeout 30s \ --umask 002 \ --daemon \ --log-file /var/log/rclone-webdav.log
挂载后权限和性能要注意什么
WebDAV 是远程协议,不是本地块设备,以下三点容易被忽略:
-
chown/chmod通常无效——多数 WebDAV 服务不实现PROPPATCH设置权限,rclone 会静默忽略或报Operation not permitted - 并发读写性能差:默认单连接,大文件传输慢;可加
--tpslimit 5提升并发,但太多会触发服务端限流(AList 默认 10 QPS) - 文件修改时间(mtime)可能不准:WebDAV 返回的
getlastmodified字段精度有限,rclone 无法精确还原,rsync -c校验可能误判
如果用于备份或脚本自动同步,建议用 rclone sync 或 rclone copy 替代挂载,更可控。
真正麻烦的不是挂载动作本身,而是 WebDAV 服务端的实现差异——AList 的 /dav 路径、aliyundrive-webdav 的 Basic Auth 强制要求、百度企业网盘的域名白名单,都得一个个试错调参。别指望一次配对就全通。











