Relayium 对比 croc:从终端加密传输文件
最近更新: 2026-07-31
croc 是最受欢迎的终端间传输文件工具之一:一个简短好记的暗号短语、一次 PAKE 密钥交换,就能直接用。Relayium CLI 想做的是同一件事,实现方式也相似——免费、开源、端到端加密,只有 send 为了签发配对码才需要账号。
这不是一篇贬低文。croc 的口碑是实至名归的。本文客观对比两者的共同点、Relayium CLI 因为能对接你已有的服务器而多出的能力,以及 croc 老实说更简单的场景。
Relayium 与 croc 的共同点
先说重合的部分,其实不少:两者都是安装一次就好的小型单一二进制文件,都完全免费、没有付费档位,都以宽松许可证开源,文件相关的每一行代码你都能读到。
- 一个只有两端知道的简短暗号,就足以让彼此找到对方并协商出密钥。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 -o relayium ./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 指向你自己的实例。
- 许可证与费用:都是 AGPL-3.0 许可,都完全免费。croc 完全不需要账号;Relayium 只有 send 为了签发配对码才需要。
常见问题
Relayium 的 CLI 免费吗?
完全免费。没有付费档位,也没有什么可计量的——每种模式都是两端直接连接,CLI 采用 AGPL-3.0 许可并开源。
需要账号吗?
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