Tailscale (tableau de bord de la Gateway (passerelle))
OpenClaw peut configurer automatiquement Tailscale Serve (tailnet) ou Funnel (public) pour le tableau de bord de la Gateway (passerelle) et le port WebSocket. Cela permet de conserver la Gateway liée au loopback tandis que Tailscale fournit HTTPS, le routage et (pour Serve) des en-têtes d’identité.Modes
serve: Serve uniquement sur le tailnet viatailscale serve. La Gateway reste sur127.0.0.1.funnel: HTTPS public viatailscale funnel. OpenClaw requiert un mot de passe partagé.off: Par défaut (aucune automatisation Tailscale).
Authentification
Définissezgateway.auth.mode pour contrôler la négociation :
token(par défaut lorsqueOPENCLAW_GATEWAY_TOKENest défini)password(secret partagé viaOPENCLAW_GATEWAY_PASSWORDou la configuration)
tailscale.mode = "serve" et que gateway.auth.allowTailscale est true,
les requêtes proxy Serve valides peuvent s’authentifier via les en-têtes d’identité Tailscale
(tailscale-user-login) sans fournir de jeton/mot de passe. OpenClaw vérifie
l’identité en résolvant l’adresse x-forwarded-for via le démon Tailscale
local (tailscale whois) et en la faisant correspondre à l’en-tête avant de l’accepter.
OpenClaw ne considère une requête comme Serve que lorsqu’elle arrive depuis le loopback avec
les en-têtes Tailscale x-forwarded-for, x-forwarded-proto et x-forwarded-host.
Pour exiger des identifiants explicites, définissez gateway.auth.allowTailscale: false ou
forcez gateway.auth.mode: "password".
Exemples de configuration
Tailnet uniquement (Serve)
https://<magicdns>/ (ou votre gateway.controlUi.basePath configuré)
Tailnet uniquement (liaison à l’IP du Tailnet)
Utilisez ceci lorsque vous souhaitez que la Gateway écoute directement sur l’IP du Tailnet (sans Serve/Funnel).- Interface de contrôle :
http://<tailscale-ip>:18789/ - WebSocket :
ws://<tailscale-ip>:18789
http://127.0.0.1:18789) ne fonctionnera pas dans ce mode.
Internet public (Funnel + mot de passe partagé)
OPENCLAW_GATEWAY_PASSWORD plutôt que d’enregistrer un mot de passe sur le disque.
Exemples CLI
Notes
- Tailscale Serve/Funnel nécessite que la CLI
tailscalesoit installée et connectée. tailscale.mode: "funnel"refuse de démarrer sauf si le mode d’authentification estpasswordafin d’éviter une exposition publique.- Définissez
gateway.tailscale.resetOnExitsi vous souhaitez qu’OpenClaw annule la configurationtailscale serveoutailscale funnelà l’arrêt. gateway.bind: "tailnet"est une liaison directe au Tailnet (pas de HTTPS, pas de Serve/Funnel).gateway.bind: "auto"privilégie le loopback ; utiliseztailnetsi vous souhaitez un accès uniquement Tailnet.- Serve/Funnel n’exposent que l’interface de contrôle de la Gateway + WS. Les nœuds se connectent via le même point de terminaison WS de la Gateway, donc Serve peut fonctionner pour l’accès des nœuds.
Contrôle du navigateur (Gateway distante + navigateur local)
Si vous exécutez la Gateway sur une machine mais souhaitez piloter un navigateur sur une autre machine, exécutez un hôte de nœud sur la machine du navigateur et maintenez les deux sur le même tailnet. La Gateway transmettra les actions du navigateur au nœud ; aucun serveur de contrôle séparé ni URL Serve n’est nécessaire. Évitez Funnel pour le contrôle du navigateur ; traitez l’appairage des nœuds comme un accès opérateur.Prérequis et limites Tailscale
- Serve requiert que HTTPS soit activé pour votre tailnet ; la CLI vous y invite s’il manque.
- Serve injecte des en-têtes d’identité Tailscale ; Funnel ne le fait pas.
- Funnel requiert Tailscale v1.38.3+, MagicDNS, HTTPS activé et un attribut de nœud funnel.
- Funnel ne prend en charge que les ports
443,8443et10000via TLS. - Funnel sur macOS nécessite la variante open source de l’application Tailscale.
En savoir plus
- Présentation de Tailscale Serve : https://tailscale.com/kb/1312/serve
- Commande
tailscale serve: https://tailscale.com/kb/1242/tailscale-serve - Présentation de Tailscale Funnel : https://tailscale.com/kb/1223/tailscale-funnel
- Commande
tailscale funnel: https://tailscale.com/kb/1311/tailscale-funnel