Relayium

用 Relayium CLI 从终端传输文件与文本

最近更新: 2026-09-01

Relayium CLI 是一个体积很小的单一二进制文件,用来从终端传输文件与临时文本——端到端加密、可自托管,并且以 AGPL-3.0 许可免费开源。你可以把文件复制到服务器、在机器间推送构建产物、跨网络发送压缩包,也可以直接传 URL、命令或代码片段,无需先保存成文件。

在直连模式下——push、pull、sync、daemon 直连、send / receive 以及 text——文件字节都在两端之间直接传输,从不经过 Relayium 的服务器,因此不计量、也不收费。有两种模式不是直连:up 会把加密副本存放在你的账号下,占用套餐的每月流量额度、同时存放的存储上限、留存时长与每日上传额度这四项独立限制;设备收件箱则会把加密任务排队存着,直到你自己的那台机器回来取。本指南带你完成安装并走通第一次传输,然后指向各个模式更深入的操作指南。

一条命令完成安装

你需要准备

  • 一台有终端的 macOS、Linux 或 Windows 机器。三个系统都提供 x86-64 和 arm64 的预编译二进制。
  • curl,用于 macOS 和 Linux 上的一行安装——curl --version 会打印版本号。Windows 请改从发布页下载 .zip。
  • 一个可写的安装目录。脚本能写 /usr/local/bin 时就用它,否则用 ~/.local/bin,最后几行会写明它选了哪个。
  • push、pull 和 daemon 直连不需要别的东西。只有用 send 或 text 生成配对码、以及用 up 上传,才需要一个免费的 Relayium 账号。

在 macOS 或 Linux 上,一条命令就能下载适配你操作系统的预编译二进制,并放进你的 PATH:

curl -fsSL https://relayium.com/install.sh | sh
  • 想自己挑选文件?从发布页下载对应的二进制。
  • 已安装 Go?克隆仓库后运行:go build ./cmd/relayium(在 server 目录下执行)。
  • 然后运行 relayium --help 查看全部命令,运行 relayium version 检查构建版本。

传输文件与文本的七种方式

两个问题就能决定用哪一种:对端此刻能不能离线,以及那台机器是不是你自己管理的。下面没有一句是笼统承诺——每一种模式都会写明它需要什么账号、对端能否离线、字节走哪条路,以及它到底校验了什么。

  • relayium up / relayium down(云端)——对端可以离线。up 在本机加密,只上传密文并打印出一个链接;down 在任何另一台机器上取回并解密,无需账号。上传需要 relayium login,并会占用套餐的每月流量、存储上限、留存时长与每日上传额度;密钥只在链接的 #k= 片段里,从不到达 Relayium:加密副本会一直存到留存到期,但链接一旦丢失,能解密它的唯一密钥也就没有了。
  • Device Inbox(设备收件箱)——对端可以离线;在 CLI 里它只有接收侧:由浏览器或原生应用把文件发进你自己机器上的一个文件夹,CLI 没有任何命令能往收件箱里发送。两端要登录同一个账号,并且必须有人在接收端那台机器上选好文件夹、在本地把接收打开。要在你自己的两台服务器之间搬文件,请改用 serve 配合 push 或 sync。
  • relayium text——两个终端之间的临时加密消息,两端必须同时在线。生成配对码需要 relayium login;拿着别人给你的配对码加入则无需账号,Relayium 服务器也不保存消息正文。
  • relayium send / relayium receive——跨网络传给另一个人,使用一个由发送方 CLI 生成的简短配对码(用 relayium login 登录一次即可;接收方无需登录)。铸出来的配对码有效期 5 分钟,所以要在这段时间内在接收端把命令跑起来。Relayium CLI 的 send/receive 和 text 模式只走 P2P 直连:按它们今天的实现,这条路径里没有 ICE 也没有 TURN,所以两端建立不了直连时,会话会直接失败,而不是回退到中继。这是这些模式的性质,不是 Relayium 整体的性质——App 和网页做跨网络传输时按设计就是走中继的,中继上流过的是它读不了的密文。
  • relayium push / relayium pull——传到一台你已能 SSH 进去的机器。字节走你自己的 SSH 连接,从不经过 Relayium 的服务器,两端都不需要 Relayium 账号。push 和 pull 都不续传:目标已存在就会在发送任何字节之前被拒绝,所以当一次运行可能被中断时,请改用 relayium sync。
  • relayium serve + relayium push relayium://(daemon 直连)——直接在你拥有的两台机器之间传输,走证书固定的 TLS 1.3。无中继、无 SSH、无需配对码。接收端主机的 authorized_fingerprints 文件就是全部的信任决定;登录 Relayium 账号并不会给任何人文件系统权限。
  • relayium sync——单向增量镜像,走和 push 相同的传输通道:大小与修改时间都没变的文件会被跳过。它是那个会在下一次运行时接着传目标端半截文件的模式,并且会校验它确实传输的文件——但单向镜像是当前状态的副本,不是带版本的备份。

