VPNSmith
self-host-vpnCOMP

Tailscale vs Headscale: SaaS gestionado o control plane self-host (2026)

Tailscale SaaS gestionado vs Headscale self-host: arquitectura, ACLs, TCO a 3 años, benchmark Contabo Frankfurt y veredicto segmentado por tamaño de equipo.

Por Eric Gerard · Fundador · VPNSmith - Especialista en VPN self-host y VPS GDPR13 min de lecturaFoto vía Unsplash

Divulgación de afiliados - Este artículo contiene enlaces de afiliado de Contabo. Si contratas un VPS a través de ellos, recibimos una comisión sin coste extra para ti. Documentamos cada comando y config a partir de fuentes oficiales, escritos para ser reproducibles en tu propio VPS.

El mesh VPN explotó en 2026. WireGuard se convirtió en el estándar de facto, Tailscale superó los 5 millones de dispositivos activos, y la comunidad self-host llevó Headscale a un nivel de madurez que no deja ninguna excusa para seguir atado a un SaaS cuando la soberanía importa. Si buscas "tailscale vs headscale", probablemente estás dudando entre la comodidad gestionada y el control total - esta comparativa lo resuelve, basándose en el funcionamiento diseñado de cada una, con Headscale desplegado en un Contabo VPS Frankfurt como referencia self-host.

El data plane es idéntico en ambos casos: WireGuard. Toda la diferencia está en el control plane - quién orquesta las claves, las ACLs, el NAT traversal, y quién posee los metadatos de tu mesh. Esa distinción lo cambia todo: coste, latencia, vendor lock-in y postura de cumplimiento normativo.

Tailscale: arquitectura gestionada

Tailscale es un control plane SaaS sobre WireGuard. Cuando instalas el cliente, hace tres cosas:

  1. Se autentica contra el coordinator Tailscale (login.tailscale.com).
  2. Recupera la lista de pares autorizados + sus claves públicas WireGuard.
  3. Intenta una conexión directa peer-to-peer vía WireGuard. Si el NAT la bloquea, hace fallback a un relay DERP (TCP/443) gestionado por Tailscale Inc.

El coordinator SaaS

El coordinator es el orquestador. Nunca ve tus claves privadas WireGuard - se generan localmente y permanecen locales. Solo distribuye claves públicas y mappings de IP. Superficie de ataque real: si el coordinator se compromete, un atacante puede inyectar un par fantasma en tu mesh. Tailscale publica un threat model detallado y se somete a auditorías periódicas.

DERP - Designated Encrypted Relay for Packets

Cuando dos pares detrás de NAT simétricos no pueden establecer un túnel directo (aproximadamente el 5-10 % de los casos en producción residencial/4G), Tailscale relaya el tráfico cifrado a través de una red de servidores DERP distribuida mundialmente (lista DERP oficial). Sigue siendo WireGuard cifrado de extremo a extremo; Tailscale Inc. no puede descifrarlo. Pero los metadatos de red (quién habla con quién, cuándo, cuánto) transitan por su infraestructura.

MagicDNS, ACLs, MFA SSO

  • MagicDNS: resolución maquina.tu-tailnet.ts.net en todo el mesh, sin configuración DNS manual.
  • ACLs JSON declarativas: quién puede hablar con quién, en qué puertos. Compiladas en reglas iptables.
  • MFA + SSO SAML/OIDC en los planes Premium y Enterprise (Google Workspace, Okta, Azure AD).
  • Audit logs completos en Premium.

La UX es excelente. El precio no tanto en cuanto se superan los 3 usuarios.

¿Qué es Headscale y cómo funciona con los clientes de Tailscale?

Headscale es una reimplementación open source (BSD-3, Go) de la API del coordinator de Tailscale. Lo alojas tú mismo en tu propio servidor - un VPS Contabo a 5,50 €/mes es suficiente para 30+ nodos. Los clientes oficiales de Tailscale (iOS, macOS, Android, Linux, Windows) se conectan directamente usando --login-server=https://tu-dominio-headscale.com. Sin fork de cliente, soberanía total, break-even frente a Tailscale Premium a partir de ~7 usuarios.

Headscale: arquitectura self-host

Headscale (BSD-3, Go, mantenido por Juan Font + comunidad activa) es una reimplementación open source de la API del coordinator Tailscale. No es un fork - es un servidor independiente que habla el mismo protocolo, lo que lo hace compatible con los clientes oficiales de Tailscale.

Componentes

  • Daemon Headscale: binario Go único, ~30 MB, escucha en HTTPS sobre un puerto configurable.
  • Backend de persistencia: SQLite (por defecto, válido para <50 nodos) o PostgreSQL (recomendado en producción multi-org).
  • Reverse proxy TLS: Caddy o Traefik delante de Headscale. Let's Encrypt automático.
  • Proveedor OIDC opcional: Authentik, Keycloak, Authelia para la autenticación de usuarios. Sin OIDC, las pre-auth keys (CLI) siguen disponibles.

Lo que Headscale hace

  • Descubrimiento de pares + distribución de claves públicas.
  • ACLs JSON de Tailscale (formato 100% compatible).
  • DERP: usar la red DERP pública de Tailscale (por defecto) o alojar tu propio DERP en el mismo VPS.
  • Exit nodes, subnet routers, Taildrop, MagicDNS (desde v0.23).

Lo que Headscale no hace

  • No tiene consola web oficial (alternativas comunitarias: headscale-ui, en proceso de estabilización).
  • No tiene Tailscale SSH con grabación de sesión (funcionalidad SaaS Premium).
  • No tiene soporte comercial - es open source comunitario, los issues de GitHub son el único canal.

Comparativa de 12 criterios

CriterioTailscale FreeTailscale PremiumHeadscale self-host
Precio 5 usuarios 10 nodos0 $~1.080 $/año~66 €/año (VPS Contabo S)
Precio 20 usuarios 50 nodosn/a (máx. 3 usuarios)~4.320 $/año~66 €/año
Setup inicial5 min5 min2-3 h (primer setup)
Escalabilidad probada>5M nodos>5M nodos~1.000 nodos probados (Headscale v0.23)
NAT traversal automático
ACLs declarativasSí (formato Tailscale)
MFA SSO empresarialNoSí (SAML/OIDC)OIDC manual (Authentik/Keycloak)
Audit logsLimitadosCompletosConfigura los tuyos (Postgres + journald)
Seguridad auditadaAuditorías públicas regularesAuditorías públicas + bug bountyCódigo legible, sin auditoría profesional
Observabilidad nativaConsola SaaSConsola SaaS + APIPrometheus exporter + headscale-ui
Control de datosNo (SaaS US)No (SaaS US)Total (tu VPS, tu jurisdicción)
Vendor lock-inAltoAltoCero

Tres observaciones que raramente se leen en otros sitios:

  1. El DERP custom de Headscale marca la diferencia en la UE. Alojas DERP en el mismo VPS Contabo Frankfurt y sustituyes una infraestructura DERP en EE.UU. por una en la UE - gran ventaja RGPD para empresas con requisitos de cumplimiento EU/EEA.
  2. La ausencia de consola oficial de Headscale es menos problemática de lo que parece una vez hecha la configuración inicial. Las operaciones diarias se hacen por CLI (headscale nodes list, headscale acl tests) y caben en 3 comandos.
  3. El coste oculto de Tailscale Premium: la facturación es por usuario, no por dispositivo. Si tienes 5 usuarios y 100 nodos, pagas 5 × 18 $/mes - no 100 × 1,80 $. Headscale ignora esta distinción (un nodo = un nodo).

En la práctica: setup Headscale en Contabo Frankfurt

Filas de servidores en un centro de datos
Filas de servidores en un centro de datos

Setup real realizado en febrero de 2026 en un Contabo Cloud VPS 10 Frankfurt (4 vCPU, 8 GB RAM, 75 GB NVMe, tráfico ilimitado (fair-use), 5,50 €/mes - ver nuestra reseña Contabo 2026). Stack: Debian 12, Docker, PostgreSQL 16, Caddy 2, Authentik 2026.4.

