Usa tu propio nodo: aprovecha el retransmisor y el almacenamiento de Relayium gratis
Última actualización: 2026-08-06
Las transferencias entre redes y los enlaces almacenados usan ancho de banda de retransmisión y disco que nos cuestan dinero, así que funcionan con una franquicia gratuita y se pagan a partir de ahí. Hay una forma de evitarlo: ejecuta tu propio nodo de retransmisión/almacenamiento, vincúlalo a tu cuenta, y tus transferencias fluyen por tu nodo en lugar del nuestro — nada medido, nada facturado.
Esto es distinto de autoalojar todo el servidor de Relayium. Sigues usando tu cuenta habitual de relayium.com y las mismas aplicaciones; solo estás añadiendo un nodo que es tuyo para que lleve tu tráfico. Esta guía te lleva de una máquina Linux recién instalada a un nodo en línea en unos cinco minutos.
Por qué ejecutar tu propio nodo
Dos razones. Primero, el coste: un nodo que es tuyo lleva tu tráfico de retransmisión y almacenamiento directamente, así que nunca toca nuestra infraestructura medida y no hay nada que facturar — tu uso es gratis por grande que sea.
Segundo, el control: los bytes retransmitidos y los blobs almacenados residen en hardware que tú operas, bajo tu propio control operativo. Las transferencias en tiempo real siguen cifradas de extremo a extremo durante todo el trayecto, así que incluso tu propio nodo solo ve texto cifrado.
Instala el nodo y ponlo en línea
Lo que necesitas antes del paso 1
- Un servidor Linux accesible desde internet: sirve tanto un VPS barato como una máquina siempre encendida en casa. Se admiten amd64 y arm64.
- root en ese servidor, o sudo. La instalación lo necesita una vez; el nodo en sí nunca se ejecuta como root.
- Poder abrir puertos entrantes: en el cortafuegos del host y, en un VPS en la nube, también en el grupo de seguridad del proveedor.
- Una cuenta de relayium.com con la sesión iniciada. El comando de instalación se genera en la página de cuenta y lleva un token de un solo uso.
- Espacio en disco, solo si quieres que el nodo también almacene además de retransmitir. Un nodo de solo retransmisión no necesita ninguno: omite RELAYIUM_NODE_STORAGE_DIR.
Cuatro cosas en orden: generas el comando, lo ejecutas, abres los puertos y confirmas que el nodo se puso en línea. Unos cinco minutos en una máquina recién creada.
Inicia sesión en relayium.com y abre tu página de cuenta en /me.
Baja hasta Mis nodos y pulsa Añadir nodo. Copia el comando de instalación de inmediato: el token que lleva se muestra una sola vez y no puede volver a mostrarse.
Pégalo en tu servidor. Descarga el binario relayium-node, verifica su suma de comprobación, lo instala en /usr/local/bin, escribe un servicio de systemd y lo arranca.
curl -fsSL https://relayium.com/install-node.sh | sudo RELAYIUM_CENTRAL_URL=https://relayium.com RELAYIUM_NODE_TOKEN=<your-token> RELAYIUM_NODE_STORAGE_DIR=/var/lib/relayium-node/blobs shConfirma que el servicio está en marcha y que volverá tras un reinicio. Ambas respuestas importan: active dice que está corriendo ahora, y enabled es lo que sobrevive a un reinicio.
systemctl is-active relayium-nodesystemctl is-enabled relayium-nodeAbre los puertos entrantes en el cortafuegos del host. El estado En línea solo requiere acceso saliente, pero es por estos puertos por donde los pares retransmiten y almacenan.
sudo ufw allow 3478/udp # TURN sudo ufw allow 8081/tcp # storage sudo ufw allow 49152:65535/udp # relayEn un VPS en la nube, permite además los mismos puertos en el grupo de seguridad del proveedor. Con ufw a secas siguen bloqueados aguas arriba, y el nodo parece sano todo ese tiempo.
De vuelta en /me, observa cómo el nodo pasa a En línea, normalmente en unos 30 segundos. A partir de ahí las transferencias de tu cuenta lo prefieren automáticamente.
Opcional: activa "Usar solo mis propios nodos para retransmisión/almacenamiento" para que una transferencia falle en vez de volver en silencio a nuestra infraestructura compartida.
Qué aspecto tiene un nodo que funciona
systemd informa del servicio como active y enabled a la vez, y el nodo aparece En línea bajo Mis nodos. active por sí solo no basta: un nodo que no está enabled desaparece en el siguiente reinicio.
$ systemctl is-active relayium-node
active
$ systemctl is-enabled relayium-node
enabled- La parte <your-token> se rellena por ti en la página de cuenta — no pegues literalmente el marcador de posición de arriba.
- RELAYIUM_NODE_STORAGE_DIR activa el almacenamiento de blobs además de la retransmisión. Déjalo desactivado (omite la variable) si solo quieres que el nodo retransmita y no almacene.
- Comprueba que arrancó: systemctl status relayium-node (debería indicar active/running).
- Confirma la persistencia al arranque: systemctl is-enabled relayium-node (debería indicar enabled).
- Observa los registros en vivo: journalctl -u relayium-node -f.
- 3478/udp es el puerto TURN que los pares usan para retransmitir; 8081/tcp es el puerto HTTP del almacenamiento de blobs; 49152–65535/udp es el rango de medios de la retransmisión.
- En un VPS en la nube, permítelos también en el grupo de seguridad / cortafuegos de red del proveedor, no solo en ufw.
¿Es seguro ejecutar este instalador como root?
Antes que nada: los nodos que aportas tú ejecutan el mismo código y el mismo endurecimiento que los nodos de nuestra propia flota — el mismo binario de la misma versión firmada, instalado por el mismo script, bajo la misma unidad de systemd. La única diferencia es de quién es la máquina. Todo lo que sigue describe a ambos.
Es una pregunta justa ante un comando que canaliza un script de internet hacia una shell de root, y merece una respuesta concreta en lugar de una frase tranquilizadora. root se usa para la instalación y para nada de lo que el nodo hace después. El instalador crea una cuenta de sistema llamada relayium-node, sin shell de acceso y sin directorio personal, escribe las unidades de systemd, arranca el servicio y termina. El nodo en sí nunca se ejecuta como root: su unidad fija User=relayium-node, así que desde el segundo en que se pone en línea es una cuenta sin privilegios que no posee nada más en tu máquina. (La actualización automática, activada por omisión, sí añade una segunda unidad que se ejecuta como root — la sección siguiente trata por entero de lo que esa unidad puede y no puede hacer.)
Alrededor de esa cuenta, la unidad levanta un espacio aislado de systemd. Cada línea apunta a algo que un atacante intentaría alcanzar si alguna vez se hiciera con el proceso del nodo. Nada de esto se te oculta: tras instalar, lee la unidad completa con cat /etc/systemd/system/relayium-node.service.
| En la unidad | Qué bloquea si el nodo llega a verse comprometido |
|---|---|
User=relayium-node | El atacante es un usuario que no posee nada, no root. |
ProtectHome=yes | /home y /root son invisibles — ni claves SSH privadas, ni datos de otros proyectos. |
ProtectSystem=strict | Todo el sistema de archivos es de solo lectura; no se puede modificar ningún archivo del sistema. |
ReadWritePaths= | Los únicos lugares escribibles son el directorio de estado del propio nodo y, si configuraste uno, el directorio de almacenamiento. Escribir en cualquier otro sitio falla. |
NoExecPaths= | Nada del directorio de almacenamiento se puede ejecutar — un archivo subido no puede echarse a andar. |
NoNewPrivileges=yes | No hay camino de vuelta a root; los trucos habituales de escalada quedan cerrados. |
CapabilityBoundingSet= | Vacío — ninguna capability de Linux, ni una. |
ProtectKernelTunables=yes, ProtectKernelModules=yes | El núcleo queda fuera de alcance: ni cambios de sysctl, ni carga de módulos, ni rootkits. |
- ReadWritePaths y NoExecPaths solo nombran el directorio de almacenamiento en un nodo que realmente almacena. Un nodo de solo retransmisión no lleva ninguna de las dos líneas y no puede escribir en ningún sitio salvo en su propio directorio de estado.
- En el caso normal el conjunto de capabilities está vacío. La única excepción es un proceso a la escucha de descarga directa en un puerto por debajo de 1024, que necesita CAP_NET_BIND_SERVICE para poder asociarse; el puerto de descarga por omisión es 2053, por encima de 1024, así que no se concede nada.
- El nodo no guarda ninguna clave. Los archivos los cifra el remitente antes de subirlos, así que lo que llega a un nodo de almacenamiento es texto cifrado que no puede leer — eso incluye tu propio nodo, y te incluye a ti.
Qué puede y qué no puede hacer la actualización automática
El instalador también configura un temporizador de actualización automática, activado por omisión: relayium-node-update.timer pregunta a relayium.com, más o menos cada diez minutos, qué versión debería estar ejecutando este nodo. Es una segunda unidad, y se ejecuta como root, así que te debe su propia explicación.
El servidor central nunca envía un binario. Toda su respuesta es un número de versión, dos indicadores (si a este nodo le toca moverse ahora y si se trata de una vuelta atrás deliberada) y un breve motivo — ni bytes, ni URL, ni comando. Después es el nodo quien descarga esa versión por su cuenta, coteja el SHA-256 del archivo con el checksums.txt de la versión y verifica una firma ECDSA P-256 sobre ese checksums.txt con una clave pública compilada dentro del mismísimo binario que hace la comprobación. La mitad privada de esa clave no está en el servidor que responde a esos sondeos. Un servidor central comprometido podría, pues, nombrar una versión; lo que no podría es fabricar un binario que pase la verificación.
El actualizador y el nodo son dos procesos distintos con poderes opuestos. relayium-node.service es el espacio aislado de arriba — bajo ProtectSystem=strict no puede escribir en /usr/local/bin en absoluto, así que el nodo nunca puede modificar un binario, ni siquiera el suyo. relayium-node-update.service es una pequeña unidad oneshot que se ejecuta como root y que deliberadamente no lleva aislamiento, porque reemplazar un archivo en /usr/local/bin exige exactamente el privilegio que el aislamiento del nodo existe para negarle. Encerrar ese poder en una única unidad de un solo propósito, en vez de aflojar el endurecimiento del propio nodo, es todo el sentido de la separación: el proceso que tiene root solo intercambia binarios, y el proceso enjaulado nunca puede tocar uno.
Una actualización que sale mal se deshace sola. El actualizador conserva el binario anterior junto al nuevo, reinicia el servicio y luego vigila el latido durante diez minutos como máximo; si la nueva versión no se declara sana en esa ventana, repone el binario anterior, reinicia de nuevo y anota la versión defectuosa para no reintentarla. Nada de esto lee, mueve ni borra jamás los archivos almacenados.
- Si no la quieres: vuelve a ejecutar el instalador con RELAYIUM_NODE_AUTO_UPDATE=off. El temporizador y su servicio se desactivan y se eliminan; el nodo sigue funcionando y lo actualizas cuando tú decidas.
- ¿Terminaste del todo con el nodo?: consulta «Eliminar tu nodo» más abajo.
Eliminar tu nodo
Desinstalar es un solo script, el mismo tanto si tu nodo almacena archivos como si solo retransmite. Elimina las unidades, el binario, la configuración y la cuenta de servicio, y hace un intento de mejor esfuerzo por avisar a relayium.com de que el nodo ya no está. Si esa llamada falla, es una línea en tu terminal y no una desinstalación rota: muestra el ID del nodo para poder marcarlo como eliminado a mano.
Descárgalo, compruébalo y luego ejecútalo. Canalizarlo directamente a sh significa que un 404 o un corte de red pasajero hace que todo el comando no muestre nada y termine con código 0, lo que parece una desinstalación correcta.
Solo elimina lo que reconoce: cualquier cosa inesperada en el directorio de estado o de almacenamiento se conserva y se informa en vez de barrerse.
curl -fsSL https://relayium.com/uninstall-node.sh -o uninstall-node.sh && \
[ -s uninstall-node.sh ] && sudo sh uninstall-node.sh
- Se niega mientras el directorio de almacenamiento contenga algún archivo que no reconozca — incluido un blob caducado que la limpieza aún no ha alcanzado — porque cada archivo almacenado vive en exactamente un nodo y no hay réplicas. Espera a que ese recuento llegue a cero, o pasa RELAYIUM_NODE_FORCE=1 aceptando que esos archivos queden inalcanzables.
- Si no logra determinar dónde viven tus blobs, se detiene en lugar de adivinar. RELAYIUM_NODE_ASSUME_NO_STORAGE=1 es la única forma de saltarse eso, y sigue sin borrar nada que no reconozca.
- El directorio de almacenamiento se conserva salvo que pases también RELAYIUM_NODE_PURGE_STORAGE=1. Las variables de entorno no sobreviven a | sudo sh: pásalas como sudo env RELAYIUM_NODE_PURGE_STORAGE=1 sh uninstall-node.sh.
- Después, systemctl status relayium-node debería decir not-found y no debería listarse ningún temporizador relayium-node. Si vuelves a instalarlo más adelante, tu cuenta obtiene un nodo completamente nuevo: la desinstalación borra el archivo de identidad del nodo, así que una instalación nueva registra un nodo nuevo en lugar de revivir el anterior.
Cuando no funciona
Cinco fallos cubren casi todos los nodos que no llegan a levantarse, y tres de ellos parecen sanos desde el servidor: el servicio está corriendo, y solo la página de cuenta o un socket a la escucha dicen lo contrario.
Síntoma, comprobación, solución
- El shell responde "relayium-node: command not found".
command -v relayium-node # no imprime nadaEl binario no está instalado. relayium-node nunca se instala por separado: el comando de una línea de la página de cuenta es justamente lo que lo descarga, lo pone en tu PATH y lo arranca como servicio. Ejecuta ese en su lugar.
- El servicio está active, pero el nodo nunca pasa a En línea en la página de cuenta.
journalctl -u relayium-node -n 50 --no-pagerEl estado En línea lo decide un latido saliente, así que aquí rara vez la causa es el cortafuegos: es el registro. El token es de un solo uso, de modo que un comando ya ejecutado, o uno viejo de un intento anterior, falla. Pulsa Añadir nodo otra vez para obtener un comando nuevo y vuelve a ejecutarlo.
- El nodo aparece En línea, pero las transferencias siguen pasando por nuestra infraestructura compartida.
sudo ss -lunp | grep 3478En línea solo demuestra el latido saliente. Lo que los pares necesitan son los puertos entrantes: comprueba que el nodo está escuchando y luego abre 3478/udp, 8081/tcp y 49152-65535/udp en el cortafuegos del host Y en el grupo de seguridad de la nube. Para descartar por completo un repliegue silencioso, activa el ajuste de usar solo tus propios nodos.
- La desinstalación no imprimió nada, terminó con 0 y el servicio sigue ahí.
systemctl status relayium-node # active (running)Eso es exactamente el aspecto de canalizar una descarga fallida a sh: un 404 o un corte de red no imprime nada y termina con 0, lo que se lee como éxito. Descarga el script, comprueba que no está vacío y luego ejecútalo: por eso el comando de esta guía está escrito en tres partes y no como una sola tubería.
- La desinstalación se niega mientras el directorio de almacenamiento aún contiene archivos.
sudo ls /var/lib/relayium-node/blobs | wc -lEs deliberado. Cada archivo almacenado vive en exactamente un nodo y no hay réplicas, así que retirar el nodo los deja inalcanzables. Espera a que la cuenta llegue a cero conforme caducan los blobs, o asume la pérdida con RELAYIUM_NODE_FORCE=1. Las variables de entorno no sobreviven a una tubería hacia sudo sh, así que pásalas como sudo env RELAYIUM_NODE_FORCE=1 sh uninstall-node.sh.
Preguntas frecuentes
Recibí «relayium-node: command not found» — ¿qué salió mal?
Ejecutaste el binario relayium-node antes de instalarlo. Usa el comando de instalación de una línea de la página de cuenta (la forma curl … | sudo … sh): descarga el binario, lo coloca en tu PATH y lo arranca como servicio. Nunca instalas relayium-node por separado.
¿El nodo sigue en línea tras un reinicio?
Sí. El instalador registra un servicio systemd que se habilita al arrancar y está configurado con Restart=always, así que vuelve tras un reinicio y se reinicia por sí solo si se cae. Nada más que ejecutar.
¿En qué se diferencia esto de autoalojar Relayium?
Usar tu propio nodo conserva tu cuenta y aplicaciones habituales de relayium.com y solo añade un nodo que es tuyo para llevar tu tráfico. El autoalojamiento ejecuta toda la pila del servidor (cuentas, aplicación web, señalización) en tu propio dominio — consulta la guía «Aloja Relayium por tu cuenta» para eso.
¿Puede alguien más usar mi nodo o ver mis datos?
No. Un nodo está vinculado a tu cuenta por su token y solo lleva el tráfico de tu cuenta. Las transferencias en tiempo real están cifradas de extremo a extremo y los blobs almacenados son texto cifrado que tu nodo no puede leer. Tus datos y la configuración de tu nodo solo los puedes usar tú.
Inicia sesión, abre tu página de cuenta y añade tu primer nodo en menos de un minuto.
Abrir la página de cuenta