在 Linux 上挂载 WebDAV — NetDrive 的实验性 Ubuntu 版本

阅读时间 6 分钟 provider-guide webdav linux
Steve
SteveSenior Engineer
使用 NetDrive 的实验性 Linux 版本,将 WebDAV 服务器——Synology NAS、ownCloud 或任何符合标准的主机——挂载为 Ubuntu 挂载点。

一个在一批无头 Ubuntu 运行器上运行 CI 的构建团队,把共享工具链和缓存的测试数据放在内部 WebDAV 服务器上,每个运行器都需要读取权限,而不需要同步代理在磁盘上占用一份完整的本地副本——一旦有人更新文件,这份副本就会过期。NetDrive 的 Linux 版本会把这个 WebDAV 共享挂载为一个常规挂载点,因此读取 /mnt/webdav/fixtures/build.tar.gz 的任务会直接从服务器获取当前文件,而不是上一次运行下载的副本。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

在 Ubuntu 上挂载 WebDAV 服务器

NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。

  • 支持 Ubuntu 16.04 及更高版本
  • 兼容任何符合标准的 WebDAV 主机,包括 Synology NAS
  • 直接挂载共享——无需维护单独的本地同步副本
WindowsmacOS
下载适用于 Linux 的 NetDrive →

免费试用。提供终身与订阅方案。

WebDAV 与 Linux 上的 NetDrive

WebDAV(Web 分布式创作和版本控制)通过 HTTP 把 Web 服务器变成一个可写的文件存储,它是 Synology 文件共享、ownCloud 以及一长串自托管存储服务器背后的协议。NetDrive 自 2017 年 9 月的首个 3.x 版本起就支持 WebDAV——它与 FTP、SFTP 一起是三个基础协议之一,先于任何云服务提供商集成而存在。

在 Linux 上,NetDrive 通过 github.com/NetDrive/installer 分发,而不是通过发行版的包仓库。Linux 支持带有 NetDrive 自己的实验性标签——这一标签覆盖该平台上的每个提供商,并非 WebDAV 特有——而 Windows 和 macOS 才是经过充分打磨的生产级目标平台。

WebDAV protocol logo, the standard NetDrive supports across all platforms

在 Ubuntu 上安装 NetDrive

  1. 前往 github.com/NetDrive/installer,下载与你的 Ubuntu 版本匹配的发行版。Ubuntu 16.04 是支持的最低版本。
  2. 按照该版本的发行说明操作——在 NetDrive 能挂载任何东西之前,需要先安装一个驱动组件。
  3. 安装 NetDrive 软件包。
  4. 启动 NetDrive。首次运行会加载驱动组件,根据你的系统配置,可能会提示输入 sudo

更新以 GitHub 发行版的形式发布,而不是通过 apt upgrade,并且 Linux 驱动有自己独立的维护节奏——在 Windows 或 macOS 上发布的修复,不一定会在同一周内出现在 Linux 上。这一点值得在管理该主机的运维手册中记上一笔。

分步操作:连接 WebDAV 服务器

  1. 打开 NetDrive 的 Drive Manager,点击 + Add Drive
  2. 从连接类型列表中选择 WebDAV
  3. 输入服务器 URL。 对于默认端口上的 HTTPS:https://yourserver.example.com/dav/。对于自定义端口——Synology 的 WebDAV 套件默认使用 5006——请使用 https://yourserver.example.com:5006/

Confirming a server's port number before entering it into a WebDAV connection

  1. 为 WebDAV 账户输入用户名和密码
  2. 设置一个挂载点——比如 /mnt/webdav 这样的路径,或任何你有写入权限的空目录。
  3. 点击 Connect。 NetDrive 会进行身份验证,并将该共享挂载到指定路径。

NetDrive mounting a cloud storage account as a local drive — the same core interaction the Linux build provides at a mount point

如果数据源是 Synology NAS,需要先在 DSM 中安装 WebDAV Server 套件并启用 HTTPS,NetDrive 才有可以连接的目标——这与 Windows 和 macOS 上适用的前提条件相同。

验证挂载并排查常见连接问题

从终端而不是仅凭图形界面来检查挂载情况,尤其是在使用实验性版本时:

# Confirm the mount is listed
mount | grep webdav

# Or just try listing it
ls /mnt/webdav

Confirming that a cloud drive connected successfully after mounting

连接被拒绝或超时——确认 URL 使用的是 https:// 而不是 http://。大多数 WebDAV 服务器会直接拒绝纯 HTTP 请求,端口不匹配(对 Synology 默认配置而言,是 5006 与 443 之间的差异)是次常见的原因。

自签名服务器上的证书错误——一个使用自签名证书的自托管 WebDAV 主机,需要先把该证书添加到系统的 CA 信任存储中,NetDrive 的连接才能成功;使用像 Let’s Encrypt 这样的公共 CA 颁发的证书可以完全避免这一步骤。

点击 Connect 后没有任何反应——在怀疑服务器端出问题之前,先重新检查挂载点路径是否存在,以及运行 NetDrive 的用户是否对其拥有写入权限。

总结

在 Ubuntu 上挂载 WebDAV 服务器,能让一台无头主机获得与 NetDrive 在 Windows 和 macOS 上提供的相同的驱动器式访问体验,安装程序托管在 GitHub 上而不是通过 apt。要了解更广泛的 Linux 情况,请参阅 NetDrive on Ubuntu Linux;关于同一协议在经过更充分测试的平台上的表现,请参阅 Mount WebDAV on Windows;关于 Linux 版本上的另一种连接类型,请参阅 Mount an SFTP Server on Linux

— Steve, NetDrive