Cyberduck:跨平台的开源云存储与文件传输利器
在数字化协作日益频繁的今天,寻找一款既支持多种协议又易于操作的文件传输工具至关重要。Cyberduck 是一款基于 GNU General Public License Version 3(GPLv3) 授权的开源图形化客户端,支持 Windows 和 macOS 平台,同时提供名为 duck 的命令行界面(CLI)版本,覆盖 Windows、macOS 和 Linux 三大平台。它凭借简洁的界面和对 WebDAV 等多种协议的深度支持,成为了开发者和普通用户管理云端数据的首选工具之一。
Cyberduck 由瑞士开发者 David Kocher 于 2002 年创建,目前由总部位于瑞士伯尔恩的 iterate GmbH 公司持续维护。该公司是一家专注于移动安全与云技术的敏捷软件工程公司。截至 2025 年 12 月,Cyberduck 的最新版本为 9.3.1,项目在 GitHub 上以 iterate-ch/cyberduck 的名义持续活跃开发。Cyberduck 使用 Java 和 C# 编写,在 macOS 上采用 Cocoa 用户界面框架,在 Windows 上则使用 Windows Forms 框架。
1. 核心协议支持:不止于 WebDAV
Cyberduck 最初以 FTP/SFTP 客户端闻名,但其真正的强大之处在于广泛的兼容性:
📂 经典传输协议
| 协议 | 说明 |
|---|---|
| FTP | 文件传输协议,支持 FTP-TLS(显式 TLS)安全连接,兼容 TLSv1.2 |
| SFTP | 基于 SSH 的安全文件传输协议,支持公钥认证(Public Key Authentication)、自定义密钥文件以及 Amazon CloudFront CDN 分发配置 |
| SMB | Server Message Block 协议,于 2025 年随 Mountain Duck 5 新增支持,可连接 Windows 文件共享及 NAS 设备 |
🌐 WebDAV 专家
Cyberduck 能完美连接各类 NAS、网盘或自建服务器(如 Nextcloud)的 WebDAV 接口:
- 🔗 支持 HTTP 和 HTTPS(HTTP/SSL)两种 WebDAV 连接模式
- 🔑 支持 基本身份验证(Basic Auth)、NTLM 认证 以及 客户端证书(Client Certificate)加密
- 🌍 支持配置 Amazon CloudFront 自定义源(Custom Origin)CDN 分发,可加速 WebDAV 内容的全球交付
☁️ 主流云存储与对象存储
Cyberduck 原生支持的云服务远不止简单的几个:
| 服务 | 说明 |
|---|---|
| Amazon S3 | 支持 S3 存储桶的层级浏览、ACL 权限管理,同时兼容大量 S3 兼容的第三方存储服务(如 Wasabi、DigitalOcean Spaces、DreamObjects、Oracle OCI、Filebase 等) |
| Google Cloud Storage | 支持文件传输、ACL 管理和存储桶配置 |
| Google Drive | 访问和管理 Google Drive 中的所有文档,可上传任意类型文件 |
| Dropbox | 无需本地同步即可直接访问 Dropbox 云端文件 |
| Microsoft OneDrive | 无需本地同步即可直接访问 OneDrive 云端文件 |
| Microsoft SharePoint | 支持连接 SharePoint Server 和 SharePoint Online,适合企业级文档协作场景 |
| Backblaze B2 | 价格仅为 Amazon S3 的四分之一的高性价比云存储方案 |
| OpenStack Swift | 连接基于 OpenStack 协议的云存储服务商,包括 Rackspace Cloud Files 等 |
| Microsoft Azure Blob | 面向海量非结构化数据的大规模对象存储 |
🧩 专业与科研协议
| 服务 | 说明 |
|---|---|
| DRACOON | 高安全性、跨平台的企业级文件共享解决方案 |
| iRODS | Integrated Rule-Oriented Data System,开源数据管理软件,广泛用于全球研究机构和政府机构的大规模科研数据管理 |
🔌 连接配置文件(Connection Profiles)扩展机制
除了以上内置协议,Cyberduck 还提供了一套灵活的"连接配置文件"(.cyberduckprofile)扩展机制。用户可以在 偏好设置 → 配置文件(Preferences → Profiles)中浏览和启用数十种第三方服务商的预配置连接方案。这些配置文件由社区通过 GitHub 上的 iterate-ch/profiles 仓库贡献和维护,涵盖了 Wasabi、DigitalOcean Spaces、DreamObjects、Filebase 等众多 S3 兼容和 OpenStack 兼容的存储服务。安装配置文件后,用户无需手动填写服务器地址等连接细节,只需输入凭据即可快速连接。Cyberduck、Cyberduck CLI 和 Mountain Duck 三者共享配置文件,实现"一次配置、全平台可用"。
2. 软件亮点与功能特点
🖥️ 直观的图形化界面
Cyberduck 摒弃了复杂的命令行操作,采用两栏或单栏树状结构,支持直接拖拽上传下载,极大地降低了使用门槛。其大纲视图(Outline View)模式允许高效浏览大型文件夹结构,无需逐级展开即可快速定位目标文件。
在 macOS 上,Cyberduck 深度集成了系统原生功能:
- 🔍 Quick Look 快速预览 — 选中文件后按 空格键 即可调用 macOS 的 Quick Look 功能进行即时预览,支持图片、HTML、PDF 等多种文件格式,无需下载到本地即可快速查看远程文件内容。用户还可以将 Quick Look 图标拖入工具栏以便快捷访问。
- 🔎 Spotlight 搜索集成 — 应用内容可被 macOS Spotlight 索引,支持系统级搜索。
- ⚙️ 服务菜单(Services Menu)集成 — 可从其他应用程序的服务菜单中调用 Cyberduck 的功能。
🔒 Cryptomator 端到端加密
Cyberduck 自 6.0 版本起 与 Cryptomator 集成,支持在文件上传到云端前进行本地加密,确保即使云服务商被攻破,数据依然安全。
Cryptomator 的加密架构具有以下技术特点:
- 🔐 使用 AES-SIV 算法加密文件名和目录名,同时对目录结构进行混淆处理,使得攻击者即使获取了云端数据,也无法推断文件的组织方式
- 🔐 每个文件在加密时会关联其父目录的唯一目录 ID(作为关联数据传入),这可以防止文件在目录之间被未经检测地移动
- 📦 用户通过 文件 → 新建保险库(File → New Vault…)创建加密保险库,设定名称和密码后,系统会初始化一个
masterkey.cryptomator主密钥文件,并自动在用户默认配置中保存密钥备份 - 🔓 当 偏好设置 → Cryptomator → 自动检测并在浏览器中打开保险库 选项开启时,浏览到一个 Cryptomator 保险库目录会自动弹出密码输入提示,解锁后即可像操作普通文件夹一样进行透明的加密上传和解密下载
- 🔑 密码管理方面,macOS 上密码存储在 钥匙串访问(Keychain Access)中,Windows 上则保存在 凭据管理器(Credential Manager)中
由于 Cyberduck 和 Cryptomator 都是开源软件,任何人都可以审计其加密实现的源代码,不存在"安全依赖于隐秘性"的问题,也没有第三方隐藏后门的风险。 使用 Cyberduck 创建的 Cryptomator 保险库可以用 Cryptomator 的其他客户端(如 iOS 版)打开,反之亦然,无需安装额外的 Cryptomator 应用。
⚠️ Cryptomator 已知限制:
- 文件名(含扩展名)最大长度为 146 个字符,使用非 ASCII 字符可能进一步缩短此限制
- 暂不支持更改保险库密码
- 不支持在保险库内嵌套创建或访问另一个保险库
- 必须先解锁保险库再移入文件,否则文件不会被加密
✏️ 无缝外部编辑器集成
支持调用本地编辑器(如 VS Code 或 Sublime Text)直接编辑远程文件,保存后软件会自动将其同步回服务器。
具体工作流程如下:
- 📝 在 Cyberduck 中选中文件,点击工具栏的"编辑"按钮或选择 文件 → 用...编辑(File → Edit With)
- 📥 文件会被下载到本地临时目录并在指定编辑器中打开
- 💾 每次在编辑器中执行"保存"操作时,Cyberduck 会自动检测文件变更并将修改内容上传回服务器
- 🗑️ 如果直接关闭文件而不保存,或文件内容未发生变化,则不会触发上传
编辑器配置方法: 进入 偏好设置 → 编辑器(Preferences → Editor),在下拉菜单中选择"选取..."(Choose…),指定你偏好的编辑器(如 VS Code、Sublime Text、BBEdit、Notepad++ 等),并勾选"始终使用此应用程序"。Cyberduck 还会根据文件类型智能选择对应的默认编辑器,例如 .py 文件可以自动用 VS Code 打开。
⚠️ 使用提示: 在 VS Code 中编辑时,如果断开与服务器的连接前未关闭已打开的临时文件,VS Code 仍会显示该文件,但此时文件与远程服务器之间的关联已断开,再次保存将不会同步到服务器。
📌 快捷书签管理
用户可以将常用的 WebDAV 路径保存为书签,并支持通过 Bonjour 自动发现局域网内的存储服务。书签可以在 Cyberduck、Cyberduck CLI 和 Mountain Duck 之间共享,实现"一次配置,多端使用"。每个书签还可以独立配置传输连接模式(使用浏览器连接、单连接或多连接并发传输),以适应不同的网络环境和使用场景。
⚡ 传输管理与性能优化
Cyberduck 提供了一套完善的传输管理机制,适用于从日常小文件到大规模数据迁移的各种场景:
- 📊 传输队列(Transfer Queue) — 可查看当前、等待中、已完成和失败的传输任务列表,管理传输的优先级和速度,调整同时下载/上传的数量
- 🔀 多连接并发传输 — 自 4.7 版本起支持为下载和上传使用多个连接,当需要传输大量小文件时,并行执行可将传输速度提升 2-3 倍。提供三种连接模式:使用浏览器连接、开启单连接、开启多连接
- 📦 大文件分段上传 — 上传大文件到 OpenStack Swift(超过 2GB 阈值)和 Amazon S3(超过 100MB 阈值)时,会自动使用多个连接分段上传
- 🐢 带宽限速(Bandwidth Throttling) — 可在 偏好设置 → 带宽(Preferences → Bandwidth)中分别为下载和上传设置最大传输速率,避免文件传输占满全部带宽而影响其他网络活动。也可以在传输窗口中针对单个传输任务进行实时限速调整
3. 命令行界面(CLI):自动化与脚本集成
除了图形界面,Cyberduck 还提供了一个功能完备的命令行工具 duck,特别适合需要在脚本和自动化部署中使用文件传输功能的开发者和运维人员。
🐧 安装方式
| 平台 | 安装方法 |
|---|---|
| macOS | 通过 Homebrew 安装:brew install duck |
| Windows | 通过 Chocolatey 安装:choco install duck |
| Linux (RPM) | 添加 YUM 仓库后执行:sudo yum install duck |
| Linux (Debian/Ubuntu) | 添加 APT 源后执行:sudo apt install duck |
| Arch Linux | 通过 AUR 提供的第三方包安装 |
| Docker | docker pull ghcr.io/iterate-ch/cyberduck:latest |
🛠️ 核心命令
duck --download <远程URL> <本地路径> # 下载文件/文件夹
duck --upload <远程URL> <本地文件> # 上传文件/文件夹
duck --list <远程URL> # 列出远程目录内容
duck --copy <源URL> <目标URL> # 在服务器之间复制文件
duck --move <源URL> <目标URL> # 移动或重命名远程文件
duck --delete <远程URL> # 删除远程文件
duck --purge <CDN URL> # 清除 CDN 缓存CLI 同样支持 Cryptomator 保险库的访问——在执行 --download、--list 或 --upload 时,如果目标路径是 Cryptomator 保险库,系统会提示输入保险库密码进行解锁。此外,Cyberduck CLI 还提供了官方的 GitHub Actions 集成(Docker 容器方式运行),支持 list、upload、download、delete、purge 等模式,可以方便地集成到 CI/CD 工作流中。
4. 开源与费用说明
作为一款自由软件,Cyberduck 的核心代码在 GitHub 上完全开源。项目采用 GPLv3 许可证,这意味着任何人都可以自由地运行、复制、分发、研究、修改和改进该软件,并且 Cyberduck 承诺将永远保持其自由软件的性质。
虽然官方提供免费下载,但在关闭软件时可能会弹出捐赠提示。这种模式通常被称为"捐赠软件"(Donationware)。 用户可以通过在 Mac App Store 或 Microsoft Store 付费购买来消除此提示并支持开发者。需要注意的是,App Store 的分发规则不允许应用内显示自愿捐赠请求,因此 App Store 版本以固定价格出售,功能与免费下载版完全一致,但不会弹出捐赠提示。选择免费版还是付费版完全取决于用户个人意愿。
Cyberduck 项目同时为开源社区做出了贡献,包括 OpenStack Swift Client Java Bindings(OpenStack Swift 的 Java 客户端库)、Rococoa(Objective-C 包装器)和 SSHJ(SSH 协议的 Java 实现)等开源项目。
5. 适用场景建议
如果您需要一款能像本地硬盘一样挂载云端空间的工具,开发商还提供了其姊妹产品 Mountain Duck;但如果您主要追求点对点同步、多窗口并发传输或开源透明性,Cyberduck 无疑是目前 WebDAV 同步工具中的佼佼者。
为了帮助读者更好地做出选择,下面对 Cyberduck 和 Mountain Duck 进行一个详细对比:
🦆 Cyberduck vs. 🏔️ Mountain Duck 对比
| 特性 | Cyberduck | Mountain Duck |
|---|---|---|
| 产品定位 | 文件传输浏览器 | 虚拟磁盘 / 挂载工具 |
| 价格 | 免费(开源) | 付费(商业软件) |
| 磁盘挂载 | ❌ 不支持 | ✅ 支持(作为 Finder / 资源管理器中的磁盘) |
| 智能同步 / 离线访问 | ❌ 不支持 | ✅ 支持(可选择性缓存文件供离线使用) |
| 传输速度 | ⚡ 更快(比 Mountain Duck 快 5-10 倍) | 🐢 较慢(受虚拟磁盘机制影响) |
| 书签共享 | ✅ 共享 | ✅ 共享 |
| 协议支持 | FTP、SFTP、WebDAV、S3 等 | FTP、SFTP、WebDAV、S3、SMB 等 |
| Cryptomator | ✅ 支持 | ✅ 支持 |
| CLI 命令行 | ✅ 有(duck) | ❌ 无 |
| 操作系统搜索集成 | ❌ 不支持 | ✅ 支持(Windows Search 和 macOS Spotlight 可搜索远程文件,限集成连接模式) |
| 文件版本控制 | ❌ 不支持 | ✅ 支持(对无原生版本控制的协议如 FTP/SFTP/WebDAV 等,通过隐藏文件夹 .duckversions 自动保存文件版本) |
Mountain Duck 5(2025 年发布)引入了全新的"集成连接模式"(Integrated Connect Mode),该模式使用 Windows 和 macOS 的原生 API 集成到文件资源管理器中,无需安装设备驱动或创建网络挂载,大幅提升了文件写入性能,使其接近本地磁盘操作的速度。
🎯 选型建议
- ✅ 选择 Cyberduck 的场景: 需要快速批量上传/下载文件、追求开源透明性、需要 CLI 命令行和脚本自动化、注重传输速度、偶尔访问云端文件
- ✅ 选择 Mountain Duck 的场景: 需要将云端存储作为本地磁盘使用、需要智能同步和离线访问功能、希望在所有本地应用中直接打开和编辑远程文件、需要 SMB 协议支持、需要文件版本控制
6. 快速上手指南
以下是使用 Cyberduck 连接 WebDAV 服务器的基本步骤:
- 📥 下载安装 — 从 cyberduck.io 官方网站下载适合你操作系统的版本,或从 Mac App Store / Microsoft Store 获取付费版
- ➕ 新建连接 — 打开 Cyberduck,点击"打开连接"(Open Connection),在协议下拉菜单中选择"WebDAV (HTTPS)"
- 🔗 填写服务器信息 — 输入服务器地址(如
dav.example.com)、端口号(HTTPS 默认为 443)、用户名和密码 - 📌 保存为书签 — 连接成功后,可以将此连接保存为书签,方便下次快速访问
- 📂 管理文件 — 通过拖拽或右键菜单进行文件的上传、下载、重命名、删除等操作
- 🔒 (可选)创建加密保险库 — 如需加密存储,选择 文件 → 新建保险库,设定名称和密码即可
参考资源
| 资源 | 链接 |
|---|---|
| 🏠 Cyberduck 官方网站 | cyberduck.io |
| 📖 官方帮助文档 | docs.cyberduck.io |
| 💻 GitHub 源代码仓库 | github.com/iterate-ch/cyberduck |
| 🔌 连接配置文件仓库 | github.com/iterate-ch/profiles |
| 🖥️ CLI 命令行工具 | duck.sh |
| 📋 更新日志 | cyberduck.io/changelog |
| 🏔️ Mountain Duck | mountainduck.io |
| 🔐 Cryptomator 集成说明 | cyberduck.io/cryptomator |
| 📜 许可证 | cyberduck.io/license |