Linux跨机器文件传输工具
Linux 跨机器文件传输与工具对比笔记
一、rclone 连接远程 Linux 系统
rclone 是一款支持多种存储后端的命令行同步工具,可基于 SSH/SFTP 协议连接另一台 Linux 主机。
1. 核心方案:SFTP 配置
在源主机执行 rclone config,按向导添加远程连接:
- 输入
n创建新连接,命名如linux-server - 存储类型选择 SFTP
- 填写目标主机的 host、user、port(默认22)
- 选择认证方式(密码或 SSH 密钥)
2. 常用命令
# 列出远程目录
rclone lsd linux-server:
# 复制本地文件到远程
rclone copy /local/path/file linux-server:/remote/dir/
# 同步远程目录到本地(建议先用 --dry-run 预览)
rclone sync linux-server:/remote/path /local/path --dry-run3. 挂载为本地文件系统
mkdir ~/remote-server
rclone mount linux-server:/remote/folder ~/remote-server &
fusermount -u ~/remote-server # 卸载4. 适用场景
- 跨云盘、云存储同步
- 服务器间自动化备份
- 需要加密、校验、断点续传
二、rclone 与 FTP 对比
| 维度 | rclone | FTP |
|---|---|---|
| 定位 | 现代化命令行工具 | 历史悠久的网络协议 |
| 支持的存储类型 | 40+ 种(S3、Google Drive、SFTP等) | 仅 FTP 服务器 |
| 核心功能 | sync、copy、mount、校验、加密 | put、get、ls |
| 增量同步 | ✅ 原生支持 | ❌ |
| 断点续传 | ✅ | ⚠️ 部分实现支持 |
| 数据校验 | ✅ 哈希校验 | ❌ |
| 并发传输 | ✅ 多线程 | ❌ 通常单连接 |
| 加密 | ✅ 客户端加密 | 依赖 FTPS 或明文 |
| 使用复杂度 | 需学习命令,功能强大 | 简单,但功能弱 |
使用建议
- 优先选用 rclone:需要自动化、可靠性、跨云存储时
- 仅特定场景用 FTP:连接老旧设备或极简单临时传输
rclone 可以将 FTP 作为后端存储,用现代功能驱动旧协议。
三、不同方案的服务端/客户端要求
| 方案 | 机器A需要安装 | 机器B需要安装 | 配置复杂度 |
|---|---|---|---|
| FTP | FTP 服务端(如 vsftpd) | FTP 客户端(如 ftp命令) | 高 |
| rclone | rclone 单文件 | 无需额外(需SSH服务) | 中 |
| scp / rsync | 无需 | 无需(需SSH服务) | 极低 |
rclone 安装(以 Linux amd64 为例)
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
sudo cp rclone /usr/local/bin/
sudo chmod +x /usr/local/bin/rclone四、scp / rsync 免密配置
scp 和 rsync 默认每次连接都需要密码,通过 SSH 免密登录可解决。
配置步骤(在操作机上执行)
1. 生成密钥对(如未生成)
ssh-keygen -t rsa # 一路回车,不设密码2. 将公钥复制到目标机器
方法一(推荐):
ssh-copy-id user@目标机器IP方法二(手动):
cat ~/.ssh/id_rsa.pub # 复制输出内容
# 登录目标机器,将内容追加到 ~/.ssh/authorized_keys3. 修复权限(如仍提示输密码)
在目标机器上执行:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys验证免密登录
ssh user@目标机器IP
scp local.txt user@目标机器IP:/remote/path/注意事项
- 免密配置是基于用户的,切换用户或目标机器需重新配置
- 如需在脚本中自动输密码(不推荐安全场景),可了解
sshpass rsync还支持守护进程模式(rsync://),使用独立密码文件认证
五、场景速查表
| 需求 | 推荐方案 | 是否需要额外安装 |
|---|---|---|
| 临时传一两个文件 | scp | 否(需SSH) |
| 文件夹同步、备份 | rsync | 否(需SSH) |
| 跨云盘、云存储同步 | rclone | 是(单文件) |
| 连接老旧FTP设备 | rclone 或 ftp | 视情况 |
| 完全免密的自动化脚本 | scp/rsync + SSH免密 | 需配置一次 |
附:快速命令示例
# scp 上传文件
scp file.txt user@192.168.1.100:/home/user/
# rsync 同步目录(带进度、压缩、归档)
rsync -avz --progress /local/data/ user@192.168.1.100:/backup/data/
# rclone 同步到云盘
rclone sync /local/backup mydrive:backup/