1. Болезненная декомпозиция: вам врёт локон из неправильного пространства имён
(1) Путаница с шлейфом WS: ws://127.0.0.1:18789правильно нахозяинкогда порт опубликован, но внутридругой контейнерон зацикливается сам на себе. Если шлюз прослушивает имя службыopenclaw-gateway, жестко запрограммированный 127.0.0.1 никогда не достигает его.(2) Сопряжение против токена: pairing requiredэтосеанс авторизациипроблема;token mismatchэтотайное несоответствие; их смешивание приводит к случайным изменениям.(3) Среда переопределяет файлы: синглOPENCLAW_GATEWAY_TOKENстрока в Compose может переопределить установленныйgateway.auth.token, выдавая «Я изменил JSON, но ничего не изменилось».(4) Два стека удаленных Mac: launchd плюс compose, использующий одно и то же объявление порта или один и тот же каталог состояния, приводит к периодическим сбоям в молчании.
2. Матрица симптомов: сортировка транспорта перед аутентификацией перед каналами
| Сигнал | Гипотеза | Первое действие |
|---|---|---|
1006/ перезагрузить |
Неправильный хост или конфликт портов | Изто же сетевое пространство имен, что и CLI, бегатьnc -vz host port |
1008 pairing required |
Сопряжение не завершено | Откройте пользовательский интерфейс управления, введите код сопряжения, запустите команду сопряжения CLI. |
token mismatch |
Двойные источники истины | Распечатать env внутри контейнера CLI; согласовать с томом JSON |
| Нестабильный успех | Два экземпляра мчатся по штату | docker psплюс таблица объемов; сократиться до одного шлюза |
3. Руководство из пяти шагов: от проверки связи до успешной проверки каналов
- Заморозить пространства имен: документируйте, работает ли CLI на хосте, вспомогательной машине или бегуне CI; нарисуйте одну стрелку от клиента к слушателю.
- Явная база шлюзов: Набор
OPENCLAW_GATEWAY_URL(или ваш документированный эквивалент) дляopenclaw-gateway:18789или опубликованный порт хоста — никогда не принимайте 127.0.0.1 во всех пространствах имен. - Сопряжение ворот: завершите сопряжение перед тестированием бизнес-каналов; сохраните два шаблона билетов для «непарного» и «неправильного токена».
- Единый источник истины: Выберите средуилифайл как канонический; сделайте другое совпадение или удалите его.
- Принять с помощью зонда каналов: Запустите одну успешную проверку из той же среды и прикрепите журналы и фрагмент фрагмента к запросу на изменение.
4. Когда network_mode: «service:openclaw-gateway» оправдан.
Используйте его, когда CLI должен совместно использовать пространство имен сети шлюза, чтобы избежать хрупкого DNS под мостом по умолчанию. Цена запутывает семантику localhost — изобразите это на диаграмме. Альтернатива: оставить CLI на хосте и указать WS наопубликованный хост-порт, выравнивая завершение TLS на обратном прокси-сервере.
5. Цитируемые пороговые значения (замените своими измерениями)
Цифры для обсуждения:
- Если успех TCP-подключения из пространства имен CLI падает ниже97% over 100 probes, stop feature work and fix DNS, имена служб или опубликованные портыпервый.
- Если вы видите больше, чемтри
token mismatchсобытия внутри одного окна сопряжения, предположим,двойные источникипока не доказано обратное. - Если ожидание блокировки в общем каталоге состояния превышает2,5 сна p95 на удаленном Mac разделите тома или переместите CLI в выделенную коляску.
6. Чтение логов openclaw в три слоя
Сначала фильтруйте транспортные линии, затем аутентификацию и сопряжение, а затем линии для конкретного канала. Прикрепите к билету три скриншота вместо повествования. При чтении вместе с официальной статьей install.sh рассматривайте порядок установки и выравнивание сети как два отдельных входа принятия.
| Слой | Вопрос | Пример передачи |
|---|---|---|
| L1 транспорт | Удалось ли рукопожатие WS? | Нет необъяснимого 1006/1008 |
| L2 аутентификация | Токен и сопряжение согласованы? | Отсутствие несанкционированного цикла после сопряжения |
| каналы L3 | Канал онлайн? | channels probeвозвращает интерпретируемое состояние |
7. Удаленный Mac: launchd против Docker для портов и томов
Укажите, кому принадлежит порт 18789, является ли состояние привязкой или именованным томом, а также какое устройство останавливается первым во время обновлений. Используйте руководство по SSH и VNC, чтобы отделить интерактивные изменения VNC от автоматических прокруток композиции.
8. Часто задаваемые вопросы
Extra_hosts все исправит?Иногда, но если основной причиной являются двойные источники токенов, extra_hosts только перетасовывает режимы сбоя.
Привязать шлюз к 0.0.0.0?Сначала прочитайте статью о поверхности атаки; Публичное разглашение не является ответом по умолчанию.
Конфликт с потоком install.sh?Нет — install.sh устанавливает базовый порядок; В этой статье основное внимание уделяется работе в сети Docker и согласованию аутентификации.
9. Практический пример: журналы говорят «слушайте», CLI по-прежнему 1008
Частым сбоем 2026 года является прослушивание шлюза в контейнере A, в то время как разработчики запускают CLI в контейнере B сws://127.0.0.1. Это очевидно на бумаге, но дорого в системах с несколькими репозиториями. Поместите предложение «пространство имен, которое запускает openclaw» в начало README и добавьте дым CI, который выполняет проверку из контейнера бегуна.
Второй класс забытOPENCLAW_GATEWAY_TOKENстроки в файлах переопределения. Выберите дисциплину «окружающая среда или файл» и добавьте элемент контрольного списка PR для различий в среде токена.
Третий класс поражает удаленные компьютеры Mac, когда Time Machine или программное обеспечение для синхронизации зеркалируют каталоги состояний, создавая вторые призрачные шлюзы. Отметьте каталоги состояний как несинхронизированные или объедините их на выделенном удаленном узле.
Объедините статью о миграции, чтобы отделить упражнения «миграция компьютера» от упражнений «составление перестроения»; их смешивание запутывает истории отката.
Docker — это повторяемая доставка при более строгих ограничениях, а не автоматическая простота. Прикрепите композицию, распечатки конвертов, выходные данные NC и трехслойные фрагменты журнала, прежде чем заявлять о готовности к производству.
10. n8n и вход веб-перехватчика
Когда n8n выполняет обратный вызов в ваш стек, владелец входа HTTP должен совпадать с владельцем токена WS. Разделить расследования HTTP 502 из билетов WS 1008, используя отдельные заголовки.
11. Дисциплина обновления: сначала один шлюз
Во время критических выпусков сократитесь до одного шлюза и одного интерфейса командной строки, прежде чем повторно включать HA. Наполовину обновленные тома создают полусогласованные схемы; прикрепите вывод врача к записи изменений.
12. Завершение: Docker доказывает повторяемость, удаленный Mac поддерживает SLO
(1) Ограничения: Без документирования пространств имен CLI устранение неполадок Docker становится экспоненциальным; Двойные источники токенов делают изменения конфигурации случайными.
(2) Почему помогают удаленные пулы Mac: Выделенные хосты закрепляют версии компоновки, тома и проверки работоспособности отдельно от ноутбуков разработчиков.
(3) Подходит MACGPU: Если вам нужна простая пробная версия согласованных удаленных шлюзов Mac вместо серверов ноутбуков, MACGPU предлагает арендуемые узлы и общественную помощь точки входа; приведенный ниже призыв к действию ссылается на планы без входа в систему.
(4) Финальные ворота: не заявляйте о готовности производства без успешного channels probe плюс доказательства выравнивания Compose/env/token.
13. Ссылки на установку матрицы и install.sh
Если install.sh еще не зеленый, сначала прочитайте эту статью. Если зеленый, но Docker не работает, перезапустите матрицу L1 здесь. Матрица из трех стеков помогает решить, принадлежит ли CLI хосту или вспомогательному устройству.
14. Наблюдение: аннотируйте радиус взрыва для каждого проекта создания
Когда несколько проектов создания используют один хост, отметьте, какой проект владеет портом 18789, а какой — входом веб-перехватчика. Дежурный должен открыть одну страницу с этой картой вместо поиска истории Slack.
15. Примечание по безопасности: токен в файлах env и секретных файлах
Переменные среды появляются в списках процессов и аварийных дампах. Если ваша модель угроз это запрещает, отдавайте предпочтение секретным файлам с правильными разрешениями тома и удаляйте дубликаты env. Соответствуйте руководству по атакам шлюза для адресов привязки и обратных прокси.
16. Четность CI: воспроизведите ошибочное пространство имен в GitHub Actions
Многие команды воспроизводят проблемы OpenClaw только на ноутбуках. Добавьте задание, которое создает тот же проект компоновки и запускает docker compose run --rm openclaw-cli openclaw channels probe, чтобы регрессии в URL-адресах WS обнаруживались перед слиянием. Разумно кэшируйте изображения, но при этом обновляйте теги при выходе обновлений безопасности. Если ваши исполнители CI не могут разрешить имена служб Docker, задокументируйте это ограничение явно, а не молча возвращайтесь к 127.0.0.1, что скрывает режим производственного сбоя.
17. Обратные прокси и заголовки обновления WebSocket
Когда TLS завершается на nginx или Caddy, проверьте заголовки обновления, тайм-ауты простоя и настройки буферизации. Прокси-сервер, который буферизует кадры WebSocket, может выглядеть как случайное закрытие 1006 под нагрузкой. Собирайте журналы доступа к прокси-серверу вместе с журналами OpenClaw и сопоставляйте временные метки. Если вы отключите TLS на хосте, в то время как шлюз внутри Docker остается простым HTTP, сохраните эту диаграмму в репозитории, чтобы новые сотрудники не вводили повторно двойное шифрование или неправильную схему в OPENCLAW_GATEWAY_URL.
18. Шаблон передачи Runbook для дежурства
Вставьте в шаблон инцидента следующее: укажите имя проекта, теги изображения, URL-адрес WS, как видно из сбойного пространства имен, выходные данные env grep для переменных OPENCLAW_, выходные данные пути к тому для шлюза.auth.token, результат nc и последние двадцать строк журналов шлюза, отфильтрованных по уровню. Когда юридические вопросы или закупки блокируют облачные графические процессоры, задокументированный удаленный пул Mac остается прагматичным способом добавить стабильную мощность Apple Silicon для постоянно работающих агентов без капитальных закупок.
19. Несовпадение версий между изображениями CLI и шлюза
Разделение CLI и шлюза по разным тегам изображений допустимо, но только в том случае, если ваши примечания к выпуску явно поддерживают эту матрицу. Если CLI добавит поле подтверждения, которое не понимает сборка шлюза, вы увидите непрозрачные отключения, напоминающие сетевые ошибки. Прикрепите оба изображения к одному и тому же выпуску во время инцидентов, а затем разделите их пополам. Записывайте дайджесты в документ об инциденте, а не только плавающие теги. Для удаленных парков Mac автоматизируйте еженедельную проверку дайджеста, чтобы отклонение не накапливалось незаметно, пока инженеры сосредоточены на работе над функциями.
20. Долг документации — это операционный долг
Каждый час, потраченный на повторное открытие семантики 127.0.0.1, — это час, не потраченный на улучшение подсказок или инструментов. Инвестируйте один раз в одностраничную топологию и свяжите ее с файлами README, Runbook и онбордингом. Когда руководители спрашивают, готов ли OpenClaw к производству, дайте им журнал проверки и составной дайджест, а не устное заверение. Удаленная аренда Mac не устраняет необходимость в хороших документах, но дает вам стабильное место для размещения канонического стека, соответствующего тому, что на самом деле работает.
21. Подсказки для проверки после инцидента
После закрытия инцидента на шлюзе ответьте в письменном виде на пять вопросов: какое пространство имен инициировало CLI, какой файл или переменная env в конечном итоге содержали токен, была ли предпринята попытка сопряжения до редактирования токена, находился ли какой-либо прокси-сервер на пути и какой дайджест составления был активен во время сбоя. Отсутствие хотя бы одного ответа обычно означает, что в следующем квартале инцидент повторится с другой строкой симптомов.
Наконец, относитесь к незначительным обновлениям macOS на удаленных хостах как к серьезным ударам для вашего стека: повторно запускайте пробные и NC-проверки после каждого окна обновления, прежде чем снова объявить парк работоспособным.