Tailscale (панель Gateway (шлюз))
OpenClaw может автоматически настраивать Tailscale Serve (tailnet) или Funnel (публичный доступ) для панели Gateway (шлюз) и порта WebSocket. Это позволяет держать Gateway привязанным к loopback, в то время как Tailscale предоставляет HTTPS, маршрутизацию и (для Serve) заголовки идентификации.Режимы
serve: Только tailnet Serve черезtailscale serve. Gateway остаётся на127.0.0.1.funnel: Публичный HTTPS черезtailscale funnel. OpenClaw требует общий пароль.off: По умолчанию (без автоматизации Tailscale).
Аутентификация
Установитеgateway.auth.mode для управления рукопожатием:
token(по умолчанию, когда установленOPENCLAW_GATEWAY_TOKEN)password(общий секрет черезOPENCLAW_GATEWAY_PASSWORDили конфиг)
tailscale.mode = "serve" и gateway.auth.allowTailscale равно true,
корректные прокси‑запросы Serve могут аутентифицироваться через заголовки идентификации Tailscale
(tailscale-user-login) без передачи токена/пароля. OpenClaw проверяет
идентичность, разрешая адрес x-forwarded-for через локальный демон Tailscale
(tailscale whois) и сопоставляя его с заголовком перед принятием запроса.
OpenClaw рассматривает запрос как Serve только если он приходит с loopback с
заголовками Tailscale x-forwarded-for, x-forwarded-proto и x-forwarded-host.
Чтобы требовать явные учётные данные, установите gateway.auth.allowTailscale: false или
принудительно включите gateway.auth.mode: "password".
Примеры конфигурации
Только tailnet (Serve)
https://<magicdns>/ (или ваш настроенный gateway.controlUi.basePath)
Только tailnet (привязка к IP Tailnet)
Используйте это, если хотите, чтобы Gateway слушал напрямую на IP Tailnet (без Serve/Funnel).- Панель управления:
http://<tailscale-ip>:18789/ - WebSocket:
ws://<tailscale-ip>:18789
http://127.0.0.1:18789) не будет работать в этом режиме.
Публичный интернет (Funnel + общий пароль)
OPENCLAW_GATEWAY_PASSWORD вместо сохранения пароля на диск.
Примеры CLI
Примечания
- Tailscale Serve/Funnel требует установленный и авторизованный CLI
tailscale. tailscale.mode: "funnel"отказывается запускаться, если режим аутентификации неpassword, чтобы избежать публичного доступа.- Установите
gateway.tailscale.resetOnExit, если хотите, чтобы OpenClaw отменял конфигурациюtailscale serveилиtailscale funnelпри завершении работы. gateway.bind: "tailnet"— это прямая привязка к Tailnet (без HTTPS, без Serve/Funnel).gateway.bind: "auto"предпочитает loopback; используйтеtailnet, если нужен только tailnet.- Serve/Funnel публикуют только панель управления Gateway + WS. Узлы подключаются через тот же WS‑endpoint Gateway, поэтому Serve может работать и для доступа узлов.
Управление браузером (удалённый Gateway + локальный браузер)
Если вы запускаете Gateway на одной машине, но хотите управлять браузером на другой, запустите хост узла на машине с браузером и держите обе в одном tailnet. Gateway будет проксировать действия браузера к узлу; отдельный сервер управления или URL Serve не требуется. Избегайте Funnel для управления браузером; относитесь к сопряжению узлов как к операторскому доступу.Предварительные требования и ограничения Tailscale
- Serve требует включённый HTTPS для вашего tailnet; CLI подскажет, если его нет.
- Serve внедряет заголовки идентификации Tailscale; Funnel — нет.
- Funnel требует Tailscale v1.38.3+, MagicDNS, включённый HTTPS и атрибут узла funnel.
- Funnel поддерживает по TLS только порты
443,8443и10000. - Funnel на macOS требует вариант приложения Tailscale с открытым исходным кодом.
Узнать больше
- Обзор Tailscale Serve: https://tailscale.com/kb/1312/serve
- Команда
tailscale serve: https://tailscale.com/kb/1242/tailscale-serve - Обзор Tailscale Funnel: https://tailscale.com/kb/1223/tailscale-funnel
- Команда
tailscale funnel: https://tailscale.com/kb/1311/tailscale-funnel