Recibir archivos desde la línea de comandos
Última actualización: 2026-09-01
Enviar es solo la mitad de la historia — tarde o temprano estás en el extremo receptor: un colega quiere entregarte un archivo por internet, una de tus propias máquinas quiere pasárselo a otra, o alguien te dejó un enlace almacenado para descargarlo cuando te venga bien. La CLI de Relayium cubre los tres casos con un comando distinto para cada uno, y ninguno necesita cuenta en el lado que recibe.
Elige receive cuando alguien te envía por código de emparejamiento, serve cuando quieres un buzón permanente al que máquinas de confianza puedan enviar en cualquier momento, y down cuando el remitente te dio un enlace cifrado almacenado y quizá ya esté desconectado.
Tres formas de recibir, y cuándo aplica cada una
Qué comando ejecutas depende de quién inicia la transferencia y de cómo se conocen las dos máquinas:
- relayium receive <code> [destdir] — alguien te envía entre redes usando un código de emparejamiento que generó (con la CLI, una app de Relayium o la página web) y te comunicó fuera de banda. Cifrado de extremo a extremo, retransmitido siempre que el servidor emite un retransmisor para el código, con un código SAS que puedes comparar.
- relayium serve [--dir D] [--port N] [--once] [--allow-delete] — esta máquina escucha envíos en daemon directo por relayium://, en el puerto 9031 por defecto.
- relayium down <link> [destdir] — descargar y descifrar un enlace almacenado; no hace falta cuenta para descargar (el antiguo relayium pull por SSH está retirado).
receive: alguien te envía un archivo entre redes
Lo que necesitas antes del paso 1
- La CLI en esta máquina. relayium version imprime una cadena de versión; si el shell responde command not found, aquí todavía no está instalada.
- Un emisor con la sesión iniciada y delante de su terminal ahora mismo. Solo él necesita cuenta: para recibir no inicias sesión nunca.
- Los seis dígitos, por un canal aparte. Viven cinco minutos desde el momento en que su CLI los acuñó, así que acordad antes el momento.
- Una forma de leerle después otros seis dígitos: el SAS se compara en voz alta, no en pantalla.
- El otro extremo puede ser relayium send o relayium pair, una app de Relayium o la página web: cualquiera genera un código que puedes recibir con receive.
Esta es la mitad receptora de relayium send. La otra persona ejecuta relayium send <path> en su extremo (tras relayium login); su CLI genera un código de 6 dígitos, válido 5 minutos, y lo imprime. Te dice cuál es por cualquier canal en el que ambos confíen — una llamada, un mensaje de chat. Tú ejecutas receive con ese código:
relayium receive 483920
# o dentro de un directorio concreto
relayium receive 483920 ./downloads
Acuerda con el emisor cuándo va a ejecutar send. El código empieza a caducar en cuanto se acuña, no cuando te llega.
Recibe los seis dígitos por un canal en el que ambos confiéis: una llamada, una ventana de chat, la habitación en la que estáis.
Ejecuta receive desde el directorio donde deban caer los archivos, o nombra uno explícitamente.
relayium receive 483920relayium receive 483920 ./downloadsCuando ambos terminales impriman un código de verificación, lee el tuyo en voz alta y comprueba que coincide con el suyo. No es el código de emparejamiento, y es lo único que descarta un extremo suplantado.
No toques el terminal hasta que vuelva al prompt. Es una sola sesión en vivo: cerrar cualquiera de los dos extremos detiene la transferencia.
Qué aspecto tiene una recepción correcta
La línea path indica por dónde viajan los bytes —relay, o direct / lan para de igual a igual— y ambos extremos muestran el MISMO código de verificación. Códigos distintos son el único resultado que no debes aceptar: detente y comprueba con el remitente en qué máquina está.
$ relayium receive 483920
verification code (SAS): 271044 — not the pairing code; compare it on both ends to rule out a substituted endpoint
path: direct- La conexión está cifrada de extremo a extremo; una vez conectados, ambos extremos muestran el mismo SAS (short authentication string). Compáralo fuera de banda con el remitente para confirmar que las huellas de los certificados TLS fijados no fueron sustituidas y que el servicio de encuentro no suplantó a ninguno. El SAS autentica los extremos; no prueba cada salto de la ruta de red.
- Sin destino indicado: los archivos caen en el directorio actual.
- La misma regla de retransmisión que send: siempre que el servidor emite un retransmisor para el código, cada byte pasa por ese retransmisor cifrado y cuenta para la cuota mensual de tráfico de la cuenta que generó el código —la del remitente, nunca la tuya—. Solo sin retransmisor los dos extremos se conectan de igual a igual, y entonces la transferencia falla si no existe una ruta directa.
- El código es el mismo código de emparejamiento que usan las apps y la página web: alguien que envía desde relayium.com o una app de Relayium puede leerte un código que recibes aquí, y a un código generado por relayium send se puede unir desde la página web en lugar de la CLI.
- El receptor nunca necesita una cuenta, en ninguna red. Solo el remitente inicia sesión, para que su CLI pueda generar el código.
serve: convierte esta máquina en un buzón a la escucha
serve funciona al revés: en lugar de que seas tú quien va a buscar, otras máquinas te envían directamente por relayium:// — pensado para máquinas en las que ya confías, como tu propio portátil enviando a un NAS, o un servidor de compilación dejando artefactos en una máquina que es tuya — por una conexión TLS 1.3 con anclaje, sin SSH, sin punto de encuentro.
relayium serve
# un directorio y un puerto concretos, permitiendo peticiones de borrado
relayium serve --dir ~/incoming --port 9031 --allow-delete
Arranca el receptor nombrando el directorio donde deben caer los envíos.
relayium serve --dir ~/incomingCuando una máquina nueva empuja por primera vez, serve muestra su dirección y su huella y te pregunta. Apruébala una vez y los envíos posteriores de esa huella pasan en silencio.
Si este receptor va a funcionar sin terminal, no cuentes con esa pregunta: no hay nadie para responderla y un emisor desconocido se rechaza sin más. Usa la autorización previa de la sección siguiente.
- La primera vez que una máquina nueva te envía algo, serve (ejecutándose en un terminal) muestra su dirección y su huella y te pide que la apruebes una vez; después, los envíos de la misma huella pasan en silencio.
- Sin terminal — un servicio systemd, un script sin TTY — no hay a quién preguntar, así que un emisor no reconocido se rechaza de plano. En su lugar, autorízalo por adelantado usando la huella que el emisor imprime con relayium id:
Autorizar por adelantado para un serve desatendido
Para un serve que corre desatendido (systemd, un script en segundo plano), haz que el emisor ejecute relayium id para imprimir su huella, y luego apruébala de antemano desde el lado receptor:
relayium authorize <fingerprint>
- --dir fija dónde caen los archivos (por defecto el directorio actual); --once acepta una única transferencia y sale; --allow-delete deja que una petición --delete (espejo) entrante realmente elimine archivos aquí, y está desactivado por defecto.
- --config-dir (por defecto ~/.config/relayium) es donde viven la identidad de este host y su lista de huellas autorizadas — anúlalo si ejecutas serve como un servicio dedicado.
pull (SSH): retirado
Nota histórica: esta sección describía las transferencias SSH de Relayium: push o sync a un destino user@host:path, relayium pull y las opciones -i y -p. El CLI actual las ha retirado y las rechaza con «SSH transfers are currently disabled», así que los comandos que había aquí ya no funcionan y no se muestran. Entre dos máquinas que administres, usa relayium serve con push o sync a relayium://host; las versiones mantenidas en inglés y en chino simplificado de esta página, enlazadas arriba, describen los pasos actuales.
Para traer algo de un servidor que administras, súbelo desde el servidor con relayium up y ejecuta aquí relayium down con el enlace, o ejecuta relayium serve en esta máquina y haz que el servidor haga push a relayium://este-host.
relayium down '<complete-link-with-#k-fragment>' ./local-destCuando no funciona
Cinco fallos cubren casi todas las recepciones fallidas. Qué orden estabas ejecutando decide cuál aplica, y cada uno se zanja con una línea que leer o una orden que ejecutar.
Síntoma, comprobación, solución
- Escribes el código y el rendezvous lo rechaza.
relayium receive 483920 # the rendezvous refuses the codeCasi siempre han pasado los cinco minutos: el código caduca desde que lo acuñó la CLI del emisor, no desde que te lo dijeron. Pídele que ejecute send otra vez y que te lea los dígitos nuevos en el momento. Un dígito mal tecleado es indistinguible desde aquí, así que reléeselo antes de dar por hecho que caducó.
- La transferencia termina pero no encuentras los archivos.
relayium receive 483920 ./downloadsSin destino, receive escribe en el directorio desde el que lo lanzaste, que rara vez es donde estabas mirando. Indica uno explícitamente, o ejecuta pwd antes.
- Falla con "no direct connection to the peer (both ends behind strict NAT?)".
relayium receive 483920 # 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.
- down dice que el enlace no es válido o que no puede descifrar el archivo.
relayium down '<link-without-fragment>' ./downloads # invalid link or missing keyCopia de nuevo el enlace completo, incluido #k=. El fragmento es la única clave de descifrado; si se omitió, el servidor no puede reconstruirlo.
- Una máquina empuja a tu receptor serve y es rechazada sin que nunca te pregunten.
relayium serve --dir ~/incomingEsa pregunta solo existe si serve tiene terminal. Bajo systemd, dentro de un script o detrás de una tubería no hay a quién preguntar, así que una huella desconocida se rechaza sin más. Haz que el emisor ejecute relayium id y autorízala aquí con relayium authorize <huella>, con el mismo --config-dir bajo el que corre el receptor.
Preguntas frecuentes
¿Necesito una cuenta para recibir archivos?
No. receive y serve no necesitan cuenta por tu parte, y down solo necesita el enlace. Quien inicia sesión es el remitente, para generar un código de emparejamiento para receive o crear un enlace almacenado. El almacenamiento alojado consume la cuota del plan del remitente, lo cual es contabilizar el uso, no un cargo por transferencia.
¿relayium receive interopera con el código de emparejamiento del navegador?
Sí. Un relayium actual y las apps y la página web de relayium.com usan los mismos códigos de emparejamiento, así que relayium receive puede aceptar un código generado en un navegador o una app, y un navegador puede unirse a un código que generó relayium send. Solo una CLI de relayium antigua, o un servidor anterior a las indicaciones de emparejamiento, vuelve al emparejamiento antiguo, solo entre CLI y solo directo.
¿Qué pasa si una máquina desconocida envía a mi proceso serve a la escucha?
En un terminal, se te pide aprobarla por dirección y huella en su primer envío, y la aprobación se recuerda. Sin terminal — un servicio systemd, una tarea cron — no hay a quién preguntar, así que un emisor no reconocido se rechaza; autorízalo primero con relayium authorize <fingerprint>.
¿Puedo traer archivos de un servidor que administro?
No con relayium pull: tanto él como las transferencias SSH están retirados en la CLI actual. Ejecuta relayium serve en esta máquina y haz que el servidor envíe con relayium push relayium://este-host, o sube desde el servidor con relayium up y descarga aquí el enlace con relayium down.
¿Dónde guarda relayium mi identidad y los pares de confianza?
En ~/.config/relayium por defecto — anula la ubicación con --config-dir en cualquier comando que toque la identidad o la confianza.
¿Listo para recibir tu primera transferencia? Instala la CLI y elige receive, serve o down.
Obtener la CLI