2026: OpenClaw — кроссплатформенная установка и постоянная работа: Windows WSL2 и Linux (systemd) — сопоставительный чек‑лист, разбор автозапуска шлюза и гибридный рабочий процесс с выделенным удалённым Mac по SSH — FAQ
Шлюзы и агенты в духе OpenClaw можно поднять в Windows через WSL2 или на «голом» Linux / ВМ с systemd, но сценарии отказов разные: у WSL — сон, дрейф часов и особенности init; у серверов Linux — жёсткость unit’ов, journald и обратные прокси. Здесь — сопоставительный чек‑лист, матрица «симптом → действие» для автозапуска шлюза и гибридная схема: Linux или WSL держит плоскость управления, а выделенный удалённый Mac закрывает задачи Apple по SSH. Для долгой iOS‑сборки на выделенном железе см. Настройка iOS CI/CD на удалённом Mac mini 2026: от Xcode до TestFlight; про тренд аренды узла без закупки — Почему аренда Mac mini становится глобальным трендом для бизнеса в 2026 году.
Кратко — главное
Итог: WSL2 — это Linux‑ВМ, которая «засыпает» вместе с Windows: удобно для разработки, рискованно для «всегда онлайн», если не компенсировать политику питания. Нативный Linux + systemd — базовый выбор для шлюзов без присмотра: декларативные unit’ы, политики перезапуска и структурированные логи.
- Гибрид: HTTP‑шлюз и лёгкая автоматизация на Linux или WSL; переход на выделенный удалённый Mac по SSH для Xcode, подписи, нотаризации и Apple‑только CLI.
- Порядок при автозапуске: сначала адрес привязки и коллизии портов —
127.0.0.1против0.0.0.0и согласованность с туннелями (Tailscale Serve,cloudflared). - Переменные окружения: в
systemdнужны явныеEnvironment=илиEnvironmentFile=; в WSL интерактивный shell часто даёт другойPATH, чем фоновый запуск.
1. WSL2 и нативный Linux: сопоставительный чек‑лист (2026)
| Тема | Windows WSL2 | Linux + systemd |
|---|---|---|
| Жизненный цикл | Привязан к питанию Windows; в .wslconfig дистрибутив может уходить в гибернацию. |
Работает до отключения питания; предсказуемый uptime на серверных образах. |
| Init / службы | Опциональный systemd в WSL (зависит от дистрибутива); часто — пользовательский автозапуск или планировщик Windows с вызовом wsl.exe. |
Полноценные unit’ы systemd, таймеры, socket activation. |
| Сеть | NAT через vSwitch; правила localhost отличаются от «чистого» Linux на ноутбуке. |
Обычные интерфейсы; простая привязка к LAN/VPN. |
| Часы и TLS | После выхода из сна время может кратковременно «плыть» — следите за рукопожатиями TLS. | NTP/chrony; на серверах меньше сюрпризов от «ноутбучного» сна. |
| Когда уместно | Ежедневная разработка, локальные эксперименты, связка с удалённым Mac. | VPS / homelab‑шлюз, воркеры рядом с CI, круглосуточные эндпоинты. |
2. Установка и рантайм: общий чек‑лист
2.1 Что проверить в первую очередь
- Node / рантайм: сверяйтесь с релиз‑нотами OpenClaw на поддерживаемый LTS; не смешивайте
nvmвнутриsystemdбез абсолютного пути к бинарнику. - Дескрипторы и ulimits: шлюзам с websockets и дочерними процессами может понадобиться
LimitNOFILE=в unit. - Секреты: предпочтительнее
EnvironmentFileс правами0600, а не экспорты в профилях shell, которыеsystemdне читает.
2.2 Linux (systemd) — минимальный паттерн «всегда включён»
Надёжная схема: Type=simple или notify (если поддерживается), Restart=on-failure, отдельный пользователь службы. Ужесточение: NoNewPrivileges=true, PrivateTmp=true, явный WorkingDirectory=. Логи — journalctl -u ваш-unit -f; при «тихих» выходах сначала поднимите уровень логирования, а не гонитесь за багами приложения.
2.3 WSL2 — удержать дистрибутив в строю
- Для режима «почти 24/7» ослабьте агрессивный сон Windows или рассмотрите небольшой Linux‑VPS вместо борьбы с политикой питания ноутбука.
- Если дистрибутив поддерживает
systemd, включайте его по документации Microsoft для WSL; иначе планируйтеwsl -u user -d Distro -- bash -lc 'ваша команда запуска'при входе в систему. - Уточните, кто слушает порт: вызовы с Windows на
localhostмогут не достучаться до сервиса, привязанного только внутри WSL, без проброса портов.
3. Автозапуск шлюза: симптом → гипотеза → действие
| Симптом | Вероятная причина | Что сделать |
|---|---|---|
EADDRINUSE при старте |
Зависший процесс, дубликат unit или туннель уже занял порт. | ss -lntp / lsof -i; остановите старый PID; согласуйте порт шлюза с upstream‑туннелем. |
В SSH‑shell работает, под systemd — нет |
Нет переменных окружения или другой PATH. |
Перенесите окружение в Environment= или EnvironmentFile; используйте абсолютные пути к node и CLI. |
| Мгновенный цикл перезапусков | Падение до готовности сети или DNS. | Добавьте After=network-online.target и Wants=network-online.target (где уместно); backoff через RestartSec=. |
| TLS / OAuth «плавают» после пробуждения (WSL) | Дрейф времени или «спящий» сетевой стек. | Синхронизируйте время; отложите старт до стабилизации сети WSL; для OAuth предпочитайте хост без сна. |
403 / ошибки auth только с URL туннеля |
Заголовки доверия к прокси не совпадают с локальным ACL. | Перечитайте документацию провайдера по trusted proxies; держите шлюз на loopback; TLS завершайте на краю туннеля. |
4. Выделенный удалённый Mac и гибрид по SSH
В «продукционно» похожих схемах разделение такое: на Linux или WSL — постоянно доступный шлюз, планировщики и внешние API; удалённый Mac — однотенантный «остров Apple» по SSH (ключи, AllowUsers, по желанию Tailscale). Агенты вызывают команды macOS через неинтерактивный SSH (ssh mac 'xcodebuild …') с заранее выданными артефактами подписи.
- Изоляция: отдельный SSH‑пользователь на принципала автоматизации; разные ключи для staging и prod.
- Таймауты: сопоставьте HTTP‑таймауты шлюза с длительностью
xcodebuild— или вынесите задачу в очередь с опросом статуса. - Наблюдаемость: стримите
log streamили логи сборки в файлы под~/Logsс ротацией; на headless‑Mac не рассчитывайте на GUI‑диалоги.
5. FAQ (коротко)
Стоит ли гонять OpenClaw в проде на WSL2? Только если Windows для вас допустимая зона доступности. Для настоящего 24/7 чаще разумнее Linux‑VPS или выделенный Mac mini с launchd.
Один шлюз и несколько Mac? Архитектурно возможно, но растёт операционная сложность — начните с одного выделенного удалённого Mac на команду или окружение.
Куда класть API‑ключи? Не в строку ExecStart=; используйте EnvironmentFile с жёсткими правами доступа.
Почему выделенный Mac mini всё ещё якорит такой гибрид
Linux и WSL отлично подходят для HTTP‑шлюзов и склеивающей автоматизации, но цепочка Apple по‑прежнему рассчитана на macOS. Mac mini на Apple Silicon даёт нативный xcodebuild, подпись, нотаризацию и Unix‑shell по SSH без сюрпризов сна, типичных для ноутбука с WSL. macOS сочетает очень низкое энергопотребление в простое (порядка нескольких ватт), бесшумность и зрелую модель безопасности — Gatekeeper, SIP и FileVault — так что безголовая сборочная машина менее «открыта», чем типичный постоянно включённый Windows‑ПК.
Если хотите, чтобы гибрид из этой статьи работал предсказуемо месяцами, вынесите Apple‑сторону на выделенное железо: Mac mini M4 — сильный баланс производительности, теплопакета и цены; дальше на главной SSHMac можно подобрать конфигурацию под ваш параллелизм и подпись.