Windows · Linux · NAS · Docker

装在常开的那台机器上

在这里,CloudDrive2 的核心以后台服务的形式运行:连接你全部的云盘账户,把它们挂成本地磁盘,提供一个浏览器管理界面,同时自己就是一台 WebDAV 服务器。手机、电视和头显上的应用自带同一套核心,各自独立可用;需要时也可以把这台当成一个云盘连过来。

这一页讲的是 CloudDrive2 Core——原来的 CloudDrive2,仍在持续开发。

用 Windows?现在有原生的桌面应用了,带完整界面与盘符挂载,见 Windows 版

  • 云盘本地挂载
  • Web 界面 :19798
  • WebDAV 服务器
  • Docker · NAS
  • Windows · Linux · macOS

本地挂载

把云盘挂成一块本地磁盘

挂载之后,云盘在系统里就是一块盘。任何程序——办公软件、剪辑软件、Emby、Plex—— 都能像读本地文件一样读它,不需要「先下载,再打开」。

多个云盘可以合并挂载成一棵统一的目录树,也可以各挂各的盘符;只挂某个云盘下的某个目录同样可以。读取采用多线程下载,带宽跟得上的时候,体验和本地盘相差不大。

写入是真正的随机写:改文件中间的一段,不必先把整个文件下载回本地——CloudDrive2 从云端取未改动的片段,接上你写进去的部分,直接拼成新文件上传。每个目录的元数据缓存时长可以单独设置,在数据时效性和请求频度之间自己拿捏。

挂出来的也是一个完整的文件系统:Linux 与 macOS 上是完整 POSIX 语义,权限位、所有者与用户组、时间戳和扩展属性(xattr)一样不少;Windows 上完整支持安全描述符, ACL 照常读写。这些属性持久化在本地,云盘存不下也不影响。

  • 多线程读取
  • 真正的随机写
  • 完整 POSIX 语义
  • Windows 安全描述符
  • 目录级缓存时长

本地挂载的完整说明

  • 统一挂载

    把多个云盘账户合成一个文件系统,跨云盘搬文件就是普通的复制粘贴。

  • 文件变更通知

    挂载盘上的增删改会产生系统级通知,Emby、Jellyfin、Plex 的媒体库监控照常工作。通过 Web 界面、WebDAV 或离线下载产生的变化同样会通知。

  • 访问监控与权限控制

    实时看到哪个进程在读哪个文件、下载速度多少,并可以按进程放行或拉黑。

  • 加密文件夹

    在任意云盘或本地目录里创建加密文件夹,文件名用 AES、内容用 chacha20-poly1305 加密,密码只留在本机。解锁之后用起来和普通文件夹一样。

Linux 需要内核支持 FUSE(看看有没有 /dev/fuse);macOS 需要先安装 macFUSE;未 root 的 Android 无法挂载本地文件系统,其余功能不受影响。

Web 界面

浏览器就是控制台

装好之后不用装客户端:打开浏览器,配置和日常操作都在这一个页面里完成。

http://localhost:19798          # 本机
http://<主机 IP>:19798          # 局域网里的其它设备

另有 HTTPS 端口 19799,默认关闭,要在设置里打开并配置证书。手机、平板、电视和头显上的应用自带的核心监听 29798,和这里错开,同一台机器上一起装不会撞端口。

  • 云盘账户

    添加、授权、移除云盘账户,阿里云盘、百度网盘、115、天翼云盘、123云盘、 OneDrive、Google Drive、迅雷云盘、WebDAV 与本地文件夹都在列表里。

  • 文件管理

    新建文件夹、重命名、删除、移动、上传本地文件,以及跨云盘复制—— 不必在各家网盘的客户端之间来回切换。

  • 在线播放与预览

    视频、音频、图片直接在浏览器里放,也可以交给 PotPlayer、VLC、Infuse、 IINA、nPlayer 等第三方播放器打开。

  • 其余全部设置

    挂载点、备份任务、传输队列、WebDAV 设置、API 令牌,都在同一个界面里。

Web 界面是这台服务的唯一控制台:Windows 上双击桌面快捷方式打开的是它, NAS 和 Docker 上没有图形界面,用的也是它。

手机、平板、电视和头显上的 CloudDrive2 应用连接的是同一个服务,在哪一端改的设置,另一端都能看到。

这个界面是一个 WebAssembly 应用,浏览器不支持 WebAssembly 就只有白屏。电脑上用较新版本的 Edge、Chrome、Safari 或 Firefox,手机平板上用主流浏览器都可以;IE 不行,电视和机顶盒自带的精简浏览器也多半不行。

统一的多云盘管理

WebDAV

自己就是一台 WebDAV 服务器

CloudDrive2 把聚合后的云盘再以 WebDAV 的形式提供出去。 Windows 的「映射网络驱动器」、macOS 的「连接服务器」、Office、剪辑软件、电视盒子上的播放器——任何支持 WebDAV 的客户端都能直接连。

服务器地址   http://<主机 IP>:19798/dav
用户名       CloudDrive2 账号邮箱(也可只填 @ 前面的部分)
密码         CloudDrive2 账号密码
  • 服务开关

    WebDAV 服务可以随时打开或关闭。

  • 账号访问

    允许或禁止用 CloudDrive2 账号访问 WebDAV,并可指定根目录位置与是否只读。

  • 匿名访问

    允许或禁止匿名访问,匿名访问的根目录和读写权限单独设置。

  • 独立 WebDAV 用户

    可以创建任意多个独立用户,每个用户单独设置根目录和只读权限,给家人和同事分别开一份。这是会员功能,详见会员与价格

