WebDAV(Web Distributed Authoring and Versioning)是一种允许通过 HTTP 协议将远程存储挂载到本地文件系统的技术。通过它,你可以像操作本地目录一样对远程文件进行 ls、cp、mv 等操作。本文介绍如何在 Linux 系统中安装和配置 davfs2,并以坚果云(Nutstore / 坚果云)为例,演示挂载 WebDAV 目录的全过程。
Table of Contents
一、前言
坚果云(Nutstore)是一款常用的云存储服务,提供 WebDAV 访问接口。通过使用 davfs2,我们可以在 Linux 系统中直接将坚果云的远程存储挂载到本地文件夹,实现与本地磁盘类似的管理方式。
二、安装 davfs2
1. Debian/Ubuntu 系列
sudo apt update
sudo apt install davfs2
安装过程中,系统可能会提示是否允许非 root 用户挂载 WebDAV 文件系统。如果希望普通用户也可以挂载,选择 Yes(或相应选项)。
2. RHEL/CentOS/Fedora 系列
sudo yum install davfs2
在较新的 Fedora / RHEL 系统上,也可以使用:
sudo dnf install davfs2
三、创建挂载点目录
在本地创建一个用于挂载坚果云的目录,例如:
sudo mkdir -p /mnt/nutstore
这个目录将作为本地与坚果云之间的挂载点。
四、配置 davfs2
4.1 配置登录凭证
如果坚果云的 WebDAV 访问需要用户名和密码,可以在 /etc/davfs2/secrets 文件中添加登录信息:
sudo nano /etc/davfs2/secrets
在文件末尾写入以下内容,将示例 URL、用户名和密码替换为你的实际信息:
https://dav.jianguoyun.com/dav <你的用户名> <你的密码>
保存后,为了安全起见,确保只有 root 或相应用户可读该文件:
sudo chmod 600 /etc/davfs2/secrets
4.2 修改 davfs2.conf(可选)
部分服务器或云服务可能对 WebDAV 协议支持不完全,导致出现类似错误:
mount.davfs: mounting failed; the server does not support WebDAV
这种情况下,可以尝试在 /etc/davfs2/davfs2.conf 中添加:
ignore_dav_header 1
该选项会忽略特定的协议头检查,从而兼容某些非标准 WebDAV 服务。是否需要启用它,应以你的服务端实际表现为准。
五、手动挂载测试
配置完成后,可以先进行手动挂载测试。以下以坚果云的 WebDAV 地址为例,有时需要在 URL 末尾加 /:
sudo mount -t davfs https://dav.jianguoyun.com/dav /mnt/nutstore
如果配置正确,系统会提示输入凭据,或者自动读取 /etc/davfs2/secrets。成功后可以使用以下命令检查:
df -h | grep nutstore
ls /mnt/nutstore
如果能列出远程文件,说明挂载成功。
六、在 /etc/fstab 中自动挂载
如果希望开机自动挂载,或在执行 sudo mount -a 时自动挂载,可以在 /etc/fstab 中添加如下条目:
https://dav.jianguoyun.com/dav /mnt/nutstore davfs rw,uid=1000,gid=1000,_netdev,users,credentials=/etc/davfs2/secrets 0 0
其中:
rw:以读写方式挂载。uid=1000,gid=1000:指定挂载后文件的属主和属组,请根据实际用户 ID、组 ID 修改。_netdev:表示这是一个网络文件系统,系统会在网络启动后再尝试挂载。users:允许非 root 用户执行挂载和卸载。credentials:指定存储 WebDAV 登录凭据的文件。
添加完毕后,使用:
sudo mount -a
进行测试。如果无报错且能正常访问 /mnt/nutstore,说明自动挂载已配置成功。
七、常见问题及解决方案
1. the server does not support WebDAV
- 确认坚果云或其他服务端已开启 WebDAV 功能,并且 URL 正确,必要时尝试在末尾加
/。 - 在
/etc/davfs2/davfs2.conf中尝试添加ignore_dav_header 1。 - 检查网络是否通畅,以及是否有防火墙或代理阻止访问。
2. 需要频繁输入用户名或密码
- 确保
/etc/davfs2/secrets已正确配置,并且权限设置为600。 - 如果使用用户级配置,可以改在
~/.davfs2/secrets中保存凭据,并同样限制文件权限。
3. 权限问题
- 挂载后若无法读写文件,检查
/etc/fstab中的uid、gid选项,或将用户添加到davfs2组。 - 根据实际需求调整挂载点目录和本地缓存目录的权限。
4. 网络启动顺序
- 使用
_netdev选项可提示系统在网络就绪后再挂载。 - 如果仍有启动顺序问题,可考虑使用 systemd 挂载单元,并设置
After=network-online.target等依赖。
5. 替代方案
如果坚果云的 WebDAV 在你的环境中不兼容或不稳定,可以使用 rclone 等工具,通过其 WebDAV 支持进行挂载或同步。
八、总结
通过 davfs2,可以将坚果云(Nutstore)等支持 WebDAV 的云盘服务挂载到 Linux 本地,获得接近本地磁盘的文件操作体验。若遇到非标准 WebDAV 实现或连接问题,可尝试 ignore_dav_header 1,也可以使用其他工具(如 rclone)辅助挂载。
正确配置后,系统启动时可以自动加载远程存储,用户也可以随时访问、编辑和管理云端文件,无需手动登录网页或依赖额外的同步客户端。这对多平台文件管理、服务器远程办公等场景都很实用。
进一步阅读与参考:
