本文先概述常见通过跳板机传文件的思路与要点,然后分别介绍多个可选方案、何时选用、如何提高稳定性与传输速度、以及必要的恢复与校验策略,方便运维人员在不同网络与安全约束下快速决策与实施。
常见方案有:一、使用scp(简洁、适合小文件或一次性复制);二、使用sftp(交互性强、可批量脚本化);三、使用rsync(增量、断点续传、节省带宽,适合大目录);四、tar/ssh(把大量小文件打包后直连传输,减少文件数开销);五、SSHFS/挂载(适合需要频繁读写的场景)。如果要在两台受限主机间通过跳板机中转,优先考虑在客户端配置 ProxyJump(ssh -J)或 ProxyCommand 简化连接链路。
稳定性关键在于会话保持与断线恢复:在 SSH 配置中启用 KeepAlive(ServerAliveInterval、ServerAliveCountMax)和连接复用(ControlMaster/ControlPath/ControlPersist),并在远端用 rsync 的 --partial 或 --partial-dir 保留半传文件以便续传。此外,使用 tmux/screen 在跳板机上发起长时间任务,避免因本地网络抖动导致传输中断。
速度优化技巧包括:对大文件或可靠链路使用 --whole-file,必要时关闭压缩以减少 CPU 开销;对慢链路启用 -z 压缩并搭配 --compress-level;大量小文件优先打包(tar -cf - | ssh …),或使用并行传输工具(并行 rsync/pscp/gzip 并行流)。网络层面可通过调整 TCP 窗口、使用多路复用或分片并发上传加速。不要忘记设置带宽限制 (--bwlimit) 在高峰期避免影响业务。
因为 rsync 支持增量、续传与校验,适合断点续传与日常同步任务;tar+ssh 在处理大量小文件时可显著减少握手和权限开销,整体效率比每文件单独 scp 更高。scp 简单但缺少断点续传与高效差异同步能力,不适合频繁或大规模同步。
建议在 ~/.ssh/config 中为目标主机写入 ProxyJump 或 ProxyCommand 示例:Host target HostName target.example.com User user ProxyJump bastion.example.com。这样在使用 scp/sftp/rsync 时可像直连一样简洁,同时把密钥和端口复用到所有工具上。对自动化脚本也可指定 -F 指向特定 ssh 配置文件。
传输完成后使用 sha256sum 或 md5sum 在源端与目标对比,或启用 rsync 的 -c 校验选项。断点续传优先用 rsync 的 --partial/--inplace 或 sftp 的续传功能。对于关键数据,建议传输后比对文件大小与校验和并保留日志,便于回溯。