发送临时文本

在一台机器运行 relayium text 生成配对码并等待,然后在另一台机器用打印出的配对码加入:

relayium text
relayium text 483920
  • 生成配对码需要先执行 relayium login;持码加入无需登录。
  • 两台机器必须同时在线。消息经过端到端加密,Relayium 服务器不存储消息正文。
  • Relayium CLI 的 send/receive 和 text 模式只走 P2P 直连:按它们今天的实现,这条路径里没有 ICE 也没有 TURN,所以两端建立不了直连时,会话会直接失败,而不是回退到中继。这是这些模式的性质,不是 Relayium 整体的性质——App 和网页做跨网络传输时按设计就是走中继的,中继上流过的是它读不了的密文。
  • 任一端仍可复制或保留收到的文本。
  • 单条消息最多 65,536 UTF-8 字节。更大的内容请使用 relayium send。

第一次传输

最快上手的方式是把一个文件夹复制到你能 SSH 进去的服务器。Relayium 使用你现有的 SSH 访问权限,远程无需任何配置,也不用创建账号:

  1. 确认 CLI 已在 PATH 里。它会打印版本号,而不是 “command not found”。

    relayium version
  2. 确认你平时就能连上那台服务器。push 用的正是这条访问路径,所以 ssh 通了,连接和认证这项前置条件就满足了——但这并不保证传输本身成功,push 还需要 user@your-server:backups/ 有写入权限和足够空间。

    ssh user@your-server true
  3. 把文件夹推上去。最后一个参数是 host:path——冒号才是把它标记为远程的东西,末尾的斜杠表示“放进这个目录里”。

    relayium push ./photos user@your-server:backups/
  4. 确认文件落在了你以为的位置。push ./photos 会在目标下重建 photos/,所以文件夹名会一起带过去。

    ssh user@your-server ls backups/photos

成功时你会看到什么

远端装了 relayium 时,push 每传完一个文件打印一行,并以 0 退出。对着裸机服务器则改为打印 tar 流的汇总行——两者都算成功。

relayium push ./photos user@your-server:backups/
  photos/IMG_0413.jpg (2314518 bytes)
  photos/IMG_0414.jpg (1998233 bytes)
echo $?
# 0
  • 如果远程也装了 relayium,push 就会使用原生协议:发送任何字节之前先对整批做冲突预检,每个文件都做 SHA-256 校验并先落到暂存区再安装。它依然不续传——中断之后重跑会被拒绝,因为已经落地的文件现在存在了。需要续传请改用 relayium sync。
  • 如果远程没装 relayium,push 会退化为普通的 tar 流,因此在裸机服务器上依然可用——这个兜底只属于 push。
  • 用这个命令把同样的文件取回来:relayium pull user@your-server:backups/ ./restore——pull 始终需要远程装有 relayium(没有 tar 兜底),请先在远程装好它。

第一条命令跑不通时

第一次运行时出问题,下面四种加起来比其他所有情况都多。它们都不需要靠猜——每一种都有一条命令,输出就能定性。

现象、检查、修复

安装脚本明明说成功了,却报 “relayium: command not found”。
command -v relayium
# (什么都不打印)

二进制装好了,只是它所在的目录不在 PATH 里。脚本最后几行会写明它用了哪个目录,并打印出该加的那行 export PATH;照着执行,然后开一个新 shell 再试 relayium version。

