在进行服务器迁移时,需要将老机器上的 3TB 数据传输到新服务器。两台服务器均有公网 IP,但带宽波动较大。
在对比了 scp 速度过慢、rsync 单线程难以跑满带宽等方案后,最终采用 Rclone + SFTP 的方式,成功实现了:
文章参考 来源: 这里
起初使用 scp,速度慢且不支持断点续传;rsync 虽然稳定,但因单线程无法跑满带宽。最终选择了 Rclone:支持多线程、断点续传、自带校验,是公网大文件传输的最佳工具之一。
bashcurl https://rclone.org/install.sh | bash
bashrclone version
相关信息
注意:仅在“发送端(源服务器)”安装 Rclone。 接收端只需要 SSH 服务即可,无需安装 Rclone,传输将通过 SFTP 进行。
bashrclone config
按以下步骤操作:
①提示 No remotes found, make a new one? → 输入 n
②name> → 输入远程名称,例如 backup_server
③Storage> → 输入 sftp
④host> → 填写目标服务器公网 IP
⑤user> → 一般为 root
⑥port> → 回车(默认 22)
⑦pass> → 选择 y 并输入 SSH 密码。若你已配置 SSH Key,则可指定 key_file 路径,无需输入密码。
⑧出现 Edit advanced config? 时选择回车(默认 No)。
⑨看到配置详情后输入 y 保存,再输入 q 退出。
bashrclone lsd backup_server:/
若能列出目录,则说明连接成功。
传输 3TB 数据,哪怕跑满带宽也得传好久。千万不要直接在 SSH 窗口里跑,因为电脑休眠或者网络断开,进程就杀掉了。
一定要用 screen 或 tmux!
bash# 如果没装 screen,先 apt install screen
screen -S moving_files
以下为实测最稳、最能榨干带宽的配置:
bashrclone copy /本地/数据路径 backup_server:/远程/存储路径 \ -P \ --transfers=16 \ --multi-thread-streams=4
参数说明:
| 参数 | 作用 |
|---|---|
| copy | 安全模式,目标端不会删除多余文件 |
| -P | 显示进度条 |
| --transfers=16 | 并发传输文件数量(关键,加大带宽利用率) |
| --multi-thread-streams=4 | 单个大文件采用 4 线程分片传输 |
为了确保 3TB 数据完全一致,建议进行校验。
bashrclone check /本地/数据路径 backup_server:/远程/存储路径 --size-only
bashrclone check /本地/数据路径 backup_server:/远程/存储路径
输出:
bash0 differences found
代表完全一致,可以放心。
公网服务器之间传输 TB 级数据时,Rclone 是最强且最稳的方案。
多线程 + 并发传输可以充分利用带宽。
支持断点续传,不惧网络波动。
自带校验确保数据一致性。
内网传输首选:tar + nc 公网传输首选:Rclone(毋庸置疑)
至此,整个迁移过程顺利完成,数据安全可靠。 搞定,收工!

