Руководство по развёртыванию 2026-04-30 10 мин

2026: OpenClaw Node for VS Code на удалённом физическом Mac‑шлюзе — воспроизводимый runbook: установка расширения, подключение к порту 18789, семантика loopback и SSH‑проброс, трения прав macOS (TCC) — пошаговый разбор и FAQ

Команды, арендующие безголовый физический Mac под OpenClaw, часто добиваются успеха по SSH и curl на самой машине, а затем проваливаются, когда расширение VS Code на ноутбуке по-прежнему смотрит на 127.0.0.1. В этом runbook — матрица решений по транспорту, чек‑лист из семи шагов, готовые команды диагностики, ориентиры по параметрам и FAQ для продакшн‑шлюзов в духе узлов ZoneMac.

2026 OpenClaw VS Code Node на удалённом физическом Mac‑шлюзе, порт 18789

Введение: на три вопроса отвечаем сразу

Кому — платформенным инженерам, поднимающим OpenClaw на выделенном или пуловом удалённом Mac. Что получите — один воспроизводимый путь от расширения Marketplace до устойчивого HTTP‑контура на порту 18789 (или вашем переопределении) без путаницы «loopback на сервере = успех для всех». Структура — боли, матрица, семь шагов, цифры для ссылок, triage, FAQ и зачем здесь Apple Silicon Mac mini.

Про выбор Docker против bare metal, постоянные тома и healthchecks в Compose на удалённом Mac — см. OpenClaw на удалённом Mac: Docker или bare metal? Healthchecks и FAQ. Если узкое место — задержка и «рывки» при SSH‑туннеле к шлюзу, начните с чек-листа в руководстве по оптимизации задержки при работе с удалённым Mac (2026).

1. Три типичные боли

  1. Loopback не «переносится» между машинами. Успешный curl http://127.0.0.1:18789/health на сервере доказывает только процесс шлюза и политику файрвола на этом хосте. Окно VS Code на другой машине нуждается в явном туннеле, split‑horizon DNS или reverse proxy — иначе расширение спокойно стучится в свой собственный loopback и получает таймаут.
  2. Отказы прав маскируются под «плохой порт». TCC может блокировать чтение Keychain, автоматизацию Terminal или запись в защищённые каталоги, пока lsof всё ещё показывает LISTEN. Смена nginx тогда не поможет, если в stderr уже EPERM.
  3. Тихий дрейф между JSON, plist и UI. Кто-то поменял bind в openclaw.json, но не LaunchAgent ProgramArguments, или в workspace VS Code осталось http://127.0.0.1:18789, а в проде уже TLS на localhost:8443 — регрессии выглядят «рваными», потому что у коллег разные облака настроек.

2. Матрица решений: как расширению VS Code достучаться до шлюза?

В каждой среде закрепите один основной транспорт; смесь ad‑hoc SSH‑пробросов и общего upstream nginx без документации — прямой путь к выходным дежурствам.

Паттерн Лучше всего для На что смотреть
Прямой loopback на Mac Автоматизации, cron, локальные скрипты doctor Невидим с удалённых ноутбуков; бинд на 127.0.0.1, чтобы не открыть WAN по ошибке
SSH -L (локальный проброс) Разработчиков, подключающих VS Code из дома или отельного Wi‑Fi Keepalive и jump‑хосты должны совпадать с корпоративной политикой; задокументируйте локальный порт (например 18789 → тот же порт на ноутбуке)
nginx/Caddy на loopback + TLS Команд с mTLS, SSO‑заголовками или маршрутизацией по путям к нескольким демонам Обновление сертификатов и опечатки proxy_pass; базовый URL расширения — публичное имя, а не «голый» 18789

