---
read_when:
    - Настройка или отладка удалённого управления Mac
summary: Сценарий использования приложения macOS для управления удалённым Gateway OpenClaw
title: Удалённое управление
x-i18n:
    generated_at: "2026-07-13T18:25:20Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: bd3ee71838737c1b8cf67d91d00b135283f4284400c75309646e62921e8c3633
    source_path: platforms/mac/remote.md
    workflow: 16
---

Этот сценарий позволяет приложению macOS выступать в роли полноценного пульта дистанционного управления для Gateway OpenClaw, работающего на другом хосте (настольном компьютере или сервере). Приложение подключается напрямую к доверенным URL-адресам Gateway в локальной сети или Tailnet либо управляет SSH-туннелем, если удалённый Gateway доступен только через loopback-интерфейс. Проверки работоспособности, перенаправление Voice Wake и Web Chat используют ту же удалённую конфигурацию из раздела _Settings -> General_.

## Режимы

- **Локальный (этот Mac)**: всё работает на ноутбуке; SSH не используется.
- **Удалённый через SSH (по умолчанию)**: команды OpenClaw выполняются на удалённом хосте. Приложение открывает SSH-соединение с помощью `-o BatchMode`, выбранных вами идентификационных данных или ключа и локального перенаправления порта.
- **Прямое удалённое подключение (ws/wss)**: без SSH-туннеля; приложение подключается непосредственно к URL-адресу Gateway (через локальную сеть, Tailscale, Tailscale Serve или общедоступный обратный прокси-сервер HTTPS).

## Удалённые способы подключения

- **SSH-туннель** (по умолчанию): использует `ssh -N -L ...` для перенаправления порта Gateway на localhost. Gateway видит IP-адрес Node как `127.0.0.1`, поскольку туннель использует loopback-интерфейс.
- **Прямое подключение (ws/wss)**: подключается непосредственно к URL-адресу Gateway. Gateway видит реальный IP-адрес клиента.

Приложение отключает мультиплексирование SSH-соединений и переход в фоновый режим после аутентификации для собственных процессов SSH, чтобы отслеживать и перезапускать конкретный процесс, даже если выбранный псевдоним включает `ControlMaster` или `ForkAfterAuthentication`.

По умолчанию проверка ключа SSH-хоста выполняется строго, поскольку через этот туннель передаются учётные данные Gateway. Чтобы использовать собственные правила доверия управляемого SSH-псевдонима, задайте `--ssh-host-key-policy openssh` с помощью `openclaw-mac configure-remote` или напрямую задайте для `gateway.remote.sshHostKeyPolicy` значение `"openssh"`. Прежде чем включать этот режим, проверьте псевдоним и все соответствующие параметры `Host *` или системную конфигурацию. При изменении цели SSH (в приложении или через `configure-remote`) политика снова устанавливается в `strict`, если вы явно не включите этот режим повторно для новой цели.

В режиме SSH-туннеля обнаруженные имена хостов локальной сети или Tailnet сохраняются как `gateway.remote.sshTarget`. Приложение оставляет `gateway.remote.url` на локальной конечной точке туннеля (например, `ws://127.0.0.1:18789`), чтобы CLI, Web Chat и локальная служба хоста Node использовали одно и то же подключение через loopback-интерфейс. Если при обнаружении возвращаются и необработанные IP-адреса Tailnet, и стабильные имена хостов, приложение отдаёт предпочтение именам Tailscale MagicDNS или локальной сети, чтобы подключения лучше сохранялись при изменении адресов. Если локальный порт туннеля отличается от удалённого порта Gateway, задайте для `gateway.remote.remotePort` порт удалённого хоста.

В удалённом режиме за автоматизацию браузера отвечает хост Node CLI, а не Node нативного приложения macOS. Приложение по возможности запускает установленную службу хоста Node; чтобы включить управление браузером с этого Mac, установите или запустите её с помощью `openclaw node install ...` и `openclaw node start` (либо запустите `openclaw node run ...` на переднем плане), затем выберите целевой Node с поддержкой браузера.

## Требования к удалённому хосту

1. Установите Node и pnpm, затем соберите или установите CLI OpenClaw (`pnpm install && pnpm build && pnpm link --global`).
2. Убедитесь, что `openclaw` доступен в PATH для неинтерактивных оболочек (при необходимости создайте символическую ссылку в `/usr/local/bin` или `/opt/homebrew/bin`).
3. Для подключения через SSH настройте аутентификацию SSH по ключу. Для стабильной доступности за пределами локальной сети рекомендуется использовать IP-адреса Tailscale.

## Настройка приложения macOS

Чтобы предварительно настроить приложение через SSH без экрана приветствия:

```bash
openclaw-mac configure-remote \
  --ssh-target user@gateway-host \
  --local-port 18789 \
  --remote-port 18789 \
  --token "$OPENCLAW_GATEWAY_TOKEN"
```

Если Gateway уже доступен в доверенной локальной сети или Tailnet, можно полностью отказаться от SSH:

```bash
openclaw-mac configure-remote \
  --direct-url ws://192.168.0.202:18789 \
  --token "$OPENCLAW_GATEWAY_TOKEN"
```

Оба варианта записывают `~/.openclaw/openclaw.json`, отмечают первоначальную настройку как завершённую и позволяют приложению управлять выбранным способом подключения при следующем запуске. Для `--local-port`/`--remote-port` по умолчанию используется `18789`. Другие флаги: `--password`, `--identity <path>`, `--ssh-host-key-policy <strict|openssh>`, `--project-root <path>`, `--cli-path <path>`, `--json`. Выполните `openclaw-mac configure-remote --help`, чтобы просмотреть полную справку.

