> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Удалённый доступ

# Удалённый доступ (SSH, туннели и tailnet-сети)

Этот репозиторий поддерживает режим «удалённо через SSH», при котором один Gateway (главный) постоянно работает на выделенном хосте (настольный ПК/сервер), а клиенты подключаются к нему.

* Для **операторов (вы / приложение для macOS)**: SSH-туннелирование — универсальный запасной вариант.
* Для **узлов (iOS/Android и будущие устройства)**: подключение к **WebSocket** Gateway (LAN/tailnet или SSH-туннель по необходимости).

## Основная идея

* WebSocket Gateway привязывается к **loopback** на настроенном порту (по умолчанию 18789).
* Для удалённого использования этот loopback‑порт пробрасывается через SSH (или используется tailnet/VPN, что уменьшает потребность в туннелях).

## Распространённые VPN/tailnet‑сценарии (где живёт агент)

Рассматривайте **хост шлюза Gateway** как «место, где живёт агент». Он владеет сеансами, профилями аутентификации, каналами и состоянием.
Ваш ноутбук/десктоп (и узлы) подключаются к этому хосту.

### 1. Постоянно работающий Gateway в вашем tailnet (VPS или домашний сервер)

Запустите Gateway на постоянном хосте и подключайтесь к нему через **Tailscale** или SSH.

* **Лучший UX:** сохраните `gateway.bind: "loopback"` и используйте **Tailscale Serve** для Control UI.
* **Запасной вариант:** loopback + SSH-туннель с любой машины, которой нужен доступ.
* **Примеры:** [exe.dev](/install/exe-dev) (простая VM) или [Hetzner](/install/hetzner) (продакшн VPS).

Это идеально, когда ноутбук часто уходит в сон, но агент должен быть постоянно доступен.

### 2. Домашний десктоп запускает Gateway, ноутбук — удалённое управление

Ноутбук **не** запускает агент. Он подключается удалённо:

* Используйте режим **Remote over SSH** приложения для macOS (Settings → General → «OpenClaw runs»).
* Приложение открывает и управляет туннелем, поэтому WebChat и проверки состояния «просто работают».

Инструкция: [Удалённый доступ к macOS](/platforms/mac/remote).

### 3. Ноутбук запускает Gateway, удалённый доступ с других машин

Оставьте Gateway локальным, но безопасно откройте доступ:

* SSH-туннель к ноутбуку с других машин, или
* Используйте Tailscale Serve для Control UI и оставьте Gateway доступным только по loopback.

Руководство: [Tailscale](/gateway/tailscale) и [Web overview](/web).

## Поток команд (что и где выполняется)

Один сервис gateway владеет состоянием и каналами. Узлы — это периферия.

Пример потока (Telegram → узел):

* Сообщение Telegram поступает в **Gateway**.
* Gateway запускает **агент** и решает, вызывать ли инструмент узла.
* Gateway вызывает **узел** через WebSocket Gateway (RPC `node.*`).
* Узел возвращает результат; Gateway отправляет ответ обратно в Telegram.

Примечания:

* **Узлы не запускают сервис gateway.** На хосте должен работать только один gateway, если только вы намеренно не запускаете изолированные профили (см. [Multiple gateways](/gateway/multiple-gateways)).
* «Режим узла» приложения для macOS — это просто клиент узла поверх WebSocket Gateway.

## SSH-туннель (CLI + инструменты)

Создайте локальный туннель к удалённому WS Gateway:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
ssh -N -L 18789:127.0.0.1:18789 user@host
```

После поднятия туннеля:

* `openclaw health` и `openclaw status --deep` теперь обращаются к удалённому gateway через `ws://127.0.0.1:18789`.
* `openclaw gateway {status,health,send,agent,call}` также может указывать на проброшенный URL через `--url` при необходимости.

Примечание: замените `18789` на настроенный `gateway.port` (или `--port`/`OPENCLAW_GATEWAY_PORT`).
Примечание: при передаче `--url` CLI не использует запасные учётные данные из конфига или переменных окружения.
Явно укажите `--token` или `--password`. Отсутствие явных учётных данных считается ошибкой.

## Удалённые значения по умолчанию для CLI

Вы можете сохранить удалённую цель, чтобы команды CLI использовали её по умолчанию:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  gateway: {
    mode: "remote",
    remote: {
      url: "ws://127.0.0.1:18789",
      token: "your-token",
    },
  },
}
```

Когда gateway доступен только по loopback, оставьте URL равным `ws://127.0.0.1:18789` и сначала откройте SSH-туннель.

## Chat UI через SSH

WebChat больше не использует отдельный HTTP‑порт. UI чата на SwiftUI подключается напрямую к WebSocket Gateway.

* Пробросьте `18789` через SSH (см. выше), затем подключайте клиентов к `ws://127.0.0.1:18789`.
* На macOS предпочтительнее режим «Remote over SSH» приложения, который автоматически управляет туннелем.

## Приложение для macOS «Remote over SSH»

Приложение в строке меню macOS может управлять всей настройкой «под ключ» (удалённые проверки состояния, WebChat и проброс Voice Wake).

Инструкция: [Удалённый доступ к macOS](/platforms/mac/remote).

## Правила безопасности (удалённо/VPN)

Кратко: **держите Gateway доступным только по loopback**, если вы не уверены, что нужен иной bind.

* **Loopback + SSH/Tailscale Serve** — самый безопасный вариант по умолчанию (без публичной экспозиции).
* **Привязки не к loopback** (`lan`/`tailnet`/`custom` или `auto`, когда loopback недоступен) должны использовать токены аутентификации/пароли.
* `gateway.remote.token` предназначен **только** для удалённых вызовов CLI — он **не** включает локальную аутентификацию.
* `gateway.remote.tlsFingerprint` закрепляет удалённый TLS‑сертификат при использовании `wss://`.
* **Tailscale Serve** может аутентифицировать через identity‑заголовки, когда `gateway.auth.allowTailscale: true`.
  Установите значение `false`, если вместо этого нужны токены/пароли.
* Относитесь к управлению через браузер как к доступу оператора: только tailnet + осознанное сопряжение узлов.

Подробно: [Security](/gateway/security).
