Relayium 对比 scp:更简单的 SSH 文件传输
最近更新: 2026-07-12
几十年来,scp 一直是通过 SSH 传文件的默认方式:几乎装在你会用到的每一台类 Unix 机器上,人人都熟悉它的用法,而且一直很好用。没必要假装不是这样——scp 的地位是实至名归的。
Relayium 的 CLI 并不是要取代 SSH,而是搭在你已经拥有的同一条 SSH 访问权限之上。push 和 pull 使用你的 SSH 连接的方式和 scp 一样,但补上了几件 scp 从未打算做的事:接续中断的传输、用校验和验证每个文件、显示真实进度,以及在远程什么都没安装的情况下依然能用。
scp 确实更简单的场景
有必要坦白说:在很多任务里,scp 就是对的工具,加任何别的东西反而是负担。
- 它已经装好了——不用下载任何二进制,不用做任何配置,几乎你会 SSH 进去的每台服务器上都有。
- 它久经考验。几十年的使用积累、行为清晰可预期,每个系统管理员都已经熟悉它的参数。
- 对于真正的一次性任务——现在就复制这一个文件——直接敲 scp file.txt user@host:path,比安装任何东西都省事。
- 对于不想引入 OpenSSH 之外任何依赖的快速、一次性脚本,它是理想之选。
开始之前
下面用到的都是 relayium CLI,所以没装的话先装上。在 macOS 或 Linux 上,一条命令就能把预编译二进制放进你的 PATH:
curl -fsSL https://relayium.com/install.sh | sh
- 想自己挑文件,或在 Windows 上?从发布页下载二进制——relayium.com/cli 列出了所有安装方式(装了 Go 也可 go build -o relayium ./cmd/relayium)。
- relayium --version 可确认是否装好。不装这一步,下面的命令只会报 “command not found”。
push / pull:同一条 SSH,加上断点续传、校验和进度
relayium push 和 relayium pull 走的是与 scp 完全相同的 SSH 访问——同一台主机、同一把密钥、同一个端口。区别在于连接建立之后发生了什么。
每个文件到达后都会用 SHA-256 哈希做端到端校验,因此一个看起来完成了的传输,其内容确实和发出的一字不差。如果传输被打断——连接掉线、笔记本合上盖子——重新运行同一条命令会从中断处接着传,而不是全部重传,全程还能看到逐文件的真实进度,而不是悄无声息地拷贝。
实际使用上最大的差别,是远程没装 relayium 时会发生什么。push 会自动检测,如果没装,就退化为通过同一条 SSH 连接把一个普通的 tar 归档流传到对端并执行 tar -x——因此 push 在完全裸机的服务器上依然可用,事先无需安装任何东西。这个兜底只属于 push:pull 始终需要远程已经装好 relayium,因为在 pull 里,远程机器才是充当发送方的一端。
relayium push ./photos user@your-server:backups/
relayium pull user@your-server:backups/ ./restore
超越 SSH:daemon 直连与跨网络配对
scp 只能在你拥有 SSH 访问权限的地方使用。Relayium 的 CLI 又加了两种 scp 没有对应能力的传输方式。
relayium serve 能把你拥有的一台机器变成一个 daemon 直连目标,通过证书固定的 TLS 1.3 访问——无需 SSH、无需 22 端口,信任建立在第一次连接时(可交互批准,或用 relayium authorize 提前授权以支持无人值守),此后一直固定。用 relayium:// 地址直接向它 push。
如果要发给一个你完全没有 SSH 访问权限、身处互联网另一端的人,relayium send / receive 则改用一个简短代码来配对两台电脑——直连点对点,并在两端都打印一段验证码(SAS),传输开始前双方核对确认。这种场景 scp 完全无解,你首先得有 SSH 访问权限才行。
relayium push ./build relayium://your-server
relayium send ./report.pdf
文件夹镜像:sync 对比反复运行 scp -r
反复用 scp -r 拷贝整个目录,意味着每次都要重传所有内容,也没有「发生了什么变化」或「该删除什么」的概念。relayium sync 在 push/pull 或 daemon 直连之上构建增量单向镜像:只传发生变化的文件;--delete 会删除目标端上源端已经消失的文件;--watch 会在本地文件变化时实时持续重新同步——不需要额外的定时任务。
relayium sync ./photos user@your-server:backups/photos --delete --watch
功能一览对比
把最关键的差别并排列出:
- 可用性:scp 几乎预装在所有服务器上;Relayium 的 CLI 是单一二进制,一条命令安装一次即可。
- 断点续传:scp 中断的传输要从头开始;push/pull 会从中断处继续。
- 完整性:scp 事后不会校验内容;Relayium 的每次传输都会做逐文件的 SHA-256 校验。
- 裸机服务器:scp 不需要任何额外东西;远程未装 relayium 时,push 通过 tar 兜底同样能用(pull 需要远程装有 relayium,没有兜底)。
- 超越 SSH:scp 只能走 SSH;Relayium 还提供 daemon 直连(证书固定 TLS,无需 SSH)以及完全不需要 SSH 访问权限的跨网络配对码传输(send/receive)。
- 文件夹镜像:scp -r 每次都重传所有内容;relayium sync 支持 --delete 与 --watch 的增量镜像。
- 费用与许可:两者都免费;scp 随 OpenSSH 一起提供,Relayium 的 CLI 采用 AGPL-3.0 许可并开源。
常见问题
Relayium 的 CLI 需要账号吗?
push/pull 不需要——它使用你自己的 SSH 访问权限,方式和 scp 完全一样,不需要 Relayium 账号,也不需要登录;daemon 直连和 sync 同样如此。send 和云端 up 是例外:send 需要账号,好让服务器签发配对码(如果用的是别人给你的码则不需要),up 需要账号来存文件。接收则从不需要。
如果远程服务器没装 Relayium,push 还能用吗?
可以。push 会先检测,如果 relayium 不在,就会退化为通过同一条 SSH 连接传输一段普通的 tar 流,因此在裸机服务器上依然可用。这个兜底只属于 push——pull 始终需要远程已经装好 relayium,因为在 pull 里远程要充当发送方。
用起来真的和 scp 一样简单吗?
命令形式很相近:relayium push src user@host:dest,对应 scp -r src user@host:dest。区别只会在出问题时体现出来——连接掉线时会续传而不是重来,且每个文件到达后都会做校验和验证。
什么时候该直接用 scp?
对于真正的一次性拷贝——不需要续传,不需要校验,也不想引入额外的二进制——scp 本来就在那里,是更简单的选择。它也是快速脚本里更稳妥的默认项,不想引入新依赖时尤其如此。
Relayium 的 CLI 免费吗?
完全免费——没有付费档位,AGPL-3.0 许可并开源,每种模式都是两端直接连接。
安装免费的 Relayium CLI,在你已有的 SSH 访问权限上试试 push 或 pull。
获取 CLI