Plano de control de prialo autohospedado: los tres puertos
El plano de control autohospedado de prialo funciona como tres contenedores de Docker Compose en un VPS Linux y publica tres puertos: UDP 3478 para STUN, TCP 50051 para gRPC y TCP 4430 para el relay. Con 2 vCPU y 2 GB de RAM basta para cientos de nodos. Hay que copiar la base de datos PostgreSQL y las claves del servidor.
Los tres puertos que publica un plano de control de prialo autohospedado
El servidor de coordinación escucha en TCP 50051 para gRPC y en UDP 3478 para STUN, y el relay escucha en TCP 4430. Son los únicos puertos que el cortafuegos del VPS tiene que publicar. Los dispositivos de la malla no abren nada: no se redirige ningún puerto en el router de la oficina ni en el de casa.
| Puerto | Servicio | Quién se conecta | Publicado en Internet |
|---|---|---|---|
| UDP 3478 | STUN del servidor de coordinación | Todos los nodos, para negociar el camino directo | Sí |
| TCP 50051 | gRPC con TLS fijado por huella SPKI | Todos los nodos, para el tráfico de control | Sí |
| TCP 4430 | Relay que reenvía paquetes que no puede descifrar | Nodos cuyo camino directo falla | Sí |
| TCP 8080 | API de administración y panel | Solo el administrador, por un túnel SSH | No, nunca |
La API de administración del puerto 8080 no se publica nunca en Internet. Para entrar en el panel se abre un túnel SSH hacia el VPS y se usa el puerto local reenviado. Quien escanee el servidor solo verá gRPC detrás de TLS, STUN y un relay que reenvía paquetes cifrados de extremo a extremo.
Por qué el gRPC de prialo en el puerto 50051 usa una clave fijada y no una autoridad de certificación
Cada nodo se instala con la huella SPKI de la clave TLS del servidor, escrita como sha256:..., y rechaza cualquier servidor que no presente exactamente esa clave. Ninguna autoridad de certificación forma parte del modelo de confianza, así que el servidor no necesita un certificado público. La consecuencia operativa es clara: quien pierde esa clave pierde la identidad en la que confían todos los nodos.
Dimensionado del VPS para el plano de control de prialo: 2 vCPU y 2 GB de RAM
Con 2 vCPU y 2 GB de RAM basta para cientos de nodos. El paquete levanta tres contenedores con Docker Compose (servidor de coordinación, relay y PostgreSQL) en Linux x86_64 o arm64, con Docker Engine 24 o posterior y Compose v2, de modo que una instancia ARM pequeña sirve igual que una x86.
La CPU del relay casi nunca limita: reenviar una trama cuesta unos 23 ns y ese coste no depende de cuántos clientes haya conectados. Lo que conviene vigilar es el ancho de banda. El tráfico solo pasa por el relay cuando falla el camino directo, normalmente por CGNAT del operador, NAT simétrico u otra VPN delante; la guía de CGNAT en sedes paso a paso cubre esos casos.
Una sesión SSH por el relay consume bastante menos de 1 MB por hora; un escritorio remoto o compartir pantalla, entre 0,5 y 1 GB por hora. Para controlar la transferencia del VPS, PRIALO_MESH_QUOTA_BYTES limita la salida por relay de cada malla al mes. Superado el límite, el relay descarta y cuenta las tramas de esa malla sin desconectar a nadie.
Las dos cosas que hay que copiar de un servidor prialo autohospedado
El cliente conserva las claves y la base de datos en su propio servidor, y esas son las dos cosas que necesitan una copia fuera del VPS.
- La base de datos PostgreSQL: guarda los nombres de los dispositivos, sus direcciones fijas dentro de 100.64.0.0/10, las políticas, las claves de alta, las aprobaciones y el registro de auditoría de cada acción administrativa. Sin ella, la malla se reconstruye a mano.
- Las claves del servidor: sobre todo la clave TLS cuya huella han fijado todos los nodos. Restaurada en un VPS nuevo, los nodos vuelven a conectar; perdida, todos rechazan el sustituto y hay que darlos de alta otra vez con un --tls-pin nuevo.
Las claves privadas de los dispositivos no están en esa lista: cada dispositivo tiene su propio par de claves WireGuard y no hay usuario ni contraseña en el camino de datos. Sinergia no aloja ni accede a esa instancia, así que no existe otra copia de la que recuperar nada; la copia de seguridad es tarea del operador.
Alta del primer nodo Linux o macOS en un servidor prialo autohospedado
- Crear una clave de alta en el panel, al que se llega por el túnel SSH; las claves caducan, pueden ser de un solo uso o reutilizables y se pueden revocar.
- Ejecutar la instalación como root en el nodo, indicando servidor, relay y huella fijada:
sudo PRIALO_AUTH_KEY='<enrolment key>' prialo install --server=control.example.com:50051 --relay=control.example.com:4430 --tls-pin=sha256:<fingerprint>
Después, prialo status debe mostrar 'Control: tls, pinned' y una IP dentro de 100.64.0.0/10. prialo peers lista los demás dispositivos y prialo ping <host-or-ip> prueba un camino. Si el nodo debe dar acceso a una LAN, la anuncia con prialo up --advertise-routes=192.168.50.0/24; no se enruta nada hasta que un administrador la aprueba y cada cliente la acepta con --accept-routes.
Qué puede ejecutar hoy el paquete autohospedado de prialo y qué todavía no
A 17 de octubre de 2026 funcionan el paquete autohospedado y el cliente de terminal para Linux y macOS; Windows es una versión temprana sin instalador ni firma. Las apps de Mac e iPhone están en la cola de revisión de Apple y aún no se pueden descargar, y Android está en preparación. Solo Linux puede hacer de router de subred.
Si un equipo ya usa los clientes de Tailscale y quiere su propio servidor de coordinación, Headscale, una implementación de código abierto de ese servidor, puede encajarle mejor; NetBird también publica su servidor de gestión como código abierto. La tabla comparativa de alternativas a Tailscale pone las arquitecturas lado a lado. prialo lo hace Sinergia, empresa de Barcelona, y el paquete está en la descarga del servidor autohospedado con sus sumas de verificación.
Preguntas frecuentes
¿Qué puertos necesita abiertos un servidor prialo autohospedado?
Un servidor prialo autohospedado publica UDP 3478 para STUN, TCP 50051 para gRPC con clave TLS fijada y TCP 4430 para el relay. La API de administración del puerto 8080 queda cerrada a Internet y el panel se abre por un túnel SSH. Los dispositivos no abren ningún puerto.
¿Qué VPS necesita el plano de control de prialo?
El plano de control de prialo funciona con 2 vCPU y 2 GB de RAM para cientos de nodos, en Linux x86_64 o arm64 con Docker Engine 24 o posterior y Compose v2. Pesa más el ancho de banda del relay que la CPU, y PRIALO_MESH_QUOTA_BYTES lo limita por malla y mes.
¿Qué pasa si se pierde la clave TLS del servidor prialo?
Si se pierde la clave TLS de un servidor prialo autohospedado, los nodos rechazan cualquier servidor sustituto, porque cada uno fijó la huella SPKI de esa clave y ninguna autoridad de certificación puede avalar otra. Habría que dar de alta cada nodo de nuevo, por eso esa clave se copia.
¿Puede Sinergia recuperar una instancia de prialo autohospedada?
No. Con el paquete autohospedado, el cliente conserva las claves y la base de datos PostgreSQL en su propio servidor, y Sinergia no aloja ni accede a esa instancia. Recuperar un servidor prialo dañado depende por completo de las copias que el operador haya hecho de la base de datos y las claves.
¿Prefieres tu propio servidor? Guía del paquete autoalojado de prialo