Skip to Content
👋 Willkommen bei HowToUseOpenClaw Schnellstart
GatewayTailscale

Tailscale (Gateway-Dashboard)

OpenClaw kann Tailscale Serve (Tailnet) oder Funnel (öffentlich) für das Gateway-Dashboard und den WebSocket-Port automatisch konfigurieren. Der Gateway bleibt an Loopback gebunden, während Tailscale HTTPS, Routing und (bei Serve) Identity-Header bereitstellt.

Modi

  • serve: Nur-Tailnet-Serve über tailscale serve. Der Gateway bleibt auf 127.0.0.1.
  • funnel: Öffentliches HTTPS über tailscale funnel. OpenClaw verlangt ein gemeinsames Passwort.
  • off: Standard (keine Tailscale-Automatik).

Auth

gateway.auth.mode steuert den Handshake:

  • token (Standard, wenn CLAWDBOT_GATEWAY_TOKEN gesetzt ist)
  • password (gemeinsames Geheimnis über CLAWDBOT_GATEWAY_PASSWORD oder Konfiguration)

Bei tailscale.mode = "serve" und gateway.auth.allowTailscale: true können gültige Serve-Proxy-Anfragen sich über Tailscale-Identity-Header (tailscale-user-login) authentifizieren, ohne Token/Passwort zu liefern. OpenClaw prüft die Identität, indem die x-forwarded-for-Adresse über den lokalen Tailscale-Daemon (tailscale whois) aufgelöst und mit dem Header abgeglichen wird. OpenClaw behandelt eine Anfrage nur als Serve, wenn sie von Loopback mit Tailscales x-forwarded-for, x-forwarded-proto und x-forwarded-host-Headern eingeht. Für explizite Credentials gateway.auth.allowTailscale: false setzen oder gateway.auth.mode: "password" erzwingen.

Konfigurationsbeispiele

Nur Tailnet (Serve)

{ gateway: { bind: "loopback", tailscale: { mode: "serve" } } }

Öffnen: https://<magicdns>/ (oder Ihr konfigurierter gateway.controlUi.basePath)

Nur Tailnet (an Tailnet-IP binden)

Nutzen, wenn der Gateway direkt auf der Tailnet-IP lauschen soll (ohne Serve/Funnel).

{ gateway: { bind: "tailnet", auth: { mode: "token", token: "your-token" } } }

Von einem anderen Tailnet-Gerät verbinden:

  • Control-UI: http://<tailscale-ip>:18789/
  • WebSocket: ws://<tailscale-ip>:18789

Hinweis: Loopback (http://127.0.0.1:18789) funktioniert in diesem Modus nicht.

Öffentliches Internet (Funnel + gemeinsames Passwort)

{ gateway: { bind: "loopback", tailscale: { mode: "funnel" }, auth: { mode: "password", password: "replace-me" } } }

CLAWDBOT_GATEWAY_PASSWORD dem Speichern eines Passworts auf Disk vorziehen.

CLI-Beispiele

openclaw gateway --tailscale serve openclaw gateway --tailscale funnel --auth password

Hinweise

  • Tailscale Serve/Funnel setzt voraus, dass die tailscale-CLI installiert und eingeloggt ist.
  • tailscale.mode: "funnel" startet nicht, wenn der Auth-Modus nicht password ist (gegen öffentliche Exposition).
  • gateway.tailscale.resetOnExit setzen, wenn OpenClaw die tailscale serve- bzw. tailscale funnel-Konfiguration beim Herunterfahren rückgängig machen soll.
  • gateway.bind: "tailnet" ist ein direkter Tailnet-Bind (kein HTTPS, kein Serve/Funnel).
  • gateway.bind: "auto" bevorzugt Loopback; tailnet nutzen für Nur-Tailnet.
  • Serve/Funnel exponieren nur Gateway-Control-UI + WS. Nodes verbinden sich über denselben Gateway-WS-Endpunkt, Serve funktioniert also auch für Node-Zugriff.

Browser-Steuerung (Remote-Gateway + lokaler Browser)

Läuft der Gateway auf einer Maschine, der Browser soll aber auf einer anderen laufen: Node-Host auf der Browser-Maschine betreiben und beide im selben Tailnet halten. Der Gateway proxyt Browser-Aktionen zum Node; kein separater Control-Server oder Serve-URL nötig. Funnel für Browser-Steuerung vermeiden; Node-Pairing wie Operator-Zugriff behandeln.

Tailscale-Voraussetzungen + Grenzen

  • Serve setzt HTTPS für Ihr Tailnet voraus; die CLI fragt nach, wenn es fehlt.
  • Serve fügt Tailscale-Identity-Header ein; Funnel nicht.
  • Funnel setzt Tailscale v1.38.3+, MagicDNS, HTTPS und ein Funnel-Node-Attribut voraus.
  • Funnel unterstützt nur die Ports 443, 8443 und 10000 über TLS.
  • Funnel unter macOS erfordert die Open-Source-Tailscale-App-Variante.

Weiterführend

Zuletzt aktualisiert am: