Ir al contenido
  1. Posts/

Tailscale: la herramienta que me hizo dejar de abrir puertos para siempre

·1364 palabras·7 mins

Hubo una época en la que mi router parecía un queso gruyere. Puerto 8006 para Proxmox, 32400 para Plex, 443 para la VPN, 22 para SSH, 8123 para Home Assistant… Cada servicio nuevo era otro agujero en el firewall, otro port forwarding que configurar, otra regla que mantener.

Un día, escaneé mi propia IP pública con nmap. Tenía 9 puertos abiertos. Nueve puertas abiertas a Internet desde mi casa. Con mi NAS lleno de fotos personales, mis servidores con acceso a todo.

Ese día instalé Tailscale. Y no he vuelto a abrir un puerto.

Qué es Tailscale
#

Tailscale es una VPN mesh. Pero esa definición no transmite lo importante: es una red privada que funciona en cualquier sitio sin configurar nada.

Cuando instalas Tailscale en un dispositivo, le asigna una IP fija tipo 100.x.x.x. Esa IP funciona estés donde estés: en casa, en el trabajo, en el WiFi de un hotel, en el 4G del móvil. Tus dispositivos se ven entre sí como si estuvieran en la misma red local, pero a través de un túnel WireGuard cifrado.

La magia es que no necesitas un servidor central. Los dispositivos se conectan directamente entre ellos (peer-to-peer). Tailscale solo tiene servidores de coordinación que intercambian claves públicas. Tus datos nunca pasan por sus servers.

Mi red Tailscale
#

Así es como tengo configurada la red:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
Dispositivo                     IP Tailscale        Rol
──────────────────────────────────────────────────────────
📱 iPhone                       100.x.x.x           Cliente
💻 MacBook                      100.x.x.x           Cliente
🖥️ Mac mini (servidor)          100.xx.xx.xx       Servidor principal
🖥️ Phatt (Unraid, 512GB RAM)   100.xx.xx.xx        Media/AI server
🖥️ Proxmox ms-a2               100.x.x.x           Hipervisor
🖥️ Proxmox ms-s1               100.x.x.x           Hipervisor
🤖 Seneca (VM agente)           100.xx.xx.xx       Agente IA
🤖 Gemma (VM agente)            100.xx.xx.xx       Agente IA
🤖 Aura (VM agente)             100.xx.xx.xx       Agente IA
🤖 Jade (VM agente)             100.xx.xx.xx      Agente IA
🤖 Prism (VM agente)            100.xx.xx.xx       Agente IA
📦 K3s cluster                  100.xx.xx.xx        Kubernetes

41 dispositivos. 30 online ahora mismo. Servidores, VMs, agentes de IA, móviles, iPads, un NAS Synology, nodos de Kubernetes. Algunos en la misma red local, otros en redes completamente diferentes. Todos se ven entre sí como si estuvieran enchufados al mismo switch.

Instalación: es insultantemente fácil
#

No voy a hacer un tutorial de “paso 1: abre el terminal” porque Tailscale tiene la documentación más clara que he visto en una herramienta de infraestructura. Pero el resumen es:

1
2
3
4
5
# Linux
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

# Te da un enlace. Lo abres. Te logueas. Ya está.

En Unraid es aún más fácil: Community Applications → Tailscale → instalar → login. Tres clicks.

En el móvil: descargas la app, te logueas, fin.

La primera vez que lo hice, pensé que me había saltado algún paso. “¿Ya? ¿No tengo que configurar nada?” No. Ya.

Subnet routes: el truco que cambia todo
#

Instalar Tailscale en cada dispositivo funciona, pero no escala. ¿Tengo que instalar Tailscale en cada bombilla Hue, en cada cámara, en el NAS Synology de 2018?

No. Para eso existen los subnet routes.

Coges un dispositivo que ya tiene Tailscale (mi Mac mini, por ejemplo) y le dices: “expón toda la red 192.168.0.0/24 a través de Tailscale.”

1
tailscale up --advertise-routes=192.168.0.0/24

Luego apruebas la ruta en el panel de admin de Tailscale. Y desde ese momento, cualquier dispositivo en tu red Tailscale puede acceder a cualquier IP de tu red local. Desde cualquier parte del mundo.

Estoy en un aeropuerto y necesito acceder a la web UI de Proxmox en 192.168.0.114:8006? Funciona. ¿Quiero ver las cámaras en 192.168.0.50? Funciona. ¿Abrir el panel de Home Assistant en 192.168.0.185:8123? Funciona.

Todo sin abrir un solo puerto en el router.

Exit node: navega como si estuvieras en casa
#

Hay veces que no solo quiero acceder a mi homelab, sino navegar Internet como si estuviera en casa. Por ejemplo, en el WiFi de un hotel (que no me fío ni un pelo) o para acceder a servicios que solo funcionan desde España.

