2026 OpenClaw: удалённый режим в продакшене gateway.mode=remote, WebSocket и расхождение конфигурации CLI/сервиса

Gateway уже стабильно работает на VPS или облачном Mac, а на ноутбуке openclaw показывает «инструменты не оживают» или сбой RPC-пробы, при том что серверные логи подозрительно тихи. Материал для команд, которые рассматривают OpenClaw как продуктивный шлюз: сначала семь пунктов разводят gateway.mode=remote, частную публикацию Tailscale и SSH port forwarding; затем четырёхстрочная матрица сводит «где процесс», «куда смотрит клиент», TLS и проверку токенов; далее шестишаговый runbook передачи (удалённый URL, wss, двойной gateway status, gateway install --force, doctor, health-пробы) со ссылками на статьи о частной публикации Tailscale, кроссплатформенной установке и gateway closed(1000), чтобы темы не смешивались.

01

Перед подключением: семь скрытых допущений, из-за которых удалённый режим «падает» на архитектурном ревью

Официальный FAQ коротко описывает local / remote, но в продакшене время съедают URL пробы, не совпадающие с реальным listener, и systemd user-юниты, разошедшиеся с интерактивной оболочкой. Семь пунктов ниже переводят спор из «я пингую» в подписываемую матрицу приёмки.

  1. 01

    Считать удалённый режим синонимом SSH port forwarding: -L в основном чинит путь браузера к UI; удалённый режим меняет цель пробы по умолчанию для CLI. Слои складываются, смысл разный.

  2. 02

    Приравнивать Tailscale Serve к remote mode: Tailscale делает локальную Gateway доступной в tailnet; remote mode заставляет ноутбучный CLI говорить с Gateway на другом хосте. Таблица границ — в статье про Tailscale.

  3. 03

    Менять только gateway.remote.url и забыть gateway.mode: при оставшемся local CLI может продолжать бить в пустой локальный порт и давать «загадочные» таймауты.

  4. 04

    Смешивать http и wss: если reverse proxy терминирует TLS, а URL клиента не согласован с историей trusted-proxy, ждите 401 или шторм переподключений; пройдите чеклист ужесточения.

  5. 05

    Игнорировать пару Config (cli) / Config (service): после апгрейда часто правят файлы под root, а сервис крутится под --profile dev с другим state dir.

  6. 06

    Записать токен только с одной стороны: Gateway уже ротировал gateway.auth.token, а Control UI на ноутбуке кеширует старое значение; сверяйтесь с таблицей токенов в gateway closed(1000).

  7. 07

    Без минимального сценария приёмки удалённого режима: тест только чата без цепочки инструментов скрывает дрейф RPC scope до апгрейда модели; закрепите read-only команду как канарейку.

Общий корень — воспринимать OpenClaw как монолитный веб-сервис, а не как двухконечную систему с локальным супервизором и удалённой маршрутизацией сессий. Платформенная команда должна вести аудируемую запись профиля, state dir, удалённого URL и окна ротации на каждую машину разработчика, как для контекстов kubeconfig.

Связка с кроссплатформенной установкой: если openclaw doctor не проходил при первой установке, не ускоряйте переход в remote — иначе в каждом тикете смешаются «сломанная установка» и «не та инстанция».

Если в 2026 году закрепляется схема «Gateway в облаке, IDE локально», явно опишите деградацию офлайн: можно ли CLI в read-only, запрещены ли неявные переключения mode, чтобы не прицепиться к продакшену по ошибке.

С выделенным удалённым Mac частый топологический шаблон: Gateway на Linux VPS, инструменты на арендованном macOS-узле — удалённый URL по-прежнему указывает на VPS. Не подставляйте SSH-адрес Mac как URL Gateway, если на этом Mac не поднята вторая Gateway.

Наконец, корпоративные прокси, рвущие долгие WebSocket по простою, усиливают «плавающие» обрывы: heartbeat, backoff переподключения и очистку кеша клиента впишите в runbook, а не списывайте на «модель тупеет».

02

Четыре квадранта: локальная Gateway, удалённый клиент, публикация Tailscale и SSH-туннель решают разное

На ревью режьте по оси «где процесс» и «куда по умолчанию смотрит клиент» — так быстрее согласуются безопасность и зона ответственности ops.

РежимГде процесс GatewayТипичные клиентыГлавные риски
local (по умолчанию)Эта машинаЛокальные CLI / UIЛокальные порты, токены, личные сессии в одной куче
remoteУдалённый хостЛокальные CLI / UI к wss://…Дрейф URL, «двойной мозг» конфигурации, обрывы прокси
Tailscale / туннельПо-прежнему loopback или bind на целиБраузер или CLI после пути tailnet/туннеляACL, MagicDNS, сочетание токена и bind
SSH local forwardЦелевой хостПроброс удалённого порта на 127.0.0.1 ноутбукаВремя жизни сессии, права jump-host, ошибка склейки с remote URL

Удалённый режим чинит указатель control plane: тот же CLI на ноутбуке стабильно говорит с супервизором и реестром инструментов на другой машине. Сам по себе он не заменяет TLS и модель токенов.

Когда нужны и постоянно включённая Gateway в ЦОД/VPS, и «лёгкий» CLI у инженеров, remote — здравый дефолт. Если ещё нужен zero-trust доступ к UI, накладывайте Tailscale Serve на удалённый хост, а не смешивайте оба требования в один флаг.

Связка со статьёй про RPC / 1000: в удалённом режиме сначала подтвердите, к какой инстанции Gateway реально подключена текущая CLI-сессия, прежде чем спорить про scope и белые списки инструментов.

03

Шесть шагов перевести ноутбучный CLI на удалённую Gateway с точками отката

