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
- ¿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 -o relayium ./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 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:
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.
- Ambos extremos tienen que ser la CLI: un navegador no puede unirse a un código de emparejamiento de la CLI. ¿Envías a alguien que solo tiene navegador? Usa relayium up, que te da 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.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.
- La conexión directa tiene éxito → gratis, a máxima velocidad, cifrada de extremo a extremo.
- Ambos extremos pueden estar en cualquier lugar geográficamente; quien envía solo ejecuta send, y quien recibe ejecuta receive con el código que se imprimió.
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?): …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