Чтобы вместо этого выполнить настройку через пользовательский интерфейс:

1. Откройте _Settings -> General_.
2. В разделе **OpenClaw runs** выберите **Remote** и задайте:
   - **Transport**: **SSH tunnel** или **Direct (ws/wss)**.
   - **SSH target**: `user@host` (необязательно — `:port`). Если Gateway находится в той же локальной сети и объявляет себя через Bonjour, выберите его в списке обнаруженных устройств, чтобы автоматически заполнить это поле.
   - **Gateway URL** (только для Direct): `wss://gateway.example.ts.net` (или `ws://...` для локального подключения или подключения по локальной сети).
   - **Identity file** (расширенная настройка): путь к вашему ключу.
   - **Project root** (расширенная настройка): путь к удалённой рабочей копии, используемой для выполнения команд.
   - **CLI path** (расширенная настройка): необязательный путь к исполняемой точке входа или двоичному файлу `openclaw` (заполняется автоматически, если объявлен).
3. Нажмите **Test remote**. Успешный результат означает, что удалённая команда `openclaw status --json` выполнена правильно. Ошибки обычно указывают на проблемы с PATH или CLI; код завершения 127 означает, что CLI не найден на удалённом хосте.
4. Проверки работоспособности и Web Chat теперь автоматически выполняются через выбранный способ подключения.

## Web Chat

- **SSH-туннель**: подключается к Gateway через перенаправленный управляющий порт WebSocket (по умолчанию 18789).
- **Прямое подключение (ws/wss)**: подключается непосредственно к настроенному URL-адресу Gateway.
- Отдельного HTTP-сервера Web Chat нет.

## Разрешения

- Удалённому хосту требуются те же разрешения TCC, что и локальному (Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications). Один раз выполните первоначальную настройку на этом компьютере, чтобы предоставить их.
- Node передают сведения о состоянии своих разрешений через `node.list` / `node.describe`, чтобы агенты знали, какие возможности доступны.

## Примечания по безопасности

- На удалённом хосте предпочтительно привязывать службы к loopback-интерфейсу и подключаться через SSH, Tailscale Serve либо доверенный прямой URL-адрес Tailnet или локальной сети.
- Для SSH-туннелирования по умолчанию требуется уже доверенный ключ хоста. Сначала добавьте ключ хоста в настроенный файл известных хостов либо явно задайте `gateway.remote.sshHostKeyPolicy: "openssh"` для управляемого псевдонима, правила доверия OpenSSH которого вы принимаете.
- Если Gateway привязан к интерфейсу, отличному от loopback, требуйте действительную аутентификацию Gateway: токен, пароль или обратный прокси-сервер с учётом идентификации и параметром `gateway.auth.mode: "trusted-proxy"`.
- См. разделы [Безопасность](/ru/gateway/security) и [Tailscale](/ru/gateway/tailscale).

## Процесс входа в WhatsApp (удалённый режим)

- Выполните `openclaw channels login --channel whatsapp --verbose` **на удалённом хосте**. Отсканируйте QR-код с помощью WhatsApp на телефоне.
- Если срок действия аутентификации истёк, повторно выполните вход на этом хосте. Проверка работоспособности сообщает о проблемах с подключением.

## Устранение неполадок

| Симптом                                          | Причина / решение                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `exit 127` / не найдено                           | `openclaw` отсутствует в PATH для оболочек без входа в систему. Добавьте его в `/etc/paths`, файл конфигурации вашей оболочки или создайте символическую ссылку в `/usr/local/bin`/`/opt/homebrew/bin`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Проверка работоспособности завершилась с ошибкой                              | Проверьте доступность по SSH, PATH и наличие активного входа Baileys (WhatsApp) (`openclaw status --json`).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Веб-чат не отвечает                                   | Убедитесь, что Gateway запущен на удалённом хосте, а перенаправленный порт соответствует порту WebSocket Gateway; для пользовательского интерфейса требуется работоспособное WebSocket-соединение.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| В качестве IP-адреса Node отображается `127.0.0.1`                        | Это ожидаемо при использовании SSH-туннеля. Переключите **Транспорт** на **Прямое подключение (ws/wss)**, если хотите, чтобы Gateway видел реальный IP-адрес клиента.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Панель управления работает, но возможности Mac недоступны | Соединение оператора/управления исправно, но соединение со вспомогательным Node не установлено либо в нём отсутствует набор команд. Откройте раздел устройств в строке меню и проверьте, находится ли Mac в состоянии `paired · disconnected`. Для конечных точек Tailscale Serve `wss://*.ts.net` приложение обнаруживает устаревшие закреплённые отпечатки конечных TLS-сертификатов после ротации сертификата, удаляет устаревший отпечаток, когда macOS начинает доверять новому сертификату, и автоматически повторяет попытку. Если сертификат не является доверенным на системном уровне или хост не имеет имени Tailscale Serve, задайте для `gateway.remote.tlsFingerprint` ожидаемый отпечаток сертификата, проверьте сертификат или переключитесь на **Удалённое подключение по SSH**. |
| Активация голосом                                       | В удалённом режиме фразы активации перенаправляются автоматически; отдельный перенаправитель не требуется.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

## Звуки уведомлений

Выбирайте звук для каждого уведомления из скриптов с помощью `openclaw nodes notify`, например:

```bash
openclaw nodes notify --node <id> --title "Проверка связи" --body "Удалённый Gateway готов" --sound Glass
```

В приложении нет глобального переключателя звука по умолчанию; вызывающая сторона выбирает звук (или его отсутствие) для каждого запроса.

## Связанные материалы

- [Приложение macOS](/ru/platforms/macos)
- [Удалённый доступ](/ru/gateway/remote)
