Relayium

Relayium 对比 croc:从终端加密传输文件

最近更新: 2026-07-31

croc 是最受欢迎的终端间传输文件工具之一:一个简短好记的暗号短语、一次 PAKE 密钥交换,就能直接用。Relayium CLI 想做的是同一件事,实现方式也相似——免费、开源、端到端加密,只有 send 为了签发配对码才需要账号。

这不是一篇贬低文。croc 的口碑是实至名归的。本文客观对比两者的共同点、Relayium CLI 因为能对接你已有的服务器而多出的能力,以及 croc 老实说更简单的场景。

Relayium 与 croc 的共同点

先说重合的部分,其实不少:两者都是安装一次就好的小型单一二进制文件,直连传输都不收费,也都开源——croc 采用宽松的 MIT 许可证,Relayium CLI 采用 AGPL-3.0 许可证——文件相关的每一行代码你都能读到。

  • 一个只有两端知道的简短暗号,就足以让彼此找到对方并协商出密钥。croc 的暗号是当场随口定的;Relayium 的则由服务器签发给已登录的发送方,而接收方依然不需要账号。
  • 全程端到端加密:中间的中继或会合节点从不看到你文件的内容。
  • 中断的传输可以接着传,而不必从头再来;两者也都会校验收到的内容确实和发出的一致。
  • 跨平台:macOS、Linux 和 Windows。

开始之前

下面用到的都是 relayium CLI,所以没装的话先装上。在 macOS 或 Linux 上,一条命令就能把预编译二进制放进你的 PATH:

curl -fsSL https://relayium.com/install.sh | sh
  • 想自己挑文件,或在 Windows 上?从发布页下载二进制——relayium.com/cli 列出了所有安装方式(装了 Go 也可 go build ./cmd/relayium)。
  • relayium --version 可确认是否装好。不装这一步,下面的命令只会报 “command not found”。

SSH 与 daemon 直连:对接你已有的服务器

这是两者在实际使用上最大的差别。croc 围绕单一流程构建——输入暗号、输出暗号。Relayium CLI 又加了两种传输方式,用的是你本就已有的基础设施。

relayium push / pull 复用你现有的 SSH 权限,因此没有新增的信任关系,也无需分享任何暗号。push 甚至能在远程完全没装 relayium 的服务器上工作,退化为通过 SSH 连接传输一段普通的 tar 流——但这个兜底只属于 push;pull 始终需要远程装有 relayium,因为在那里它要充当发送方。

relayium serve 能把你拥有的任何一台机器变成一个 daemon 直连 目标,通过证书固定的 TLS 1.3 访问,无需 SSH、无需暗号——信任建立在第一次连接时(可交互批准,或提前授权以支持无人值守),此后一直固定,思路和 SSH 的主机密钥一样。

relayium push ./photos user@your-server:backups/
relayium serve --dir ~/incoming
relayium push ./build relayium://your-server

文件夹同步,以及一段你要核对两遍的验证码

croc 发送一批文件后就退出——要更新对方就得再发一次,而且没有「该删除什么」的概念。Relayium CLI 增加了 relayium sync,在上面两种传输方式之上做增量单向镜像:只传发生变化的内容;--delete 会删除目标端上源端已经消失的文件(daemon 只有在以 --allow-delete 启动时才会执行,接收方必须自己选择开启);--watch 会在文件变化时实时持续重新同步,不需要额外的定时任务。

对于一次性的跨网络传输,relayium send / receive 扮演的角色和 croc 的暗号短语一样,用一个简短的代码配对两台电脑。它是直连点对点的,并且会在两端都打印一段简短的验证码(Short Authentication String)。通过带外方式核对它,可以确认固定的 TLS 证书指纹没有被替换、会合服务没有冒充任一端;它认证的是端点,而不是网络路径上的每一跳。这个模式是纯直连的,如果两端找不到直连路径,传输会直接失败,而不会退回到中继。

relayium sync ./photos user@your-server:backups/photos --delete --watch

croc 更简单的场景

确实存在 croc 更适合的场景,值得坦白说出来。

  • 你现在就想把一个文件发给朋友,环节越少越好——不需要能连到任何服务器,两端也不用配置任何东西。
  • 你处在严格的 NAT 后面,无法打通直连路径:croc 的中继无论如何都会承载加密数据流,传输依然能完成。Relayium 的 send / receive 是纯直连的,在这种情况下可能失败(push/pull 或对可达服务器的 daemon 直连 依然可用,因为它们不依赖点对点直连这一跳)。
  • 你不需要文件夹镜像、SSH 集成,也不想跑一个长期运行的监听端——croc 每端只是一条临时命令,不必多想。
  • 你已经信任 croc 庞大成熟的社区以及它多年的实战积累。

功能一览对比

把最关键的差别并排列出:

  • 对接服务器:Relayium 复用你的 SSH 权限(push/pull)或证书固定 TLS 的 daemon;croc 没有 SSH 集成——需要两端都装好 croc 并共享暗号。
  • 文件夹同步:relayium sync 支持 --delete 与 --watch 的增量镜像;croc 发送一批后就退出,没有镜像或删除语义。
  • 无法直连时:croc 的中继会承载加密数据流,传输依然能完成;Relayium 的 send/receive 是纯直连的。
  • 验证:两者都端到端加密;Relayium 的 send/receive 额外会在传输开始前打印一段供双方核对的简短验证码。
  • 自托管:两者都可自托管——croc 的中继是一个小巧的独立二进制;Relayium 的服务器同时也运行着网页版,CLI 的 send/receive 也可以用 --server 指向你自己的实例。
  • 许可证与费用:croc 采用 MIT 许可证,Relayium CLI 采用 AGPL-3.0 许可证;直连传输都不收费。croc 完全不需要账号;Relayium 只有 send 为了签发配对码才需要。

常见问题

Relayium 的 CLI 免费吗?

CLI 采用 AGPL-3.0 许可并开源,它的直连模式——push、pull、sync、daemon 直连与 send / receive——都是两端直接连接,没有什么可计量。唯一的例外是 up:它把文件存放在你的 Relayium 账号下,受套餐的存储上限约束;croc 没有对应功能。

需要账号吗?

send 需要,云端 up 也需要。push/pull 用你自己的 SSH 权限,daemon 直连用你机器之间证书固定的 TLS 信任,这两者都不涉及 Relayium 账号。send/receive 是例外:配对码只能由服务器签发,而且只签发给已登录的账号,所以发送方要先运行一次 relayium login——如果 send 用的是别人给你的码,它不生成新码,也就不需要登录。接收方始终不需要账号。

CLI 的配对码能和 Relayium 的浏览器版互通吗?

目前还不能实时配对传输——CLI 的 send/receive 用的是自己的直连握手协议,和浏览器基于 WebRTC 的配对流程不是一回事,两者暂不互通。如果只想用浏览器把文件交给对方,可以用 Relayium 的存储下载链接,或者浏览器版自己的配对码模式。

可以自托管吗?

可以。Relayium 的服务器以 Docker 镜像形式发布(docker compose up -d --build),你也可以用 --server https://your-domain 让 CLI 的 send/receive 指向你自己的实例——和自建 croc 中继是同样的思路。

安装免费的 Relayium CLI,试试 push、sync 或 send——完全免费,上手速度不输 croc。

获取 CLI

继续阅读