OpenClaw можно подключить удалённо — когда Gateway работает на сервере, а вы подключаетесь с ноутбука или телефона.
Как это работает
Gateway — это один долгоживущий процесс, который владеет подключениями каналов и WebSocket контрольной плоскостью. По умолчанию WS слушает на ws://127.0.0.1:18789 (loopback).
Для удалённого доступа вы пробрасываете этот порт через SSH или VPN (Tailscale).
Один Gateway на хост — рекомендуется. Только он может владеть сессией WhatsApp Web.
Способы подключения
SSH-туннель (самый простой)
ssh -N -L 18789:127.0.0.1:18789 user@ваш-сервер
После этого откройте http://127.0.0.1:18789/ в браузере. Тот же токен авторизации.
Tailscale Serve (рекомендуется)
Gateway остаётся на loopback, Tailscale обеспечивает HTTPS и маршрутизацию внутри tailnet:
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}
Откройте https:// — готово. Без открытия портов, всё зашифровано.
Tailscale: привязка к tailnet IP
Если хотите, чтобы Gateway слушал напрямую на IP Tailscale (без Serve/Funnel):
{
gateway: {
bind: "tailnet",
auth: { mode: "token", token: "your-token" },
},
}
Подключение: http://. Loopback в этом режиме не работает.
Tailscale Funnel (публичный доступ)
Для доступа из интернета через Tailscale:
{
gateway: {
bind: "loopback",
tailscale: { mode: "funnel" },
auth: { mode: "password", password: "replace-me" },
},
}
Funnel требует auth.mode: "password" — иначе Gateway откажется запускаться.
Прямой доступ (осторожно!)
Если привязываете к lan:
{
gateway: {
bind: "lan",
auth: { mode: "token", token: "обязательно-сильный-токен" },
},
}
Никогда не открывайте Gateway на публичный IP без авторизации.
Авторизация с Tailscale
Когда tailscale.mode: "serve" и gateway.auth.allowTailscale: true, Control UI может использовать Tailscale identity headers (tailscale-user-login) без токена/пароля. OpenClaw проверяет личность через tailscale whois.
Что защищено Tailscale identity, а что нет
allowTailscale: true/v1/*, /tools/invoke, /api/channels/*) — всегда требуют обычную авторизациюЕсли на хосте может запускаться непроверенный код — отключите allowTailscale и требуйте токен/пароль.
CLI remote defaults
Можно сохранить удалённый адрес, чтобы CLI использовал его по умолчанию:
{
gateway: {
mode: "remote",
remote: {
url: "ws://127.0.0.1:18789",
token: "your-token",
},
},
}
Когда Gateway на loopback — URL остаётся ws://127.0.0.1:18789, а SSH-туннель открывается заранее.
Приоритет credentials (подробно)
При использовании --url CLI не подхватывает credentials из конфига. Нужно передавать --token или --password явно.
Local mode:
OPENCLAW_GATEWAY_TOKEN → gateway.auth.token → gateway.remote.tokenOPENCLAW_GATEWAY_PASSWORD → gateway.auth.password → gateway.remote.passwordRemote mode:
gateway.remote.token → OPENCLAW_GATEWAY_TOKEN → gateway.auth.tokenOPENCLAW_GATEWAY_PASSWORD → gateway.remote.password → gateway.auth.passwordEnv URL override (OPENCLAW_GATEWAY_URL) может использовать только env credentials.
Ноды и удалённый доступ
Ноды (Mac, iPhone, Android) подключаются к Gateway по тому же WebSocket. Ноды не запускают Gateway — они периферийные устройства.
Пример потока: Telegram → Gateway → агент → решение вызвать ноду → Gateway → нода → результат → Gateway → ответ в Telegram.
Если Gateway на одном компьютере, а браузер нужен на другом — запустите node host на машине с браузером. Gateway проксирует действия браузера через ноду.
Canvas
Canvas хостится на том же порту, что и Gateway (по умолчанию 18789):
/__openclaw__/canvas//__openclaw__/a2ui/Если gateway.auth настроен и Gateway привязан не к loopback — эти маршруты защищены авторизацией Gateway.
Управление через CLI
openclaw gateway status # статус
openclaw gateway restart # перезапуск
openclaw health # проверка здоровья
openclaw status --deep # полная диагностика
Связывание нод (pairing)
Gateway является источником истины о том, какие ноды могут присоединиться. Ноды запрашивают связывание через WebSocket, оператор одобряет или отклоняет.
Как работает
- Нода подключается к WebSocket Gateway и запрашивает связывание
- Gateway сохраняет ожидающий запрос + событие
node.pair.requested - Оператор одобряет/отклоняет (CLI или UI)
- При одобрении Gateway выдаёт токен (ротируется при повторном связывании)
- Нода переподключается с токеном
Ожидающие запросы истекают через 5 минут.
CLI
openclaw nodes pending # ожидающие запросы
openclaw nodes approve <requestId> # одобрить
openclaw nodes reject <requestId> # отклонить
openclaw nodes status # связанные/подключённые
openclaw nodes rename --node <id> --name "..." # переименовать