gateway.remote закрепляет CLI на удалённом хосте и как OPENCLAW_GATEWAY_PORT с раздельными деревьями состояния не дают параллельным экземплярам затоптать друг друга. В конце — матрица размещения Linux VPS против облачного bare metal macOS для Сингапура, Токио, Сеула, Гонконга, востока и запада США.
Почему горячая перезагрузка Gateway выглядит сломанной, хотя работает
Gateway — это долгоживущий процесс Node.js, который мультиплексирует WebSocket, RPC интерфейса командной строки, сеансы и адаптеры каналов на одном слушателе, по умолчанию порт 18789. Горячая перезагрузка сливает дельты конфигурации и пытается сохранить сеансы, но всё, что требует снять прослушивающий сокет, нельзя имитировать внутрипроцессным слиянием. Параметры TLS, переход от loopback к экспозиции в LAN, коллизии портов и жёсткие проверки аутентификации, блокирующие анонимные административные поверхности, относятся к контролируемому перезапуску. Гибридные режимы ведут внутренние списки полей, безопасных для онлайн-слияния, против помеченных как требующих рестарта; в ритме до версии 1.0 эта граница дрейфует от релиза к релизу, поэтому в runbook следует опираться на живые журналы, а не на статичные шпаргалки.
Пять повторяющихся сигнатур маскируются под дефекты reload, но чаще это ошибка классификации или сдвиг цели.
Перескок порта без рестарта: старый слушатель удерживает дескрипторы до выхода процесса, что даёт EADDRINUSE или расколотые CLI.
Экспозиция не loopback без токенов: предохранители отклоняют горячие слияния, которые открыли бы анонимные админ-интерфейсы.
Устаревшие удалённые конечные точки: ноутбук целится в localhost, пока авторитетный Gateway мигрировал выше по контуру.
Общий каталог состояния: второй экземпляр читает чужие кэши каналов и порождает перекрёстные артефакты.
Дрейф схемы после обновления: значения по умолчанию перестраивают порядок слияния; вчера безопасный для hot knob сегодня требует рестарта.
Порядок диагностики: классифицировать правки как касающиеся сокета против только маршрутизации, проверить удалённую проводку и переменные окружения, затем вернуться к здоровью демона. Полный путь от установки до doctor описан отдельной статьёй блога; здесь углубление именно в reload и механику нескольких экземпляров.
Архивируйте снимки конфигурации с идентификаторами тикетов, когда staging и production смешиваются; дисциплина git diff обычно быстрее ночных героических слияний.
Эксплуатационная телеметрия подтверждает картину: если медианная задержка CLI скачет только на слияниях, затрагивающих блок gateway, чаще пропущена сигнатура рестарта, а не системная нехватка CPU. Сопоставьте время выпусков с инцидентами отключения каналов и увидите серые отказы, когда сообщения доходят вверх по потоку, но не доходят до маршрутизации моделей из-за пропущенного рестарта. Обучение младших дежурных grep по журналам окупается быстрее, чем линейное наращивание CPU на всём парке.
Задокументируйте, какие учётные записи автоматизации могут вызывать инструменты, чувствительные к reload. CI, переписывающий JSON наивным шаблонизатором, нередко добавляет лишние запятые или дублирует ключи; парсер молча отклоняет правки до рестарта, что ошибочно приписывают слабому hot reload. Схемная валидация в CI синхронизирует правки людей и роботов.
Учения без видео достаточно: текстовая хронология с явными ролями. Измеряйте время до подтверждения инцидента и время до восстановления подтверждений каналов. Повторяйте квартально с разными ведущими, чтобы знание не концентрировалось в одной голове.
Если вы комбинируете несколько зон доступности, фиксируйте для каждой исходящие NAT-адреса для allowlist у апстрим-провайдеров и проверяйте, не обрубают ли промежуточные фильтры keepalive WebSocket.
Какие параметры обычно применяются на горячую и какие заслуживают окна обслуживания
Вместо заучивания имён нестабильных полей привяжите решения к классу транспорта: слушатель, TLS и связка аутентификации касаются границы с ядром и относятся к плановым рестартам; политики маршрутизации, многие параметры каналов, эксперименты маршрутизации моделей и правки форматирования чаще уходят в онлайн-слияние. Истиной остаются журналы Gateway: применено ли слияние или обязателен рестарт. Публичная экспозиция по-прежнему требует согласованных на прокси обновлений WebSocket и дисциплины ротации токенов, как в статье по ужесточению VPS.
| Измерение | Обычно дружелюбно к hot | Обычно требует рестарта |
|---|---|---|
| Транспорт | Шаблоны сообщений каналов в безопасных подмножествах | Порт, режим bind, материалы TLS |
| Граница доверия | Расширение allowlist в поддерживаемых hot-путях | Переход loopback в LAN без токенов аутентификации |
| Маршрутизация моделей | Псевдонимы провайдеров, параметры сэмплирования | Структурные сдвиги gateway.mode |
| Наблюдаемость | Подробный журнал при поддерживаемом hot-merge | Смена bind админ-UI, разделяющего слушатель |
| Топология | Пошаговые зонды каналов | Второй слушатель в коллизии на идентичных тройках |
Уважайте границу сокета: hot reload оптимизирует перемешивание маршрутов, а не гимнастику слушателей в ядре.
Правила файрвола, фрагменты NGINX или Caddy и группы безопасности облака остаются в публичном playbook Gateway этого сайта; дубли скриншотов устаревают при переименовании консолей.
Упражнения в игровой день с синтетическим трафиком и намеренным переключением полей, требующих рестарта, затачивают матрицу. Фиксируйте среднее время признания и среднее время восстановления подтверждений каналов.
Команды с оглядкой на бюджет сопоставляют матрицу с историей инцидентов: вертикальное масштабирование редко оправдано, если журналы показывают дрожание сокетов. Лучше вложиться в явно описанные пути прокси и отдельный staging.
Проверяйте, что внутренние health-check используют тот же протокол и заголовки, что внешние клиенты; иначе получите зелёные внутренние проверки при красном внешнем поведении.
Таблица не заменяет примечания к выпуску: обновление может перенести поля между колонками. Консенсус журналов остаётся обязательным, пока таблица структурирует обсуждение до окна изменений.
gateway.remote, токены и изолированные домашние каталоги для параллельных Gateway
Удалённый режим разделяет машину, с которой ежедневно запускают CLI, и машину, владеющую каналами и сеансами. Ноутбук держит тонкую конфигурацию на облачную конечную точку WebSocket и секреты через переменные окружения, а не в истории оболочки. Параллельные Gateway для staging требуют тройной изоляции: портов, деревьев OPENCLAW_HOME и меток журналов, чтобы поддержка не перепутала stderr при инциденте.
Хост A production:
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_HOME=/var/openclaw/prod-a
Хост B staging:
OPENCLAW_GATEWAY_PORT=18790
OPENCLAW_HOME=/var/openclaw/staging-b
Ноутбук CLI:
gateway.remote.url=wss://gateway.example.com/openclaw
gateway.remote.token=${OPENCLAW_REMOTE_TOKEN}
После каждого обновления выполняйте diff по ключам remote: в pre-1.0 часто пересортировываются значения по умолчанию. На облачном Mac отдельно проверяйте пробуждение LaunchAgent независимо от семантики reload; разрыв из-за сна маскируется под неудачное слияние.
Обратные прокси наслаивают URL: терминация TLS на периметре означает wss наружу и иногда ws внутри на localhost. Явно задокументируйте три URL: публичный клиентский, внутренний upstream и цель health-curl, чтобы избежать расщеплённого сознания, когда панели зелёные, а CLI теряют рукопожатие. Таймауты простоя должны быть длиннее самых длинных всплесков по cron.
Схема blue-green с двумя Gateway требует независимой ротации токенов, чтобы скомпрометированный секрет staging не открыл производственные каналы. Автоматизируйте напоминания о ротации: параллельные среды усиливают забывчивость.
Политики хранения журналов и метрик фиксируйте письменно, особенно если в потоке могут встречаться персональные или чувствительные данные: это облегчает расследования и снижает риск избыточного удерживания артефактов.
Заметка: Относитесь к токенам как к секретам развёртывания, ротируйте при смене класса экспозиции, храните в хранилище, доступном CI, не в открытых фрагментах README.
Шестишаговая дисциплина изменений с уважением к трафику каналов
Снимок конфигурации: экспорт JSON и окружения с метаданными владельца перед правками.
Классификация правок: пометка уровня сокета против только маршрутизации и ранний выбор окна рестарта.
Применение и чтение журналов: немедленно подтвердить успешный reload или сигнатуру обязательного рестарта.
Зондирование каналов вне пика: одиночные тестовые сообщения на критичных поверхностях.
Проверка удалённого CLI: с ноутбуков только чтение статуса на целевой порт.
Подготовка отката: закрепление предыдущих версий пакетов и сохранение списков diff при аномалиях.
Снабдите шаги ролями: кто зондирует, кто связывается с заказчиками. Путаница на пятнадцатой минуте инцидента съедает больше времени, чем опечатка в порту. После крупного обновления один раз прогоните runbook сухим прогоном.
Лёгкие чек-листы побеждают импровизированный героизм у уставших дежурных. Привяжите чек-листы к календарю изменений и утверждениям, чтобы окна заморозки были видны всем.
Шестой шаг сдерживает панический откат: без pin версии и diff вы рискуете в разгар аварии переиздать неверный артефакт и удлинить путь восстановления.
Три эвристики плюс облако macOS против Linux VPS
Уникальность порта: один активный слушатель на порт; параллельные рабочие области требуют параллельных портов и домашних каталогов.
Минимализм удалённого режима: пока удалённый экземпляр авторитетен, ноутбук не должен случайно поднимать второй локальный Gateway.
Матрица хостов: лёгкие плоскости управления хорошо ложатся на Linux VPS; стеки, требующие стабильных API Apple или настольного инструментария, естественнее сочетать с bare metal macOS рядом с пользователями.
Предупреждение: Не расширяйте bind на any до завершения обзора аутентификации и прокси.
Эксплуатировать Gateway как одноразовый контейнер без понимания контракта reload сжигает время инцидентов в пики нагрузки. Дисциплинированные слияния конфигурации и стабильные хосты превращают OpenClaw из аксессуара ноутбука в инфраструктуру. Аренда облачных Mac mini через MESHLAUNCH чаще оказывается сильным выбором, когда нужна эксклюзивность Apple Silicon, устойчивое питание и эластичные договоры в Сингапуре, Токио, Сеуле, Гонконге, на востоке и западе США, чтобы рядом с плоскостью управления Gateway размещать нативные нагрузки macOS с явными окнами изменений вместо надежды, что открытый Mac переживёт выходные.
Финансовые стейкхолдеры не любят лишнее вертикальное масштабирование из-за ошибок про reload. Докажите журналами, коррелируют ли инциденты с дрожанием сокетов; если нет, направьте бюджет на ясность сети или дублирующий staging вместо простаивающих избыточных CPU.
Региональные пользователи в Азии и США часто выигрывают, когда плоскость управления и интерактивные сборки остаются в одной агломерации: спорадические циклы CLI становятся заметнее, если хосты управления и сборки географически расходятся.
Да, если менялись слушатель или связка аутентификации. Перед слепым рестартом пройдите лестницу проверок из полного руководства по устранению неполадок Gateway.
См. руководство по файрволу VPS и WebSocket. Сравните уровни на странице цен аренды при планировании полосы.
Откройте центр помощи и приложите к тикету удалённые URL, порты и имена переменных с токенами.