• 运行 Rclone 官方安装脚本: 这个脚本会自动检测您的系统架构并下载安装最新稳定版的 Rclone。

    Bash

    curl https://rclone.org/install.sh | sudo bash
    
  • 验证安装: 运行以下命令查看版本号,如果成功显示版本信息,则表示安装成功。

    Bash

    rclone version
    
  1. 测试配置: 运行以下命令,如果能列出您 Google Drive 根目录的文件和文件夹,说明配置成功!

    Bash

    rclone lsd gdrive:
    

    (注意:gdrive: 冒号不能少,gdrive 是您之前给远程连接起的名字)。


第二阶段:挂载 Google Drive

  1. 创建挂载点: 在您的主目录下创建一个文件夹,用来作为挂载点。

    Bash

    mkdir -p ~/gdrive
    
  2. 执行挂载命令:

    Bash

    rclone mount gdrive: ~/gdrive --daemon
    
    • rclone mount: 挂载命令。

    • gdrive:: 您配置的远程名称。

    • ~/gdrive: 本地挂载点目录。

    • --daemon: 让 rclone 在后台运行,这样您关闭 SSH 连接后挂载依然有效。

  3. 验证挂载:

    • 使用 df -h 命令,您应该能看到一个类型为 fuse.rclone 的新文件系统。

    • 使用 ls -l ~/gdrive 命令,您应该能看到您 Google Drive 里的文件。


第三阶段:设置开机自动挂载 (Systemd)

为了让挂载持久化,我们创建一个 systemd 服务。

  1. 找到 rclone 的绝对路径:

    Bash

    which rclone
    

    通常输出是 /usr/bin/rclone。请记下这个路径。

  2. 创建 systemd 服务文件: 使用 vim 或您喜欢的编辑器创建服务文件。

    Bash

    sudo vim /etc/systemd/system/rclone-gdrive.service
    

第一步:编写服务文件

请将以下所有内容完整地复制并粘贴到您用 sudo vim /etc/systemd/system/rclone-gdrive.service 打开的文件中。

Ini, TOML

[Unit]
Description=Rclone Mount for Google Drive (/root/gdrive)
AssertPathIsDirectory=/root/gdrive
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/bin/rclone mount gdrive: /root/gdrive \
  --config /root/.config/rclone/rclone.conf \
  --allow-other \
  --vfs-cache-mode full \ 
  --vfs-cache-max-size 10G \ 
  --dir-cache-time 1000h \ 
  --buffer-size 128M \
  --log-file /var/log/rclone-gdrive.log \
  --log-level INFO

ExecStop=/bin/fusermount -u /root/gdrive
Restart=on-failure
RestartSec=10

[Install]
WantedBy=default.target

文件内容解释

  • [Unit]部分:定义了服务的描述、依赖关系(必须在网络连接后启动)和断言(挂载点目录必须存在)。

  • [Service]部分:

    • User=root, Group=root: 使用您指定的 root 用户和组来运行。

    • ExecStart: 这是核心的启动命令。

      • gdrive:: 这是您 rclone 远程的名称。如果您的远程不叫gdrive,请修改成您自己的名称。

      • /root/gdrive: 您的挂载点。

      • --config /root/.config/rclone/rclone.conf: 明确指定 root 用户的配置文件路径,确保 systemd 能正确加载。

      • --allow-other: 重要,允许系统上的其他用户(非root)也能访问挂载点中的文件。

      • --vfs-cache-mode writes: 开启VFS写入缓存,能显著提高文件写入和修改的性能和兼容性,强烈推荐。

      • --log-file /var/log/rclone-gdrive.log: 将 rclone 的运行日志输出到指定文件,方便日后排查问题。

      • --log-level INFO: 设置日志级别为“信息”,记录常规操作。

    • ExecStop: 定义了如何停止服务(即卸载磁盘)。

    • Restart=on-failure: 如果服务意外失败,10秒后自动重启。

  • [Install]部分:让服务可以被设置为开机自启。


第二步:后续操作

