Configura Tailscale Serve con HTTPS para acceder a OpenClaw solo desde tu red privada, sin Funnel y manteniendo el Gateway en loopback.
Tailscale Serve permite entrar por HTTPS desde dispositivos autorizados de tu red privada, sin publicar la interfaz en Internet. Necesitas Tailscale tanto en el VPS como en el equipo desde el que accedes. No actives Funnel ni expongas directamente el puerto 18789, tampoco en la interfaz de Tailscale.
Antes de empezar
- Completa Cómo empezar con tu VPS OpenClaw de forma segura y mantén SSH abierto para recuperar el acceso. Si necesitas localizar el VPS o entrar en su panel, consulta Cómo entrar al panel de tu VPS desde el área de cliente.
- Necesitas una cuenta Tailscale y permiso para añadir el VPS a su red privada (tailnet). Su administrador controla los accesos mediante las políticas de red.
- Este ejemplo parte de Ubuntu 24.04 (Noble) sin otra configuración de Serve. No reemplaces un servicio existente sin revisar su uso.
EQUIPO.RED.ts.netrepresenta el nombre HTTPS asignado al VPS por Tailscale: sustitúyelo por el nombre exacto de tu equipo. No es un dominio que debas registrar.- En autogestionado realizas estos pasos; en administrado Netebu configura el acceso acordado, pero la autorización de tu cuenta y de HTTPS te corresponde a ti o al administrador de la red.
- Prepara copia según Copias de seguridad, instantáneas y clave SSH en tu VPS. No envíes enlaces de autorización ni claves a soporte.
Paso a paso
- Como root por SSH, añade el repositorio oficial de Tailscale para Noble e instala el paquete. Si ya está configurado, revisa los ficheros existentes antes de sustituirlos:
apt-get update
apt-get install -y ca-certificates curl
install -d -m 755 /usr/share/keyrings
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg -o /usr/share/keyrings/tailscale-archive-keyring.gpg
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list -o /etc/apt/sources.list.d/tailscale.list
apt-get update
apt-get install -y tailscale
systemctl enable --now tailscaled
En todos los bloques de esta guía, ejecuta cada comando solo si el anterior termina correctamente, incluida la copia de seguridad. No continúes con errores de descarga o firma del repositorio.
- Inicia la autorización:
tailscale up
Abre el enlace mostrado en tu navegador privado, inicia sesión en tu cuenta y autoriza el equipo correcto. El enlace es sensible: no lo captures ni compartas. Si la red exige aprobación de dispositivos, espera a que su administrador apruebe el VPS. Este procedimiento no activa el servicio SSH de Tailscale; conserva tu acceso SSH habitual.
- En la consola de administración de Tailscale, comprueba que MagicDNS está habilitado y autoriza los certificados HTTPS si se solicita. Necesitas permisos de administrador. Al emitir certificados, el nombre completo del equipo puede aparecer en registros públicos de transparencia de certificados: evita nombres que revelen datos sensibles. Esto no convierte el servicio en público.
Comprueba el equipo y su nombre DNS con tailscale status. No copies la salida completa a documentación: puede incluir otros equipos e identidades de tu red.
- Guarda una copia privada nueva de la configuración de OpenClaw y autoriza el origen HTTPS. No reutilices el nombre de una copia anterior. La lista siguiente sustituye los orígenes previos: si mantienes un dominio HTTPS, incluye también su origen exacto en el mismo array.
COPIA=$(mktemp -d /root/openclaw-antes-tailscale.XXXXXX)
chmod 700 "$COPIA"
printf 'Anota esta ruta privada para volver atrás: %s\n' "$COPIA"
cp -a /home/openclaw/.openclaw/openclaw.json "$COPIA/openclaw.json"
sudo -u openclaw -H openclaw config set gateway.controlUi.allowedOrigins '["https://EQUIPO.RED.ts.net"]' --strict-json
sudo -u openclaw -H openclaw config set gateway.trustedProxies '["127.0.0.1","::1"]' --strict-json
sudo -u openclaw -H openclaw config set gateway.auth.allowTailscale false --strict-json
sudo -u openclaw -H openclaw config validate
systemctl restart openclaw.service
Reinicia solo tras validar. Mantén el token, la escucha loopback y las comprobaciones de origen. gateway.auth.allowTailscale=false impide sustituir el token por la identidad que Serve añade a las peticiones; la pertenencia a la red no sustituye la autenticación del Gateway.
- Comprueba que no hay otra publicación con
tailscale serve status, y activa Serve:
tailscale serve --bg --https=443 http://127.0.0.1:18789
tailscale serve status
Si solicita habilitar HTTPS, completa la autorización del paso 3 y repite. El destino debe ser loopback y el alcance, solo la tailnet. No actives ninguna opción de publicación pública. Si detectas Funnel habilitado, detente y pide al administrador que retire esa exposición antes de continuar.
Cómo comprobar que ha funcionado
- Desde un dispositivo conectado y autorizado por las políticas de tu tailnet, abre
https://EQUIPO.RED.ts.netsin parámetros ni fragmentos. Debe mostrar un certificado válido y la interfaz. Conecta al Gateway usando su token de forma privada, como explica Cómo empezar con tu VPS OpenClaw de forma segura.
- Revisa
tailscale serve status: debe indicar acceso limitado a la tailnet, destino local y ninguna publicación Funnel. Comprueba también las políticas de acceso con el administrador; no presupongas que todos los miembros deben poder entrar. - Desde otro dispositivo sin Tailscale ni ruta hacia esa red, la misma URL no debe abrir el servicio. Una prueba dentro de la tailnet no demuestra privacidad por sí sola.
- En el VPS ejecuta
ss -ltn 'sport = :18789'ysudo -u openclaw -H openclaw security audit: el Gateway sigue en loopback y debes resolver cualquier advertencia. - Si configuraste antes nginx con un dominio público, Serve no lo retira. Para un acceso exclusivamente privado, deshabilita ese sitio siguiendo su guía de vuelta atrás y verifica desde fuera que el dominio anterior ya no sirve OpenClaw.
Si algo falla
- No resuelve el nombre: comprueba MagicDNS, que el equipo cliente esté conectado y acepte la configuración DNS de Tailscale, y que usas el nombre completo exacto asignado. Que el nombre resuelva fuera de la tailnet no implica acceso: resolver DNS y poder conectar son comprobaciones distintas.
- No conecta: revisa aprobación del dispositivo, políticas de red y estado de
tailscaled. No abras el puerto 18789 ni desactives UFW para probar. - Origen rechazado: revisa la URL exacta autorizada en OpenClaw, sin barra final ni comodines.
- Volver atrás: si Serve estaba vacío antes de esta guía, ejecuta
tailscale serve resetpara retirar esta publicación; no lo hagas si había otros servicios. Restaura concp -aelopenclaw.jsonguardado en la ruta privada que anotaste a su ruta original, valida comoopenclawy reiniciaopenclaw.service. Comprueba el acceso por túnel. Solo si ya no necesitas la conexión Tailscale, ejecutatailscale logoutdesde tu SSH habitual. No borres copias ni revoques otros equipos.