Linux 跨机器文件传输与工具对比笔记

一、rclone 连接远程 Linux 系统

rclone 是一款支持多种存储后端的命令行同步工具,可基于 SSH/SFTP 协议连接另一台 Linux 主机。

1. 核心方案:SFTP 配置

在源主机执行 rclone config,按向导添加远程连接:

  • 输入 n 创建新连接,命名如 linux-server
  • 存储类型选择 SFTP
  • 填写目标主机的 hostuserport(默认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-run

3. 挂载为本地文件系统

mkdir ~/remote-server
rclone mount linux-server:/remote/folder ~/remote-server &
fusermount -u ~/remote-server   # 卸载

4. 适用场景

  • 跨云盘、云存储同步
  • 服务器间自动化备份
  • 需要加密、校验、断点续传

二、rclone 与 FTP 对比

维度rcloneFTP
定位现代化命令行工具历史悠久的网络协议
支持的存储类型40+ 种(S3、Google Drive、SFTP等)仅 FTP 服务器
核心功能sync、copy、mount、校验、加密put、get、ls
增量同步✅ 原生支持
断点续传⚠️ 部分实现支持
数据校验✅ 哈希校验
并发传输✅ 多线程❌ 通常单连接
加密✅ 客户端加密依赖 FTPS 或明文
使用复杂度需学习命令,功能强大简单,但功能弱

使用建议

  • 优先选用 rclone:需要自动化、可靠性、跨云存储时
  • 仅特定场景用 FTP:连接老旧设备或极简单临时传输
rclone 可以将 FTP 作为后端存储,用现代功能驱动旧协议。

三、不同方案的服务端/客户端要求

方案机器A需要安装机器B需要安装配置复杂度
FTPFTP 服务端(如 vsftpd)FTP 客户端(如 ftp命令)
rclonerclone 单文件无需额外(需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 免密配置

scprsync 默认每次连接都需要密码,通过 SSH 免密登录可解决。

配置步骤(在操作机上执行)

1. 生成密钥对(如未生成)

ssh-keygen -t rsa   # 一路回车,不设密码

2. 将公钥复制到目标机器

方法一(推荐):

ssh-copy-id user@目标机器IP

方法二(手动):

cat ~/.ssh/id_rsa.pub   # 复制输出内容
# 登录目标机器,将内容追加到 ~/.ssh/authorized_keys

3. 修复权限(如仍提示输密码)

在目标机器上执行:

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设备rcloneftp视情况
完全免密的自动化脚本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/

标签: none

添加新评论