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 entre las dos partes, entre redes, usando solo un código de emparejamiento corto que tu CLI genera al enviar.
La sesión está cifrada de extremo a extremo. Un breve encuentro en el servidor de Relayium presenta a los dos extremos; siempre que el servidor emite un retransmisor TURN para el código, los bytes del archivo pasan por él como texto cifrado que no puede leer y cuentan para la cuota mensual de tráfico de la cuenta que generó el código.
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
- ¿Prefieres elegir el archivo tú mismo, o estás en Windows? Coge un binario de la página de releases — relayium.com/cli lista todas las opciones de instalación (o go build ./cmd/relayium si tienes Go).
- relayium --version confirma que está instalada. Sáltate esto y los comandos de abajo solo imprimirán « command not found ».
Envía y luego pasa el código que imprime
Lo que necesitas
- La CLI en la máquina que envía. relayium version imprime una versión; si el shell responde «command not found», todavía no está instalada. El otro extremo también puede usar la CLI, o escribir el código en una app de Relayium o en la página web.
- 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 conectadas 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:
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 loginDesde 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.zipDicta fuera de banda los seis dígitos que ha impreso. Dejan de funcionar cinco minutos después de generarse.
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 483920relayium receive 483920 ./downloadsDeja 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- El código tiene 6 dígitos decimales —cualquiera de 0 a 9, ceros iniciales incluidos— y caduca 5 minutos después de generarse.
- El código es solo un secreto compartido para encontrarse; no se envía a nadie más que al punto de encuentro, y solo sirve para presentar los dos extremos.
- El otro extremo no tiene que ser la CLI: relayium receive, relayium pair, una app de Relayium o la página web pueden unirse al código. ¿La otra persona no está conectada ahora? Usa relayium up para obtener un enlace de descarga.
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.zipRetransmisor o de igual a igual, y a qué cuenta
La línea path te dice por dónde fueron los bytes: relay, o direct / lan para de igual a igual. En ambos casos el archivo va cifrado de extremo a extremo y no hay cargo por transferencia: los bytes retransmitidos se contabilizan como uso en la cuota mensual de tráfico de la cuenta que generó el código.
Las sesiones con código de emparejamiento del CLI de Relayium (send / receive, text y pair) envían cada byte a través de un retransmisor TURN cifrado siempre que el servidor emite uno para el código —aunque los dos extremos pudieran conectarse directamente—, y esos bytes retransmitidos cuentan para la cuota mensual de tráfico de la cuenta que generó el código; el retransmisor solo transporta texto cifrado que no puede leer. Solo cuando no se emite ningún retransmisor (no hay ninguno configurado o esa cuota está agotada) los dos extremos se conectan de igual a igual (P2P), y entonces la sesión falla si no existe una ruta directa.
Si una transferencia no logra conectar, las respuestas fiables son un enlace almacenado creado con relayium up, o relayium serve con push / sync entre dos servidores alcanzables que administres; esa ruta es directa y no se contabiliza.
- Retransmisor emitido → cada byte pasa por el retransmisor cifrado y cuenta para la cuota mensual de tráfico de la cuenta que generó el código.
- Sin retransmisor → los dos extremos se conectan de igual a igual si existe una ruta directa; si no, la sesión falla.
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.zipPara 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?): …Un extremo usa un relayium antiguo cuyo emparejamiento es solo directo, y ninguno pudo alcanzar al otro. Actualiza ambos extremos: un relayium actual pasa por el retransmisor cifrado siempre que el servidor emite uno para el código. Si no, 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 se guarda. El archivo fluye entre las dos partes, cifrado de extremo a extremo. Un pequeño handshake en el servidor de Relayium presenta a los extremos, y siempre que el servidor emite un retransmisor TURN para el código, los bytes del archivo pasan por él como texto cifrado que no puede leer: se contabilizan en la cuota mensual de tráfico de la cuenta que generó el código y nunca se conservan.
¿Y si no podemos conectarnos?
Siempre que el servidor emite un retransmisor para el código, la sesión pasa por él, así que un NAT estricto no la detiene. Cuando no se emite ninguno —no hay ninguno configurado o la cuota de la cuenta que generó el código está agotada—, los dos extremos necesitan una ruta directa, y sin ella la transferencia falla. Usa entonces un enlace almacenado de relayium up, o relayium serve con push / sync entre dos servidores alcanzables que administres.
¿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 a alguien en otra red: cifrado de extremo a extremo y sin cargo por transferencia.
Obtener la CLI