使用 davfs2 在 Linux 上挂载 WebDAV 网盘(以坚果云为例)

WebDAV(Web Distributed Authoring and Versioning)是一种允许通过 HTTP 协议将远程存储挂载到本地文件系统的技术。通过它,你可以像操作本地目录一样对远程文件进行 lscpmv 等操作。本文将介绍如何在 Linux 系统中安装和配置 davfs2,并以坚果云(Nutstore / 坚果云)为例,演示挂载 WebDAV 目录的全过程。


一、前言

坚果云(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 地址为例(有时需要在末尾加 /):

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. 权限问题
    • 挂载后若无法读写文件,需检查 fstab 中的 uidgid 选项,或将用户添加到 davfs2 组。
    • 也可使用 chownchmod 来调整访问权限。
  4. 网络启动顺序
    • 使用 _netdev 选项可确保系统在网络就绪后再挂载。
    • 若仍有启动顺序问题,可考虑使用 systemd 的 After=network-online.target 等机制。
  5. 替代方案
    • 若坚果云的 WebDAV 不兼容或不稳定,可以使用 rclone 等工具,通过其对坚果云的支持进行挂载或同步。

八、总结

通过 davfs2,你可以轻松地将坚果云(Nutstore)等支持 WebDAV 的云盘服务挂载到 Linux 本地,享受与本地磁盘类似的文件操作体验。若遇到不标准的 WebDAV 实现或连接问题,可尝试 ignore_dav_header 1 或使用其他工具(如 rclone)来辅助挂载。

在正确配置后,每次系统启动都会自动加载远程存储,你可以随时访问、编辑和管理云端文件,无需手动登录网页或使用额外的同步客户端。这为多平台文件管理、服务器远程办公等场景带来了极大的便利。


进一步阅读与参考:

希望本教程能帮助你更好地将坚果云等 WebDAV 服务整合到 Linux 系统中,若有疑问或需要更多配置示例,欢迎在评论区留言或参考官方文档。祝你使用愉快!

Leave a Reply

en_USEnglish