Monté un exit node Tailscale en un Hetzner CX11 en Frankfurt en marzo de 2026. Coste mensual: 3,79 €. Resultado: 18 ms de latencia desde París, 680 Mbps de throughput medido y un túnel cifrado con WireGuard que controlo línea por línea. Esta guía te da los comandos exactos que usamos en producción — no un resumen de documentación, no capturas de pantalla borrosas.
Qué es un exit node Tailscale y por qué es diferente a una VPN clásica
Un exit node Tailscale es un nodo de tu mesh Tailscale configurado para enrutar todo el tráfico de Internet de los demás nodos a través de su propia conexión. En la práctica: activas esta opción en tu VPS de Frankfurt, y todos tus dispositivos (portátil en París, iPhone, iPad) salen a Internet con la IP de ese VPS.
La diferencia con una VPN comercial como NordVPN es arquitectural:
- VPN comercial: infraestructura compartida entre miles de usuarios. No controlas nada — ni el servidor, ni la política de logs, ni la configuración.
- WireGuard desnudo self-host: túnel punto a punto entre cada cliente y el servidor. Excelente para un túnel, pero con 4 dispositivos gestionas manualmente 4 pares de claves.
- Tailscale exit node: mesh WireGuard gestionado automáticamente. El plano de control Tailscale orquesta claves, NAT traversal y ACLs. Designas cualquier nodo como exit node con un comando — todos los demás lo usan sin reconfiguración.
El plano de datos es WireGuard puro — ninguna empresa ve tu tráfico payload. Solo Tailscale Inc. ve los metadatos de tu mesh (quién habla con quién, cuándo), documentado en su política de privacidad.
Para una comparativa exhaustiva de los enfoques de autoalojamiento, ver nuestro artículo mejor VPN auto-alojado 2026 y para el análisis en profundidad Tailscale vs WireGuard desnudo, Tailscale vs WireGuard self-host.
Requisitos previos
Antes de empezar, necesitas:
- Una cuenta Tailscale — el plan Free sirve para 1 exit node. Regístrate en tailscale.com.
- Un servidor Linux — Ubuntu 24.04 LTS recomendado (soporte 5 años). También funciona en Mac o Raspberry Pi.
- Conexión estable >= 100 Mbps — para uso personal o familiar. Para múltiples usuarios simultáneos, apunta a >= 500 Mbps.
- IP pública dedicada — incluida por defecto en Hetzner, Contabo, OVH.
- Acceso root o sudo en el servidor.
Esta guía asume Ubuntu 24.04 LTS. Los comandos son idénticos en Debian 12, ligeramente diferentes en CentOS/RHEL (dnf en lugar de apt).
Elegir la plataforma exit node
| Proveedor | Precio | Red | Localización | Veredicto |
|---|---|---|---|---|
| Hetzner CX11 | 3,79 €/mes | 20 TB incl., 1 Gbps | Frankfurt / Helsinki / Ashburn | Mejor relación calidad-precio EU |
| Contabo VPS S | 4,99 €/mes | 32 TB incl., 200 Mbps | Núremberg / NYC / Singapur | Bueno si ya eres cliente Contabo |
| OVH VPS Starter | 3,59 €/mes | Sin límite, 100 Mbps | Gravelines / Estrasburgo | Buena latencia Francia, ancho de banda limitado |
| AWS EC2 t2.micro | 0 € (12 meses) | 15 GB/mes incl. | Cualquier región | Free tier, pero 15 GB apenas alcanza para uso continuo |
| Raspberry Pi 5 (doméstico) | ~0 € (solo hardware) | Enlace ISP | Tu red doméstica | Ideal para acceso LAN — IP ISP a menudo dinámica |
Nuestra elección en producción: Hetzner CX11 Frankfurt para el benchmark de latencia París. La red de Hetzner es de las mejores de Europa para RTT. Raspberry Pi 5 como secundario para acceso LAN doméstico.
Nota sobre Contabo: su red está anunciada a 200 Mbps pero en la práctica limitada a 100 Mbps en pico de uso en la gama de entrada. Para un exit node familiar, tomar VPS M Cloud con 200 Mbps garantizados.
Instalación paso a paso en Ubuntu 24.04 LTS
1. Instalar Tailscale
Tailscale publica un instalador oficial a través de su repositorio APT:
# Añadir la clave GPG y el repositorio
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg \
| sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list \
| sudo tee /etc/apt/sources.list.d/tailscale.list
# Instalar
sudo apt-get update
sudo apt-get install -y tailscale
# Verificar versión (junio 2026: v1.68+)
tailscale version
2. Habilitar el IP forwarding
Sin este paso, el nodo no puede enrutar el tráfico de los clientes hacia Internet. Es el equivalente del masquerade de WireGuard:
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
Verificación:
sysctl net.ipv4.ip_forward
# Debe devolver: net.ipv4.ip_forward = 1
3. Autenticar y anunciar el exit node
sudo tailscale up --advertise-exit-node
Tailscale muestra una URL en el terminal:
To authenticate, visit:
https://login.tailscale.com/a/xxxxxxxxxxxxxxxx
Abre esta URL en tu navegador e inicia sesión con tu cuenta Tailscale. El nodo aparece en tu lista de máquinas.
Tip: para pre-autenticación sin interacción (scripts CI/CD), usa una auth key: sudo tailscale up --advertise-exit-node --authkey=tskey-auth-xxxxx.
4. Aprobar en la consola de administración
Por defecto, Tailscale requiere aprobación manual para los exit nodes (medida de seguridad). En login.tailscale.com/admin/machines:
- Encuentra tu nodo (ej:
hetzner-cx11-fra) - Haz clic en
(...)→ Edit route settings - Marca Use as exit node
- Haz clic en Save
El nodo ya está disponible como exit node para todos los miembros de tu tailnet.
Alternativa: deshabilitar la aprobación manual globalmente en Admin → Settings → Disable exit node approval requirement. Conveniente para un tailnet personal en solitario.
5. Verificar el estado
tailscale status
# El nodo debe aparecer como "offers exit node"
sudo tailscale ping nombre-del-nodo
# Debe devolver un RTT
Configuración del cliente
macOS
- Instalar Tailscale desde el Mac App Store o
brew install tailscale - Lanzar Tailscale desde la barra de menús
- Iniciar sesión con la misma cuenta
- Clic en el icono Tailscale → Exit node → seleccionar tu nodo
- Verificar:
curl ifconfig.me— la IP mostrada debe ser la del VPS
Acceso LAN: por defecto cuando un exit node está activo, el tráfico local (192.168.x.x) también pasa por el túnel. Para mantener acceso LAN directo: clic Tailscale → Allow LAN access.
Windows
- Descargar desde tailscale.com/download/windows
- Clic derecho icono systray → Exit node → seleccionar el nodo
- Confirmar la solicitud de elevación UAC
iOS y Android
- Instalar la app Tailscale desde App Store / Play Store
- Iniciar sesión en el tailnet
- Ir a Settings (iOS) o icono engranaje (Android) → Use exit node → seleccionar
En iOS, Tailscale se integra mediante Network Extension — no se necesita jailbreak. La conexión sobrevive a las transiciones WiFi/4G.
Linux CLI
# Seleccionar el exit node (por nombre o IP Tailscale)
sudo tailscale set --exit-node=hetzner-cx11-fra
# O por IP Tailscale (100.x.y.z)
sudo tailscale set --exit-node=100.64.0.1
# Desactivar
sudo tailscale set --exit-node=
# Verificar
tailscale status | grep "exit node"
Optimizaciones y resolución de problemas
Rendimiento: verificar el tipo de conexión
Tailscale prefiere el túnel WireGuard directo (NAT traversal). Si dos nodos no pueden verse directamente (NAT estricto, CGNAT), el tráfico pasa por un DERP relay — aproximadamente un 30-40% más lento:
tailscale netcheck
# Muestra qué relay se usa y si es posible la conexión directa
tailscale ping nombre-del-nodo
# "pong from ... via DERP(fra)" = relay
# "pong from ... via 1.2.3.4:41641" = directo (preferible)
Si estás en relay cuando ambas máquinas tienen IPs públicas, verificar UFW:
sudo ufw allow 41641/udp comment "Tailscale WireGuard"
sudo ufw allow 3478/udp comment "Tailscale STUN"
DNS: fugas tras activar el exit node
Tailscale empuja sus propios DNS (MagicDNS) pero a veces deja filtrar los DNS del sistema. Test:
# Desde el cliente con exit node activo
dig +short whoami.cloudflare.com TXT @1.1.1.1
# La IP devuelta debe ser la del VPS, no tu IP real
Si tu IP real se filtra: en macOS, desactivar y reactivar el exit node. En Linux:
sudo tailscale set --exit-node=hetzner-cx11-fra
sudo resolvectl flush-caches
MTU y fragmentación
WireGuard reduce el MTU efectivo en ~60 bytes (overhead del túnel). En algunos enlaces esto provoca cortes con paquetes grandes (vídeo, sesiones SSH largas). Fix:
# En el servidor exit node
sudo ip link set tailscale0 mtu 1280
# Hacer permanente via /etc/systemd/network/ o script rc.local
Kernel routing: rendimiento avanzado
En el servidor, habilitar BBR congestion control para mejor throughput:
echo 'net.core.default_qdisc = fq' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv4.tcp_congestion_control = bbr' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
Ganancia medida en nuestro bench Hetzner: +12% de throughput promedio bajo carga.
Seguridad y consideraciones de privacidad
Qué ve Tailscale Inc.
Tailscale ve únicamente metadatos del plano de control:
- Direcciones IP Tailscale (100.x.y.z) de tus nodos
- Timestamps de los handshakes WireGuard
- Nombres de las máquinas registradas en tu tailnet
Tailscale nunca ve:
- El contenido de tu tráfico (cifrado WireGuard de extremo a extremo)
- Tus consultas DNS (si MagicDNS desactivado y usando un resolver DNS externo)
- Los sitios que visitas
El plano de datos es WireGuard puro. El código cliente es open source.
ACLs en el plan gratuito
El plan Free ofrece ACLs JSON básicas para controlar qué nodos pueden comunicarse con cuáles. Ejemplo mínimo para restringir el exit node solo a tus propios dispositivos:
{
"acls": [
{
"action": "accept",
"src": ["tag:personal"],
"dst": ["tag:exit-node:*"]
}
],
"tagOwners": {
"tag:exit-node": ["autogroup:admin"],
"tag:personal": ["autogroup:admin"]
}
}
DERP relays: jurisdicción
Cuando el tráfico pasa por un DERP relay (caso NAT estricto), transita por la infraestructura de Tailscale. Los relays EU están en Alemania y Países Bajos. Si la jurisdicción importa, puedes desplegar tu propio DERP relay — guía en la documentación oficial de Tailscale.
Logs en el servidor
Por defecto Ubuntu genera logs del kernel via journald para las conexiones WireGuard. Para cero logs:
sudo journalctl --vacuum-time=1s
Para profundizar en la arquitectura Tailscale vs plano de control autoalojado, ver nuestra comparativa Tailscale vs Headscale. Y para plantillas WireGuard desnudo sin overhead Tailscale: plantillas WireGuard 2026.
En resumen: un exit node Tailscale en Hetzner CX11 (3,79 €/mes) te da un túnel VPN mesh WireGuard completamente bajo tu control, 18 ms París-Frankfurt, 680 Mbps de throughput y cero costes de ancho de banda hasta 20 TB/mes. El plan Free es suficiente para uso personal o familiar (hasta 3 usuarios). La configuración lleva 20 minutos — todos los comandos están en esta guía.
★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · 200+ Mbps garantis
Probar Contabo30 jours satisfait ou remboursé→