Tailscale (panel Gateway)
OpenClaw może automatycznie skonfigurować Tailscale Serve (tailnet) lub Funnel (publicznie) dla panelu Gateway oraz portu WebSocket. Dzięki temu Gateway pozostaje powiązany z loopback, a Tailscale zapewnia HTTPS, routing i (dla Serve) nagłówki tożsamości.Tryby
serve: tylko Tailnet Serve przeztailscale serve. Gateway pozostaje na127.0.0.1.funnel: publiczny HTTPS przeztailscale funnel. OpenClaw wymaga współdzielonego hasła.off: domyślnie (bez automatyzacji Tailscale).
Uwierzytelnianie
Ustawgateway.auth.mode, aby sterować handshake:
none(tylko dla prywatnego ingressu)token(domyślnie, gdy ustawionoOPENCLAW_GATEWAY_TOKEN)password(współdzielony sekret przezOPENCLAW_GATEWAY_PASSWORDlub konfigurację)trusted-proxy(reverse proxy świadome tożsamości; zobacz Trusted Proxy Auth)
tailscale.mode = "serve" i gateway.auth.allowTailscale ma wartość true,
uwierzytelnianie Control UI/WebSocket może używać nagłówków tożsamości Tailscale
(tailscale-user-login) bez podawania tokenu/hasła. OpenClaw weryfikuje
tożsamość, rozwiązując adres x-forwarded-for przez lokalny demon Tailscale
(tailscale whois) i dopasowując go do nagłówka przed jego zaakceptowaniem.
OpenClaw traktuje żądanie jako pochodzące z Serve tylko wtedy, gdy przychodzi z loopback z
nagłówkami Tailscale x-forwarded-for, x-forwarded-proto i x-forwarded-host.
Endpointy HTTP API (na przykład /v1/*, /tools/invoke i /api/channels/*)
nie używają uwierzytelniania nagłówkami tożsamości Tailscale. Nadal stosują zwykły
tryb uwierzytelniania HTTP gateway: domyślnie uwierzytelnianie współdzielonym sekretem albo
celowo skonfigurowany trusted-proxy / prywatny ingress z none.
Ten przepływ bez tokenu zakłada, że host gateway jest zaufany. Jeśli na tym samym hoście
może działać niezaufany kod lokalny, wyłącz gateway.auth.allowTailscale i zamiast tego
wymagaj uwierzytelniania tokenem/hasłem.
Aby wymagać jawnych poświadczeń współdzielonego sekretu, ustaw gateway.auth.allowTailscale: false
i użyj gateway.auth.mode: "token" lub "password".
Przykłady konfiguracji
Tylko tailnet (Serve)
https://<magicdns>/ (lub skonfigurowane gateway.controlUi.basePath)
Tylko tailnet (powiązanie z adresem IP Tailnet)
Użyj tego, jeśli chcesz, aby Gateway nasłuchiwał bezpośrednio na adresie IP Tailnet (bez Serve/Funnel).- Control UI:
http://<tailscale-ip>:18789/ - WebSocket:
ws://<tailscale-ip>:18789
http://127.0.0.1:18789) nie będzie działać w tym trybie.
Publiczny internet (Funnel + współdzielone hasło)
OPENCLAW_GATEWAY_PASSWORD zamiast zapisywania hasła na dysku.
Przykłady CLI
Uwagi
- Tailscale Serve/Funnel wymaga zainstalowanego i zalogowanego CLI
tailscale. tailscale.mode: "funnel"odmawia uruchomienia, jeśli tryb uwierzytelniania nie jestpassword, aby uniknąć publicznej ekspozycji.- Ustaw
gateway.tailscale.resetOnExit, jeśli chcesz, aby OpenClaw cofnął konfiguracjętailscale servelubtailscale funnelprzy zamykaniu. gateway.bind: "tailnet"to bezpośrednie powiązanie Tailnet (bez HTTPS, bez Serve/Funnel).gateway.bind: "auto"preferuje loopback; użyjtailnet, jeśli chcesz tylko Tailnet.- Serve/Funnel udostępniają tylko Gateway control UI + WS. Węzły łączą się przez ten sam endpoint Gateway WS, więc Serve może działać również dla dostępu węzłów.
Sterowanie przeglądarką (zdalny Gateway + lokalna przeglądarka)
Jeśli uruchamiasz Gateway na jednej maszynie, ale chcesz sterować przeglądarką na innej, uruchom node host na maszynie z przeglądarką i utrzymuj obie maszyny w tym samym tailnet. Gateway będzie proxyować działania przeglądarki do węzła; nie jest potrzebny osobny serwer sterowania ani URL Serve. Unikaj Funnel do sterowania przeglądarką; traktuj parowanie węzłów jak dostęp operatora.Wymagania wstępne i ograniczenia Tailscale
- Serve wymaga włączonego HTTPS dla Twojego tailnet; CLI wyświetli monit, jeśli go brakuje.
- Serve wstrzykuje nagłówki tożsamości Tailscale; Funnel nie.
- Funnel wymaga Tailscale v1.38.3+, MagicDNS, włączonego HTTPS i atrybutu węzła funnel.
- Funnel obsługuje przez TLS tylko porty
443,8443i10000. - Funnel na macOS wymaga wariantu aplikacji Tailscale open source.
Dowiedz się więcej
- Przegląd Tailscale Serve: https://tailscale.com/kb/1312/serve
- Polecenie
tailscale serve: https://tailscale.com/kb/1242/tailscale-serve - Przegląd Tailscale Funnel: https://tailscale.com/kb/1223/tailscale-funnel
- Polecenie
tailscale funnel: https://tailscale.com/kb/1311/tailscale-funnel