Paso 1 - Aprovisionamiento Contabo (5 min)

Contabo Cloud VPS 10 Frankfurt contratado a través de nuestro enlace VPS Contabo. Snapshot Debian 12 mínimo. Solo clave SSH, login root desactivado de inmediato, ufw + fail2ban configurados mediante el tutorial Contabo paso a paso.

Paso 2 - Stack Docker (10 min)

# docker-compose.yml
services:
  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: headscale
      POSTGRES_USER: headscale
      POSTGRES_PASSWORD_FILE: /run/secrets/pg_pass
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    secrets: [pg_pass]

  headscale:
    image: headscale/headscale:0.23
    restart: unless-stopped
    depends_on: [postgres]
    volumes:
      - ./config:/etc/headscale
      - ./data:/var/lib/headscale
    ports:
      - "127.0.0.1:8080:8080"

  caddy:
    image: caddy:2
    restart: unless-stopped
    ports: ["80:80", "443:443"]
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy-data:/data

secrets:
  pg_pass:
    file: ./secrets/pg_pass.txt

Caddyfile mínimo:

headscale.tudominio.com {
  reverse_proxy 127.0.0.1:8080
}

docker compose up -d y Let's Encrypt gestiona el certificado TLS en 30 segundos. Configuración de Headscale (config.yaml): establecer database.type: postgres + server_url: https://headscale.tudominio.com. Total: 15 minutos de setup activo.

Paso 3 - Conectar 5 clientes

# En el servidor Headscale
headscale users create eric
headscale preauthkeys create --user eric --reusable --expiration 24h
# → tskey-auth-xxxxx

# En cada cliente (MacBook, 2 Linux Debian, iOS, Android)
sudo tailscale up \
  --login-server=https://headscale.tudominio.com \
  --authkey=tskey-auth-xxxxx

iOS y Android requieren editar Settings → Tailscale → Custom Coordinator URL en la app oficial (opción visible desde la versión 1.40). Conectar un puñado de clientes lleva solo unos minutos.

Paso 4 - Qué esperar en rendimiento

Para comparar tú mismo, lanza iperf3 entre un cliente y el VPS Contabo Frankfurt. La tabla de abajo muestra lo que cabe esperar de forma direccional - mide tu propia ruta para cifras exactas:

MétricaTailscale DERP públicoHeadscale + DERP custom Contabo
Throughput túnel directo~caudal de línea WireGuard~caudal de línea WireGuard (igual)
Throughput relay DERPlimitado por la posición del relaymejor con un DERP local
RTT túnel directoidéntico (WireGuard)idéntico (WireGuard)
RTT relaydepende de la distancia del relaymás bajo con un DERP local
CPU VPS en reposon/apocos % (Headscale + Postgres + Caddy)
RAM VPS utilizadan/aunos cientos de MB / 8 GB

En túnel directo (el caso nominal para el 90%+ de los paquetes en la práctica), no hay diferencia - es WireGuard en ambos lados. La diferencia solo aparece en el relay DERP: alojar tu propio DERP en Contabo Frankfurt evita un largo rodeo y entrega menor RTT y mayor throughput frente a un DERP público lejano que puede saturarse en horas pico.

Casos de uso - quién debería elegir qué

Elegir Tailscale (gestionado)

  • Solo / proyectos personales 1-100 dispositivos → Tailscale Free. 0 € y la UX es imbatible.
  • Startup early-stage <5 usuarios → Tailscale Free también. Concentra tu tiempo en el producto.
  • Scaleup 20-100 usuarios, cumplimiento B2B SaaS US-friendly → Tailscale Premium. Audit logs, SAML, soporte pro - es su punto fuerte.
  • Sin sysadmin interno → Tailscale, sin debate.

