−25%

en Windows con pago anual, hasta el 31/10. Ver planes

EQVPS

VPS para Headscale: servidor de control Tailscale propio

Ejecuta Headscale en un VPS pequeño y mantén bajo tu control el servidor de coordinación de tu VPN en malla. Instalación, primer usuario, conectar dispositivos y límites.

Una VPN en malla es de esas herramientas que lo simplifican todo en silencio: tu portátil, tu servidor de casa, tu móvil y tus VPS se ven entre sí con direcciones privadas, estén donde estén. El problema de las VPN en malla alojadas es el servidor de coordinación: una empresa guarda el mapa de todos tus dispositivos. Headscale es un sustituto de código abierto para ese servidor de control. Ejecútalo en un VPS pequeño, sigue usando las apps de siempre, y el mapa es tuyo.

Cómo encaja todo

Ese último punto es la razón de que baste un plan diminuto: el VPS solo responde a pequeñas peticiones de coordinación.

Qué necesitas

Instalación (Debian 12 / Ubuntu 24.04)

Descarga el .deb actual desde la página de versiones de Headscale en GitHub; sustituye la versión por la más reciente:

HS_VER=0.26.1
wget -O headscale.deb \
  "https://github.com/juanfont/headscale/releases/download/v${HS_VER}/headscale_${HS_VER}_linux_amd64.deb"
apt install -y ./headscale.deb caddy

Edita /etc/headscale/config.yaml; estas son las dos líneas que importan:

server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080

Pon Caddy delante para el HTTPS:

cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
    reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy

Añadir un usuario y un dispositivo

headscale users create alice
headscale users list            # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h

Las versiones antiguas esperan el nombre del usuario en lugar del ID en --user; headscale preauthkeys create --help te dirá qué espera la tuya.

En un dispositivo Linux:

tailscale up --login-server https://hs.example.com --authkey YOUR_KEY

En móviles y ordenadores, la app de Tailscale permite definir un servidor de control personalizado en sus ajustes. Ejecuta headscale nodes list en el VPS y tu dispositivo debería aparecer.

Relés y travesía de NAT

La mayoría de los dispositivos se conectan directamente. Cuando dos no pueden (redes móviles estrictas, doble NAT), el tráfico pasa por un relé DERP. De serie, Headscale usa los relés públicos de Tailscale, que solo ven paquetes cifrados. Si no quieres nada externo en el camino, activa el relé integrado en config.yaml (derp.server.enabled: true) y abre el UDP 3478. El tráfico retransmitido contará entonces contra el ancho de banda de tu VPS.

Límites, con honestidad

No hay panel web oficial: usuarios, claves y rutas son comandos de la CLI (a la segunda vez ya no cuesta). Las novedades del servicio alojado llegan tarde a Headscale, si es que llegan. Y el servidor de control ahora es responsabilidad tuya: si se cae, las conexiones existentes siguen funcionando, pero los dispositivos nuevos no pueden unirse y las claves no se renuevan. Haz copia: todo el estado está en /var/lib/headscale.

Para un homelab, una familia o un equipo pequeño que quiere sacar el mapa de sus dispositivos de servidores ajenos, es uno de los mejores usos de un VPS de $8.

Relacionado

¿Listo para desplegar? Paga en cripto, sin KYC — en línea en aproximadamente un minuto.

Desplegar →

Preguntas frecuentes

¿Qué ve realmente el servidor Headscale?

Metadatos: qué dispositivos existen, sus claves públicas, sus direcciones y cuándo estuvieron conectados por última vez. Tu tráfico en sí viaja directamente entre dispositivos por WireGuard (o a través de un relé si no logran verse) y va cifrado de extremo a extremo. Autoalojarlo significa que esos metadatos están en tu servidor y no en el de otro.

¿Necesito clientes especiales?

No. Usas las apps normales de Tailscale en Linux, macOS, Windows, iOS y Android y las apuntas a la URL de tu servidor. En Linux es una sola opción: --login-server.

¿Qué plan basta?

Headscale es diminuto: un Nano-IP ($8/mes) aguanta sin problemas a una familia o un equipo pequeño. Necesitas IP dedicada porque los dispositivos deben llegar al servidor de control por HTTPS; un plan NAT no acepta el 443 entrante.

¿Y si dos dispositivos no pueden conectarse directamente?

Recurren a un relé (DERP). Por defecto, Headscale usa los relés públicos de Tailscale, que solo ven paquetes cifrados. Puedes activar en su lugar el relé integrado de Headscale; necesita el UDP 3478 abierto y consume el ancho de banda de tu VPS con el tráfico retransmitido.

¿Qué falta frente al servicio alojado de Tailscale?

No hay panel web de administración oficial: usuarios y claves se gestionan por línea de comandos (existen interfaces de la comunidad). Algunas funciones nuevas del servicio alojado llegan tarde a Headscale o no llegan. Para una red personal o un equipo pequeño, lo esencial (malla, ACL, MagicDNS, nodos de salida) funciona bien.

Comentarios

Aún no hay comentarios. Sé el primero.

Deja un comentario

Los comentarios se moderan antes de aparecer.