3. Семишаговый runbook

  1. Зафиксируйте слушатель. На удалённом Mac: lsof -nP -iTCP:18789 -sTCP:LISTEN и curl -sS -o /dev/null -w "%{http_code}" http://127.0.0.1:18789/ (путь подстройте под ваш префикс).
  2. Установите OpenClaw Node в VS Code. Закрепите версию расширения в рекомендациях extensions.json, чтобы схема RPC совпадала у всех.
  3. Опубликуйте контракт базового URL. Зафиксируйте в документации: поле шлюза — http://127.0.0.1:18789 только после ssh -L 18789:127.0.0.1:18789 user@gateway, либо https://openclaw.internal за reverse proxy.
  4. Укрепите launchd. Используйте RunAtLoad, ThrottleInterval и явный WorkingDirectory; переменные окружения — из фрагмента plist, читаемого root, а не из world‑writable dotfiles.
  5. Пройдите TCC осознанно. Если шлюз вызывает AppleScript или читает сертификаты разработчика, заранее одобрите бинарник в «Конфиденциальность и безопасность» и приложите скриншот к внутреннему security‑review.
  6. Приёмка с клиента. С ноутбука разработчика после поднятия туннеля: nc -vz 127.0.0.1 18789; при TLS спереди — openssl s_client -connect openclaw.internal:443 -servername openclaw.internal.
  7. Заморозьте базовую линию. Закоммитьте фрагменты JSON и plist в платформенный репозиторий; тегируйте релиз, когда semver шлюза и расширения совместно проверены.

4. Параметры для ссылок в тикетах

  • 18789 — распространённая конвенция локального HTTP‑контура OpenClaw в шаблонах 2026 года; считайте настраиваемым, не «магическим».
  • 127.0.0.1 против 0.0.0.0 — loopback исключает случайную экспозицию в WAN; привязка ко всем интерфейсам требует файрвола/VPC и редко нужна именно для интеграции с VS Code.
  • ~30–60 с — типичный бюджет холодного старта LaunchAgent после перезагрузки до эскалации дежурному; сочетайте с ThrottleInterval, чтобы избежать шторма рестартов.

5. Шпаргалка triage

Симптом Вероятная причина Первая команда или фикс
ECONNREFUSED только с ноутбука Нет SSH‑проброса / неверный локальный порт Повторите SSH с -v; проверьте LocalForward в ~/.ssh/config
HTTP 502 от nginx Upstream лежит или неверный сокет curl -v http://127.0.0.1:18789 прямо на Mac; хвост error_log
Процесс выходит с кодом 1, порт свободен TCC / отсутствует секрет Console.app по подсистеме; FDA для пути к бинарнику; перезагрузка plist

6. FAQ

Какую роль играет порт 18789?

Во многих сборках это дефолтная локальная HTTP‑поверхность для управления и трафика расширения — всегда сверяйте с вашим openclaw.json и LaunchAgent.

Удалённый curl работает, VS Code — нет. Почему?

Разные домены loopback. Нужен туннель или смена базового URL расширения на имя хоста, которое указывает на путь, который вы уже проверили.

Можно ли выставить 18789 в публичный интернет?

Крайне нежелательно без TLS, аутентификации/авторизации и лимитов. Предпочтительны VPN, Tailscale или SSH‑проброс для рабочих ноутбуков; «голый» порт на 127.0.0.1 оставьте за nginx, если нужен браузерный доступ.

Несколько экземпляров на одном Mac?

Выделите непересекающиеся порты и метки plist; перед каждым деплоем делайте grep по LISTEN.

7. Запускайте этот стек шлюза на Apple Silicon Mac mini

OpenClaw и автоматизация из VS Code выигрывают от машины, которая тихо работает круглосуточно: Mac mini на Apple Silicon в простое потребляет порядка 4 Вт, при этом даёт нативный Unix, launchd и интеграцию с Keychain без налога гипервизора. Gatekeeper, SIP и FileVault задают более предсказуемую границу доверия для долгоживущих API‑ключей, чем типичные Windows/Linux jump box.

Пропускная способность объединённой памяти держит отзывчивыми одновременные Node‑шлюзы, nginx и лёгких CI‑агентов — это важно, когда всплесками идут doctor‑пробы, RPC расширения и отгрузка логов. Если нужен тот же набор plist‑семантик без закупки своего железа, выделенный узел Mac mini в облаке — самый быстрый путь к воспроизводимому «железу».

Стандартизируете OpenClaw для распределённой команды — Mac mini M4 остаётся одним из самых выгодных якорей для круглосуточной macOS‑автоматизации: перейдите по CTA ниже, чтобы подобрать ёмкость под регион и комплаенс.

Ограниченное предложение

Нужен физический Mac‑шлюз сегодня?

Поднимите узел Apple Silicon на ZoneMac с SSH, образами, дружелюбными к launchd, и той же семантикой портов, что вы проверяли на 18789.

Оплата по факту Быстрая активация Выделенное железо
Аренда macOS в облаке Ограниченное время — низкая цена
Получить сейчас