1
2
3
4
5
# En el servidor de casa
tailscale up --advertise-exit-node

# En el dispositivo cliente
tailscale up --exit-node=mac-mini

Todo mi tráfico de Internet sale por mi conexión de casa. Es como una VPN comercial, pero es mi propio servidor, no confío en ningún tercero, y no tiene límites de ancho de banda.

MagicDNS: olvídate de las IPs
#

Una vez que tienes MagicDNS activado (viene por defecto), puedes acceder a tus máquinas por nombre:

1
2
ssh root@phatt                    # en vez de ssh [email protected]
curl http://seneca:8080           # en vez de 100.xx.xx.xx:8080

Parece una tontería, pero cuando tienes 40+ dispositivos, recordar IPs de Tailscale deja de ser viable. phatt, seneca, gemma son mucho más humanos que 100.xx.xx.xx.

SSH sin claves: Tailscale SSH
#

Esta funcionalidad me sorprendió. Si activas Tailscale SSH:

1
tailscale up --ssh

Puedes hacer SSH a esa máquina sin configurar claves SSH. Tailscale se encarga de la autenticación usando tu identidad de Tailscale.

No lo uso en producción porque prefiero tener control sobre mis claves SSH, pero para acceso rápido a máquinas nuevas o de prueba, es increíblemente cómodo.

Tailscale Serve y Funnel
#

Dos funcionalidades extra que conviene conocer:

Tailscale Serve expone un servicio local con HTTPS automático dentro de tu red Tailscale:

1
tailscale serve https / http://localhost:3000

Tu servicio es accesible como https://tu-maquina.tailnet-name.ts.net con un certificado válido. Perfecto para dashboards que necesitan HTTPS (algunas PWAs lo requieren).

Tailscale Funnel es el paso extra: expone el servicio a Internet público. Básicamente convierte tu servidor en un servidor web accesible desde cualquier navegador, sin abrir puertos.

Lo he usado puntualmente para compartir demos con clientes. Funciona, pero para exposición permanente prefiero Cloudflare Tunnels (más control, más features).

Tailscale vs WireGuard manual
#

“¿Pero por qué no montas WireGuard directamente?” me han preguntado varias veces.

Puedo. WireGuard es lo que Tailscale usa por debajo. La diferencia es todo lo que rodea al túnel:

Con WireGuard manual necesitas: IP fija o DDNS, abrir un puerto UDP, generar y distribuir claves manualmente, configurar cada peer individualmente, mantener los ficheros de configuración, y rezar para que el NAT traversal funcione.

Con Tailscale necesitas: instalar y loguearte.

He usado WireGuard manual durante años. Funciona bien para 2-3 dispositivos. Pero cuando llegas a 10+ dispositivos en diferentes redes, la gestión se vuelve tediosa. Tailscale elimina esa fricción.

¿Es Tailscale perfecto? No. Dependes de sus servidores de coordinación (si se caen, los túneles nuevos no se establecen, aunque los existentes siguen funcionando). Y la versión gratuita tiene un límite de 100 dispositivos (suficiente para el 99% de homelabs).

Si la dependencia te preocupa, existe Headscale, que es un servidor de coordinación open source compatible con Tailscale. Lo instalas en tu servidor y tienes lo mismo pero sin depender de nadie. Nunca lo he necesitado, pero es bueno saber que existe.

Lo que aprendí
#

Después de más de un año con Tailscale en producción, estas son mis lecciones:

  1. Instálalo en todo. Cada dispositivo que añades a la red Tailscale es un dispositivo que no necesita port forwarding. La fricción de instalación es tan baja que no hay excusa.

  2. Subnet routes > instalar Tailscale en cada cacharro. Para IoT, impresoras, cámaras y dispositivos que no soportan Tailscale, usa subnet routes desde un nodo que sí lo tenga.

  3. Combínalo con Cloudflare Tunnels. Tailscale para acceso privado, Cloudflare Tunnels para servicios públicos. Son complementarios, no competidores.

  4. Documenta tus IPs. Con 40+ dispositivos, pierdes la pista rápido. Mantén un fichero con las IPs de Tailscale y qué hace cada una.

  5. Los ACLs importan. Si tienes dispositivos compartidos (una VM que usa otra persona, por ejemplo), configura ACLs para limitar qué puede acceder a qué.

Conclusión
#

Tailscale es la herramienta más infravalorada del ecosistema homelab. Muchos la conocen pero siguen pensando que “es solo una VPN”. No ven lo que cambia no tener que gestionar acceso remoto nunca más.

Desde que uso Tailscale, mi router tiene exactamente cero puertos abiertos. Y duermo mejor por las noches.


Dato inútil: mi red Tailscale (41 dispositivos, 30 online) ha transferido más de 2TB de datos en el último año. Todo cifrado, todo punto a punto, todo sin abrir un solo puerto. El futuro del networking casero es esto.