Relayium

Enviar un archivo a alguien entre redes con la CLI de Relayium

Última actualización: 2026-08-07

A veces la otra máquina no es tuya y no puedes entrar por SSH: un archivo para un colega en otra oficina, una compilación para un cliente, un archivo comprimido para un amigo al otro lado del país. relayium send y receive lo mueven directamente entre las dos partes, entre redes, usando solo un código de emparejamiento corto que tu CLI genera al enviar.

La conexión es de igual a igual y cifrada de extremo a extremo. Solo un pequeñísimo handshake con el punto de encuentro pasa por Relayium para presentar los dos extremos; los bytes del archivo nunca lo hacen.

Antes de empezar

Todo lo de abajo es la CLI de relayium, así que instálala primero si aún no la tienes. En macOS o Linux, un solo comando deja un binario precompilado en tu PATH:

curl -fsSL https://relayium.com/install.sh | sh

Envía y luego pasa el código que imprime

Lo que necesitas

  • La CLI en las dos máquinas. relayium version imprime una versión en cada una; si el shell responde «command not found», ahí todavía no está instalada.
  • Un remitente con la sesión iniciada. relayium whoami imprime el correo de la cuenta, y generar un código de emparejamiento exige antes relayium login. La máquina receptora no inicia sesión en ningún momento.
  • Las dos partes ante un terminal a la vez. El código vive cinco minutos, así que conviene acordar el momento antes de generarlo.
  • Una forma de dictar seis dígitos fuera de banda: una llamada, una ventana de chat o la propia habitación cuando las dos personas están juntas.

Inicia sesión una vez con relayium login y después solo envía. La CLI genera un código de emparejamiento, lo imprime junto con el comando exacto que ejecuta el otro extremo, y espera. Pasa ese código fuera de banda: dilo en una llamada, escríbelo en un chat:

  1. En la máquina que envía, inicia sesión una sola vez. Sáltate este paso si relayium whoami ya imprime el correo de tu cuenta.

    relayium login
  2. Desde el directorio donde está el archivo, lanza el envío. La CLI genera el código, imprime el comando para el otro extremo y luego espera.

    relayium send ./release.zip
  3. Dicta fuera de banda los seis dígitos que ha impreso. Dejan de funcionar cinco minutos después de generarse.

  4. En la máquina receptora, dentro del directorio donde deben llegar los archivos, ejecuta el comando que se le mostró al remitente. Añade un directorio para dejarlos en otro sitio.

    relayium receive 483920
    relayium receive 483920 ./downloads
  5. Deja los dos terminales abiertos hasta que el shell receptor vuelva a su prompt. Es una única sesión en vivo: cerrar cualquiera de los extremos detiene la transferencia.

Cómo se ve una ejecución correcta

El remitente imprime primero el bloque de traspaso y espera; después, un código de verificación y la ruta que consiguió. Las dos terminales muestran el mismo código de verificación y ambas terminan con 0.

# en la máquina que ENVÍA
Code: 483920   (valid 5 minutes)
On the other machine:  relayium receive 483920
  not installed there?  curl -fsSL https://relayium.com/install.sh | sh
waiting for the receiver…
verification code (SAS): 271044 — not the pairing code; compare it on both ends to rule out a substituted endpoint
path: direct

Verificar con el código SAS

Cuando los dos extremos se conectan, ambas terminales muestran el mismo SAS (short authentication string) de 6 dígitos derivado de las huellas de sus certificados TLS fijados. Compáralo fuera de banda —léelo en voz alta durante la llamada— para confirmar que las huellas no fueron sustituidas y que el servicio de encuentro no suplantó a ninguno de los extremos. El SAS autentica los extremos; no demuestra cada salto de la ruta de red.

Para obtener la protección más fuerte, añade --verify: la transferencia esperará a que confirmes que los códigos coinciden antes de que se mueva un solo byte.

relayium send --verify ./release.zip

Solo directo: gratis, o falla

La transferencia compite por establecer una conexión directa entre los dos extremos. Cuando se puede establecer —lo habitual cuando al menos un lado tiene una dirección alcanzable— el archivo fluye directo, cifrado, a máxima velocidad y sin coste.