在您保存并退出 vim 编辑器后,请依次执行以下命令来启动和管理您的新服务。

  1. (可选,但推荐)启用 –allow-other 选项

    为了让 –allow-other 参数生效,需要编辑 fuse 的配置文件。

    Bash

    sudo nano /etc/fuse.conf
    

    找到 #user_allow_other 这一行,去掉行首的 # 号,保存并退出。

  2. 重新加载 systemd 配置

    让 systemd 读取您刚刚创建的新服务文件。

    Bash

    sudo systemctl daemon-reload
    
  3. 设置开机自启

    Bash

    sudo systemctl enable rclone-gdrive.service
    
  4. 立即启动服务

    Bash

    sudo systemctl start rclone-gdrive.service
    
  5. 检查服务状态

    这是验证一切是否正常运行的关键步骤。

    Bash

    sudo systemctl status rclone-gdrive.service
    

    如果您看到绿色的 active (running) 字样,那么恭喜您,Google Drive 已经成功挂载,并会在每次服务器重启后自动挂载!如果服务启动失败,您可以通过 sudo journalctl -u rclone-gdrive.service 或查看 /var/log/rclone-gdrive.log 文件来定位问题。

Debian11需要先安装fuse3

  1. 确认 fuse3 已安装

    确保您已经运行了:

    Bash

    sudo apt install -y fuse3
    
  2. (如果需要)配置 allow_other

    这个步骤仍然有效。如果您希望挂载的目录能被其他用户访问(例如,在 systemd 服务中),您还是需要编辑 /etc/fuse.conf 文件,并取消 user_allow_other 前面的注释符号 (#)。

    Bash

    sudo nano /etc/fuse.conf
    
  3. 直接进行测试

    现在,请注销并重新登录您的服务器(以确保 fuse3 安装后所有会话环境都已更新),然后直接运行我们的调试命令:

    Bash

    rclone mount gdrive: ~/gdrive -vv
    

恭喜您挂载成功!您的这个想法完全可行,而且是很多人使用 VPS 的一个经典应用场景。

这被称为“云端转存”或“云端对拷”。下面我为您详细解释这个过程,特别是您最关心的网络流量路径问题。


1. 更好的复制方法:使用 rclone copy 命令

相比于挂载后使用 cp 命令,rclone 提供了一个更高效、更强大的原生命令来进行云端对拷:rclone copy

您甚至不需要挂载驱动器,只需要在 rclone 中配置好两个远程(比如一个叫 gdrive,一个叫 onedrive)即可。

命令如下:

Bash

# -P 参数可以实时显示进度
rclone copy gdrive:path/to/source onedrive:path/to/destination -P

使用 rclone copy 的网络流量路径有两种可能

情况A:支持“服务器端复制” (Server-Side Copy)

某些云服务商之间允许 rclone 发起一个“服务器端复制”的请求。这意味着您在 VPS 上运行命令后,rclone 会告诉 OneDrive:“请你直接去这个 Google Drive 的地址下载文件”。

  • 流量路径图: [Google Drive 服务器] ---> (数据直传) ---> [OneDrive 服务器]

  • 您的 VPS 角色: 您的 VPS 仅作为“指挥官”,发送指令和处理少量元数据,几乎不消耗数据流量。这是最高效、最快的方式。

  • Google Drive 到 OneDrive: rclone 支持从 Google Drive 到 OneDrive 的服务器端复制!所以您非常幸运,可以使用这种最高效的方式。

情况B:不支持“服务器端复制”

如果云服务商之间不支持这种操作,rclone copy 的流量路径会和 cp 命令一样,仍然需要经过 VPS 中转。

  • 流量路径图: [Google Drive 服务器] ---> (下载) ---> [您的 VPS] ---> (上传) ---> [OneDrive 服务器]

  • 但即便如此,rclone copy 依然优于 cp,因为它有以下优点:

    • 更高效: 专为云端 API 优化,可以多线程传输,自动重试失败的块。

    • 数据校验: 传输完成后会进行文件校验(checksum),确保文件的完整性。

    • 资源占用低: 比 FUSE 挂载方式更节省系统资源。

    • 更稳定: 即使您的 SSH 连接断开,您也可以使用 nohupscreen/tmux 等工具让它在后台稳定运行。


结论与建议

可以,您完全可以在 VPS 上实现 Google Drive 和 OneDrive 之间的文件复制。

强烈建议您使用 rclone copy 命令来完成这个操作,而不是先挂载再用 cp。因为 rclone 支持 Google Drive -> OneDrive 的服务器端复制,这意味着:

  1. 速度极快。

  2. 几乎不消耗您 VPS 的宝贵流量。

您只需要先用 rclone config 把 OneDrive 也配置好,然后就可以用一条简单的 rclone copy 命令开始您的数据“乾坤大挪移”了。