Порядок ниже: сначала здоровье удалённого хоста, затем режим клиента, затем канареечная команда — как в upstream troubleshooting.

  1. 01

    На удалённой машине под пользователем сервиса: openclaw gateway status, убедитесь в Runtime: running и зелёных RPC-пробах.

  2. 02

    Зафиксируйте удалённый WebSocket URL и точку TLS-терминации: при reverse proxy выпишите префиксы путей и health URL, чтобы никто не добавил лишний сегмент вручную.

  3. 03

    На ноутбуке снимите снимок текущего профиля: экспорт openclaw.json или эквивалентного state-пути для отката к local одним шагом.

  4. 04

    Выставите gateway.mode=remote и gateway.remote.url: через официальный openclaw config set или контролируемый шаблон; разбросанные ручные правки запрещены.

  5. 05

    Запустите openclaw status / openclaw health: сверьте цели проб и задержку; при расхождении двойной конфигурации переходите дальше.

  6. 06

    В том же контексте, что сервис, openclaw gateway install --force затем openclaw gateway restart: только если реально обслуживаете локальный сервис; чисто удалённые клиенты могут пропустить install и чистить дрейф через doctor.

bash · удалённый клиент (пример)
openclaw config set gateway.mode remote
openclaw config set gateway.remote.url "wss://gateway.example.internal/v1/ws"
openclaw config get gateway.mode
openclaw config get gateway.remote.url
openclaw status
openclaw doctor
info

Подсказка: если на удалённом хосте включён Tailscale Serve, перечитайте разделы ACL и токенов в статье про частную публикацию Tailscale, чтобы wss совпадал с внутренним DNS.

Откат впишите в заявку на изменение: снимок старой local конфигурации и окно времени; в дни крупных релизов заморозьте удалённый URL до зелёной канарейки на удалённой стороне, затем массово выкатывайте клиентские конфиги.

При нескольких профилях (staging/prod) печатайте активный OPENCLAW_PROFILE в старте shell, чтобы не думать, что вы на staging, будучи прикреплёнными к prod.

04

Карта симптомов: unauthorized, сбой пробы, старый хост, дрейф URL после апгрейда

Сопоставляйте симптомы с клиентом, шлюзом и прокси — меньше бессмысленных перезапусков.

401 / unauthorized: сначала выровняйте токены Control UI и CLI; в удалённом режиме на ноутбуке часто кешируется старый device token — пройдите официальный поток ротации или повторной авторизации.

Runtime running, но RPC probe failed: сверьтесь с gateway closed(1000): «не та инстанция» против «та инстанция, но мало scope»; снимите openclaw logs --follow на удалённом хосте за тот же интервал.

warning

Внимание: не долбите gateway restart на ноутбуке, пока не ясен удалённый listener — вращается только локальный холостой процесс и портится трейс.

Вчера работало после апгрейда: проверьте release notes на ужесточение auth по умолчанию или смену WebSocket path; фиксируйте версии и digest удалённой и клиентской стороны в тикете, не апгрейдьте одну сторону.

По сравнению с «тишиной» каналов, проблемы удалённого режима сидят на уровне соединения и сессии; при подозрении на поток сообщений читайте материал про пробы каналов, а не гадайте по remote URL.

Для 24/7-команд выведите долю сбоев проб и интервал переподключения в существующий мониторинг: даже при здоровом OpenClaw джиттер корпоративной сети должен быть виден.

05

Опорные формулировки для runbook

Ниже — для внутреннего выравнивания; пороги подгоните под масштаб и регионы.

  • Согласование версий с двух концов: в течение 24 часов после major-апгрейда завершите приёмку: удалённый хост и все часто используемые клиентские профили на одном билде, без полуапгрейда.
  • Удалённые пробы: сбой рукопожатия с ноутбука до wss должен локализоваться за 60 секунд слоями DNS, TCP, TLS, WSS.
  • Дрейф конфигурации: при расхождении Config (cli) и Config (service) дефолтный путь — тот же пользователь install --force → restart → doctor с логированием state dir.

Gateway на засыпающем ноутбуке конкурирует с конференц-приложениями за порты; чисто удалённый CLI без стабильно достижимого control plane падает всем разом на дрожащем VPN. Держать Gateway на выделенном всегда включённом облачном Mac или VPS с ясным SSH-обслуживанием, а ноутбуки стандартизировать как удалённых клиентов — самый частый компромисс 2026 года. По сравнению с запихиванием супервизора в нестабильные контейнеры или «чёрный ящик» виртуализации, аренда Mac Mini в облаке NodeMini даёт более прозрачные SSH-базовые линии, предсказуемые тарифы и воспроизводимые образы узлов — удобнее вести OpenClaw как прод-инфраструктуру. Спеки и цены — с страницы тарифов аренды Mac Mini, онбординг — в справочном центре. Остальные материалы OpenClaw — через фильтр категории OpenClaw в блоге.

При раскатке привяжите runbook к внутренним уровням среды: dev, staging и prod получают разные удалённые URL и ритм ротации токенов; URL продакшена не копируйте вручную в личный профиль.

FAQ

Частые вопросы

Удалённый режим подключает CLI к Gateway на другой машине. Tailscale в основном отвечает за безопасный вынос на tailnet Gateway, которая уже слушает локально. Сочетать можно. Другие темы OpenClaw — фильтр блога OpenClaw.

Под тем же пользователем и state dir, что у сервиса, выполните openclaw gateway install --force и restart, затем openclaw doctor. По узлам и биллингу см. справочный центр.

Переопределения среды, остатки в профилях shell и остаётся ли gateway.mode в local. Если нужна постоянная Gateway в облаке, сравните тарифы на странице цен аренды Mac Mini.