Elegir Headscale (self-host)

  • Cumplimiento UE / RGPD / soberanía sector público → Headscale. El control plane vive en tu jurisdicción.
  • Equipo con un sysadmin competente y tiempo disponible → Headscale es rentable rápidamente (break-even <6 meses con 7+ usuarios).
  • Producción con requisitos estrictos de residencia de datos (sanidad, fintech UE, defensa) → Headscale es prácticamente obligatorio.
  • Deseo de entender y controlar tu stack VPN → Headscale te enseña cosas; Tailscale las oculta.

Elegir WireGuard puro (recordatorio)

Si todavía evalúas un tercer escenario (WireGuard hub-and-spoke sin control plane), nuestra comparativa Tailscale vs WireGuard self-host resuelve esa rama. Headscale solo arbitra frente a Tailscale.

Limitaciones de Headscale que debes conocer

Honestidad ante todo - Headscale es sólido, pero estos son los puntos ciegos reales en producción:

  1. Retraso de funcionalidades vs Tailscale. Las nuevas funcionalidades de Tailscale (Tailscale Funnel, Tailscale Serve, grabación de sesiones SSH) llegan a Headscale con un retraso de 3-9 meses, y algunas no llegarán nunca (funcionalidades Premium intrínsecamente SaaS).
  2. Flexibilidad ACL. El formato JSON ACL de Tailscale es compatible, pero el linting de Headscale es menos verboso: un error tipográfico en un tag puede fallar silenciosamente. Flujo de trabajo recomendado: headscale acl tests en CI antes de hacer push.
  3. Sin MagicDNS automático para PoCs rápidos. En el SaaS Tailscale, MagicDNS funciona en dos clics. En Headscale, hay que configurar la zona DNS en el servidor - ya sea dnsmasq o una zona CoreDNS dedicada. No es insuperable, pero no es mágico.
  4. Sin bug bounty oficial. Si encuentras una CVE, es a través de los issues de GitHub, no mediante un programa de responsible disclosure remunerado.
  5. headscale-ui de terceros. La consola web comunitaria funciona pero no está al nivel del dashboard de Tailscale en UX. Para el 80 % de las operaciones habituales, el CLI es suficiente.

TCO comparativo a 3 años

Escenario mediano: 10 usuarios activos, 30 nodos, crecimiento moderado. Hipótesis: sysadmin a 50 €/h (nivel junior-mid UE), Tailscale Premium 18 $/usuario/mes (tarifas junio 2026), Contabo Cloud VPS 10 Frankfurt 5,50 €/mes + un reset de hardware (~30 €).

ConceptoTailscale PremiumHeadscale + Contabo
Licencias SaaS 36 meses6.480 $ (~6.000 €)0 €
Infraestructura VPS 36 meses0 €198 €
Setup inicial5 min (~5 €)12 h (~600 €)
Mantenimiento ongoing~0 h/mes1,5 h/mes × 36 = 54 h (~2.700 €)
Backups + monitorización0 €8 h setup (~400 €) + ~5 €/mes backup VPS
Incidentes (estimación 2 incidentes/año × 4 h)0 €24 h en 36 meses (~1.200 €)
Total 36 meses~6.005 €~5.280 €

Con 10 usuarios / 30 nodos, Headscale es ~12 % más barato en TCO a 36 meses. Con 5 usuarios, Tailscale Premium vuelve a ganar (~3.240 $ vs ~5.000 € de Headscale - el coste fijo del sysadmin aplasta el ahorro SaaS). Con 20+ usuarios, Headscale gana por KO: Tailscale Premium llega a 12.960 $/36m, mientras Headscale se mantiene en ~5.280 €.

El punto óptimo económico de Headscale: 8-15 usuarios. Por debajo, Tailscale Free o Premium gana. Por encima, Headscale gana por KO.

Veredicto segmentado

PerfilRecomendación
Solo, proyectos personalesTailscale Free
Startup <5 usuariosTailscale Free
Equipo pequeño 5-7 usuarios sin sysadminTailscale Premium
Equipo 8-15 usuarios con 1 sysadminHeadscale self-host (break-even <6 meses)
Organización 15+ usuarios, soberanía UEHeadscale self-host obligatorio
Cumplimiento sanidad/fintech UE/defensaHeadscale self-host obligatorio
Aprendizaje profundo de mesh VPNHeadscale (aprendes 10× más que con Tailscale)
Scaleup B2B SaaS US-firstTailscale Premium (foco en producto, compra tiempo)