WebDAV 服务的完整说明

Docker · NAS

在 NAS 上常驻

官方镜像是 cloudnas/clouddrive2,提供 amd64、arm64 和 armv7 三种架构。跑起来之后,浏览器打开 http://<主机 IP>:19798 就能配置。

容器里的挂载需要能传回宿主机,所以宿主机那个目录的挂载传播必须是共享的(shared mount)——FUSE 依赖它,不是共享的话会直接以「权限被拒绝」挂载失败。这是部署时最常见的坑,不过不少系统出厂就开着(LibreELEC、CoreELEC、飞牛 fnOS 都是),先查一下再动手。

Docker Compose 配置
services:
  cloudnas:
    image: cloudnas/clouddrive2
    container_name: clouddrive2
    environment:
      - TZ=Asia/Shanghai
      - CLOUDDRIVE_HOME=/Config
    volumes:
      - <接收云盘挂载的目录>:/CloudNAS:shared
      - <存放配置的目录>:/Config
      - <其它需要共享的本地目录>:/media:shared
    devices:
      - /dev/fuse:/dev/fuse
    restart: unless-stopped
    pid: "host"
    privileged: true
    network_mode: "host"
查一下,没开再开

Docker 以 systemd 服务运行时,给它加一段 MountFlags=shared

sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo tee /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf <<EOF
[Service]
MountFlags=shared
EOF
sudo systemctl restart docker.service

不是 systemd 服务的话,直接把目标目录所在的挂载点设为共享。把 /path/to/dir 换成你准备给容器用的那个目录:

sudo mount --make-shared $(df -P /path/to/dir | tail -1 | awk '{ print $6 }')

mount --make-shared 只在本次运行期间有效,重启后需要重新执行。要开机自动跑 CloudDrive,请把这条命令一并加进启动项。

现成的 NAS 装法

群晖 Synology 和威联通 QNAP 有第三方套件,Unraid 有社区模板,飞牛 fnOS 可以下载对应架构的 fpk 包手动安装。任何能跑 Docker 的 NAS,也都可以直接用上面的镜像。

  • Synology
  • QNAP
  • Unraid
  • 飞牛 fnOS

NAS 套件由第三方提供,我们不对其安全性和稳定性负责。镜像和安装包请以官方渠道为准。

端口与目录

  • 端口 19798
  • /Config 配置
  • /CloudNAS:shared 挂载
  • /dev/fuse

逐条参数说明、CLI 写法和常见问题,都在 Docker 部署指南里。

Docker 部署指南

无头 Linux

没有桌面的机器一样能装

服务本身不需要图形界面。下载对应架构的压缩包,展开,运行,然后从任意一台机器的浏览器连过去就行。

tar zxvf clouddrive-2-linux-$ARCH-$VERSION.tgz
cd clouddrive-2-linux-$ARCH-$VERSION
./clouddrive
  • 先确认内核支持 FUSE

    看看 /dev/fuse 在不在。不支持 FUSE 的内核无法挂载本地目录,但 Web 界面、备份和 WebDAV 服务仍然可用。

  • 以非 root 用户运行

    按发行版的方式装好 fuse3,确认 fusermount3 能跑,再编辑 /etc/fuse.conf,把 user_allow_other 前面的 # 删掉。

  • 开机自启

    把 clouddrive 加进系统自启动,或者注册成 systemd 服务,具体写法看发行版文档。

  • Arch Linux

    有现成的 AUR 包:yay -Syu clouddrive,然后 systemctl enable --now clouddrive.service 起服务,也可以用 --user 以用户身份运行。

逐平台的安装步骤

平台

支持的系统与架构

平台 架构 说明
Windows x64 · Arm64 安装包,装完桌面有快捷方式,浏览器打开 localhost:19798
Linux x86_64 · aarch64 · armv7 tgz 压缩包;Arch Linux 及衍生版另有 AUR 包
macOS x86_64 · aarch64 推荐用 Homebrew 安装,也可手动解压 tgz;需要先装 macFUSE
Docker amd64 · arm64 · armv7 镜像 cloudnas/clouddrive2,宿主机需开启共享挂载
飞牛 fnOS x86_64 · aarch64 对应架构的 fpk 包,手动安装
Android x86_64 · aarch64 · armv7 未 root 的系统无法挂载本地文件系统,其余功能可用
Synology · QNAP · Unraid 视机型而定 第三方套件与社区模板,或直接运行 Docker 镜像

获取

如何安装

装好之后

用浏览器打开 http://<主机 IP>:19798 注册或登录,然后添加云盘账户、设置挂载点。逐平台的安装步骤见帮助与安装, Docker 的完整参数见 Docker 部署指南

挂载云盘、Web 界面和 WebDAV 基础服务不需要付费。跨云盘快速复制、多云盘备份、文件变更通知、加密文件系统、应用级权限控制和独立 WebDAV 用户属于会员功能,详见会员与价格

关于这些功能

本页写的是应用当前的功能。CloudDrive2 仍在持续开发,云服务商与各平台的限制也在变,所以功能可能调整,也可能在不另行通知的情况下移除。

欢迎提功能需求、报 bug——下一个版本做什么,很大程度上就是这么定的。最好提到 GitHub issues 上,有记录也追得到;也可以写信到 waytechcloudfs@gmail.com,或者加入 Telegram 群