push 立刻退出并报 “push destination must be remote (host:path)”。
relayium push ./photos user@your-server backups/
# push destination must be remote (host:path)

目标里的冒号丢了,于是 relayium 把它当成了本地路径。按 scp 的写法写,主机和路径之间不要有空格:user@your-server:backups/

同一台服务器 push 没问题,pull 却失败。
ssh user@your-server command -v relayium
# (什么都不打印)

pull 没有 tar 兜底,因为在这个方向上远端才是发送方——它那边必须装有 relayium。用同一条一行命令在服务器上装好,再重新 pull。

两台机器加入了同一个码,其中一台打印 “the other side is running `relayium text`, not `relayium send`/`relayium receive`”。
# 消息会话:两端都跑 text
relayium text
relayium text 483920

两端跑的是不同的命令。发消息就两台都用 relayium text;传文件就一台 relayium send、另一台 relayium receive。这种不匹配会在拨号之前就被拒绝,所以什么都没发出去。

免费,且从设计上保护隐私

上面的直连模式都不收费:push / pull、daemon 直连、send / receive 与 text 的字节都在两端之间直接传输,sync 也走同样的传输通道。它们当中唯一需要登录的,是为 send 或 text 生成配对码的那一端。CLI 直接连接两端,因此你的文件永远不会上传到中间的服务器——唯一会接触 Relayium 的,是 send / receive 与 text 模式下一次很小的会合握手,用来牵线搭桥,绝不是文件本身。走你账号的那两种模式则不同:云端 up 把加密副本存放在你的账号下,所以需要登录,并会占用套餐的每月流量额度、存储上限、留存时长与每日上传额度;设备收件箱会为你自己的一台机器排入一个加密任务,两端都必须登录同一个账号。

每次传输都端到端加密;走原生协议时,一次运行传输的每个文件到达时都会用 SHA-256 哈希校验——零依赖的 tar 兜底路径是例外,它逐文件什么都不校验。续传的范围要窄得多:relayium sync 会在下一次运行时接着传半截文件,relayium down 会在它自己那一次运行内重连并接着下,而 push、pull、send、receive 根本不续传。它可在 macOS、Linux 和 Windows 上运行,整个项目开源、可自托管。

常见问题

CLI 要收费吗?

CLI 本身免费且开源,直连模式——push、pull、daemon 直连与 send / receive——用起来也不花钱:这些文件与文本字节都不经过 Relayium 中继,因此没有什么可计量。会用到套餐额度的是 up 和 down,它们把加密副本写入、读回你的账号。up 会同时受四项互相独立的限制约束——每月流量额度、同时存放的存储上限、套餐的留存时长上限,以及滚动的每日上传额度;down 读回副本时计入每月流量额度。付费套餐会把这些都调高。

需要 Relayium 账号吗?

send 或 text 生成配对码时需要账号,云端 up 也需要。push / pull 使用你自己的 SSH,daemon 直连使用公钥信任,都无需账号。服务器只为已登录账号签发配对码,因此创建端先运行一次 relayium login;持别人给你的码加入无需登录,receive 接收方也始终无需登录。

支持哪些操作系统?

macOS、Linux 和 Windows 上均提供预编译二进制,覆盖 x86-64 和 arm64。安装脚本适用于 macOS 和 Linux;在 Windows 上,请从发布页下载 .zip。

我的文件会经过 Relayium 的服务器吗?

直连模式不会。用 push、pull、daemon 直连和 send / receive 时,文件字节都在两端之间直接传输;只有 send / receive 会联系到我们的服务器,而且只是为了一次很小的会合握手——从不涉及文件内容。有两种模式是有意为之的例外,服务器在这两种情况下都只保存无法读取的密文:up 会把加密副本上传到你账号的存储里;设备收件箱(在 CLI 中只有接收侧,即 relayium inbox)则会把浏览器或原生应用发往你自己某台机器的加密副本排队存着,直到那台机器下载取走。

安装免费开源的 Relayium CLI,完成你的第一次直连传输。

获取 CLI

继续阅读