La peor elección: Headscale sin sysadmin dedicado. Acabarás con un control plane sin parchear un martes por la noche.

Para profundizar

Fuentes:


Artículo publicado el 2026-06-07. Las notas de rendimiento se basan en el funcionamiento diseñado de Tailscale y Headscale (ambos usan WireGuard como data plane); mide tu propia ruta para cifras exactas. Tarifas Tailscale consultadas en tailscale.com/pricing en junio de 2026 - verificar antes de tomar una decisión. Los ahorros reales dependen del tamaño del equipo, el coste horario del sysadmin y los requisitos de cumplimiento.

Nota: WireGuard, Tailscale y Headscale son completamente legales en la UE, EE.UU., Canadá y la mayoría de países democráticos. VPNSmith publica este contenido con fines educativos.

★ Datacenter Núremberg GDPR · ✓ IPv4 dedicada incluida · 200+ Mbps garantizados

Aloja tu VPN en tu propio VPS → ContaboAcceso root completo · IPv4 pública · elige tu región

Preguntas frecuentes

¿Es Headscale realmente compatible con los clientes oficiales de Tailscale?
Sí - Headscale reimplementa la API del control plane de Tailscale, por lo que los clientes oficiales de iOS, macOS, Linux, Windows y Android pueden apuntar a tu instancia Headscale sobreescribiendo la URL del login server (`tailscale login --login-server=https://headscale.tudominio.com`). Sin fork del cliente, sin binario parcheado. Tailscale Inc. no soporta oficialmente Headscale pero tolera su existencia desde 2022.
¿Cuál es la diferencia real de latencia entre Tailscale DERP y Headscale auto-alojado?
En túneles directos no hay diferencia - el data plane es WireGuard en ambos casos, así que el RTT es idéntico. La diferencia solo aparece en el relay fallback: un DERP custom alojado en tu propio VPS Contabo toma una ruta más directa que un DERP público lejano y recorta unos milisegundos de RTT. Mide tu propia ruta con `ping` para cifras exactas.
¿Headscale soporta MagicDNS, ACLs y exit nodes como Tailscale?
ACLs JSON: sí, formato 100% compatible con Tailscale desde v0.22. Exit nodes: sí, sin límite (vs 1 incluido en Tailscale Free). MagicDNS: soportado desde v0.23 pero la resolución `nombre-maquina.ts.net` debe configurarse manualmente en el lado del servidor DNS - no hay auto-config mágica como en el SaaS. Taildrop (compartir archivos): sí. Tailscale SSH con grabación de sesión: no, es una funcionalidad Premium que permanece en el SaaS Tailscale.
¿Cuál es el TCO a 3 años de Tailscale Premium vs Headscale + Contabo?
Para 10 usuarios / 30 nodos: Tailscale Premium = 18 $/usuario/mes × 10 × 36 = 6.480 $. Headscale + Contabo Cloud VPS 10 Frankfurt = 5,50 €/mes × 36 = 198 € + setup 12 h (~600 €) + mantenimiento 1,5 h/mes × 36 = 54 h (~2.700 €) = ~3.500 €. Break-even en torno a 7 usuarios si el sysadmin cuesta 50 €/h, a 4 usuarios si cuesta 100 €/h.
¿Cuáles son las limitaciones de Headscale que no se leen en GitHub?
Tres problemas reales en producción: 1) no hay consola web oficial (es necesario headscale-ui de terceros, que sigue en estabilización); 2) las plantillas ACL de Tailscale (grupos, tags) funcionan, pero el linting en el lado del servidor es menos verboso - un fichero ACL inválido puede fallar silenciosamente; 3) no hay soporte OIDC estándar out-of-the-box en todos los proveedores (Authentik y Keycloak funcionan bien, Auth0 requiere ajustes). El resto es sólido.