send/receive y text del CLI de Relayium son P2P y direct-only: nunca retransmiten bytes de archivos o mensajes mediante TURN ni ningún otro servidor de Relayium. Si los dos extremos no pueden establecer una conexión directa, la sesión falla en vez de recurrir a un retransmisor.

Si te ocurre esto, la respuesta fiable es daemon directo entre dos servidores alcanzables, push por SSH o un enlace almacenado creado con relayium up.

Cuando no funciona

Cuatro fallos explican casi todos los intentos fallidos. Cada uno tiene una línea que leer o un comando que ejecutar que lo decide, así que nunca hay que adivinar qué extremo tiene el problema.

Síntoma, comprobación, solución

El remitente ni siquiera arranca: «minting a pairing code needs an account».
relayium whoami
# not logged in (run `relayium login`)

Esa máquina no tiene credenciales guardadas. Ejecuta relayium login y apruébalo en el navegador; después whoami imprime el correo de la cuenta y el envío sale adelante. No se generó nada, así que no se ha gastado ningún código.

El receptor teclea el código y el punto de encuentro lo rechaza.
# en la máquina que ENVÍA: el bloque de traspaso indica la vida exacta
relayium send ./release.zip
Code: 483920   (valid 5 minutes)

El código caducó. Pulsa Ctrl-C en el remitente, ejecuta otra vez relayium send ./release.zip y dicta los seis dígitos nuevos dentro de los cinco minutos que anuncia el nuevo bloque de traspaso.

Las dos terminales muestran códigos de verificación distintos.
relayium send --verify ./release.zip

Para y no envíes el archivo. Que los códigos difieran significa que las huellas de los certificados TLS fijadas por los dos extremos no coinciden, es decir, que el otro lado no es la máquina que crees. Vuelve a lanzarlo con --verify, que detiene la transferencia justo en esa comparación hasta que confirmes, y comprueba con la otra persona en qué máquina está.

«no direct connection to the peer (both ends behind strict NAT?)».
relayium send ./release.zip
# no direct connection to the peer (both ends behind strict NAT?): …

Ningún extremo pudo alcanzar al otro, y la CLI no tiene, por diseño, ninguna vía de retransmisor para los bytes de un archivo. Mueve un extremo a una red con dirección alcanzable —un servidor, o el punto de acceso del móvil— o sube el archivo con relayium up y pasa el enlace de descarga en su lugar.

Preguntas frecuentes

¿De dónde sale el código de emparejamiento?

Lo genera Relayium. Ejecuta relayium send ./release.zip (después de relayium login) y la CLI imprime un código de 6 dígitos válido durante cinco minutos, junto con el comando exacto que ejecuta el otro extremo. No puedes elegirlo tú: el servidor solo acepta los códigos que él mismo emitió.

¿Se sube el archivo a algún sitio?

No. El archivo fluye directamente entre las dos partes, cifrado de extremo a extremo. Solo un pequeño handshake con el punto de encuentro pasa por Relayium para presentar los extremos; el archivo nunca.

¿Y si no podemos conectarnos?

Si ambos extremos están detrás de un NAT estricto sin dirección alcanzable, no se puede establecer la conexión directa y la transferencia falla: la CLI no tiene respaldo por retransmisor, por diseño. Usa daemon directo entre dos servidores alcanzables, o push por SSH, cuando no haya una ruta directa disponible.

¿Cómo sé que de verdad es la persona correcta al otro lado?

Ambas terminales muestran un código SAS idéntico de 6 dígitos derivado de las huellas de sus certificados TLS fijados. Compáralo fuera de banda; la coincidencia confirma que las huellas no fueron sustituidas y que el servicio de encuentro no suplantó a ninguno de los extremos. Autentica los extremos, no cada salto de la ruta de red. Añade --verify para exigir esa confirmación antes de que se muevan bytes.

Envía tu próximo archivo directamente a alguien en otra red: cifrado de extremo a extremo y gratis.

Obtener la CLI

Seguir leyendo