diff --git a/docs/uk/cli/proxy.md b/docs/uk/cli/proxy.md index a72d92717..dae3f1e84 100644 --- a/docs/uk/cli/proxy.md +++ b/docs/uk/cli/proxy.md @@ -1,32 +1,36 @@ --- read_when: - - Вам потрібно локально захоплювати транспортний трафік OpenClaw для налагодження - - Вам потрібно перевіряти сесії проксі налагодження, великі двійкові об’єкти або вбудовані шаблони запитів -summary: Довідка CLI для `openclaw proxy`, локального проксі налагодження та інспектора захоплень + - Потрібно перевірити керовану оператором маршрутизацію через проксі перед розгортанням + - Вам потрібно локально захопити транспортний трафік OpenClaw для налагодження + - Ви хочете переглянути сеанси проксі налагодження, бінарні об’єкти або вбудовані пресети запитів +summary: Довідка CLI для `openclaw proxy`, включно з перевіркою проксі, керованого оператором, та інспектором захоплень локального налагоджувального проксі title: Проксі x-i18n: - generated_at: "2026-04-24T04:12:43Z" - model: gpt-5.4 + generated_at: "2026-05-01T05:23:58Z" + model: gpt-5.5 provider: openai - source_hash: 7af5c596fb36f67e3fcffaff14dcbb4eabbcff0b95174ac6058a097ec9fd715f + source_hash: e0820de861bfe1ec14e0c1624d636d6474b5fedd317e3ba1baaa61f6530e06e9 source_path: cli/proxy.md - workflow: 15 + workflow: 16 --- # `openclaw proxy` -Запускайте локальний явний проксі налагодження та перевіряйте захоплений трафік. +Перевіряйте керовану оператором маршрутизацію проксі або запускайте локальний явний проксі для налагодження +та інспектуйте захоплений трафік. -Це команда для налагодження на рівні транспорту. Вона може запускати -локальний проксі, виконувати дочірню команду з увімкненим захопленням, показувати список сесій захоплення, -робити запити до поширених шаблонів трафіку, читати захоплені великі двійкові об’єкти та очищати локальні дані -захоплення. +Використовуйте `validate`, щоб попередньо перевірити керований оператором прямий проксі перед увімкненням +маршрутизації проксі OpenClaw. Інші команди є інструментами налагодження для +дослідження на транспортному рівні: вони можуть запускати локальний проксі, виконувати дочірню команду +з увімкненим захопленням, перелічувати сеанси захоплення, запитувати поширені шаблони трафіку, читати +захоплені blob-об’єкти та очищати локальні дані захоплення. ## Команди ```bash openclaw proxy start [--host ] [--port ] openclaw proxy run [--host ] [--port ] -- +openclaw proxy validate [--json] [--proxy-url ] [--allowed-url ] [--denied-url ] [--timeout-ms ] openclaw proxy coverage openclaw proxy sessions [--limit ] openclaw proxy query --preset [--session ] @@ -34,7 +38,29 @@ openclaw proxy blob --id openclaw proxy purge ``` -## Шаблони запитів +## Перевірка + +`openclaw proxy validate` перевіряє ефективну URL-адресу керованого оператором проксі з +`--proxy-url`, конфігурації або `OPENCLAW_PROXY_URL`. Вона повідомляє про проблему конфігурації, коли +проксі не ввімкнено й не налаштовано; використовуйте `--proxy-url` для одноразової попередньої перевірки +перед зміною конфігурації. За замовчуванням вона перевіряє, що публічний пункт призначення успішно доступний +через проксі та що проксі не може досягти тимчасової loopback-приманки. +Користувацькі заборонені пункти призначення блокуються за замовчуванням: HTTP-відповіді та неоднозначні +транспортні збої вважаються невдачею, якщо ви не можете окремо перевірити специфічний для розгортання +сигнал відмови. + +Параметри: + +- `--json`: вивести машиночитний JSON. +- `--proxy-url `: перевірити цю URL-адресу проксі замість конфігурації або змінної середовища. +- `--allowed-url `: додати пункт призначення, який має успішно працювати через проксі. Повторіть, щоб перевірити кілька пунктів призначення. +- `--denied-url `: додати пункт призначення, який має блокуватися проксі. Повторіть, щоб перевірити кілька пунктів призначення. +- `--timeout-ms `: тайм-аут для кожного запиту в мілісекундах. + +Див. [Мережевий проксі](/uk/security/network-proxy) для рекомендацій щодо розгортання та +семантики відмови. + +## Попередні набори запитів `openclaw proxy query --preset ` приймає: @@ -47,11 +73,13 @@ openclaw proxy purge ## Примітки -- `start` типово використовує `127.0.0.1`, якщо не задано `--host`. -- `run` запускає локальний проксі налагодження, а потім виконує команду після `--`. -- Захоплення — це локальні дані налагодження; після завершення використовуйте `openclaw proxy purge`. +- `start` за замовчуванням використовує `127.0.0.1`, якщо `--host` не задано. +- `run` запускає локальний проксі для налагодження, а потім виконує команду після `--`. +- `validate` завершується з кодом 1, коли конфігурація проксі або перевірки пунктів призначення не проходять. +- Захоплення є локальними даними налагодження; використовуйте `openclaw proxy purge`, коли завершите. ## Пов’язане -- [Довідка CLI](/uk/cli) +- [Довідник CLI](/uk/cli) +- [Мережевий проксі](/uk/security/network-proxy) - [Автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth) diff --git a/docs/uk/security/network-proxy.md b/docs/uk/security/network-proxy.md index ca9efc989..e8f642465 100644 --- a/docs/uk/security/network-proxy.md +++ b/docs/uk/security/network-proxy.md @@ -1,69 +1,69 @@ --- read_when: - - Вам потрібен багаторівневий захист від SSRF і атак повторного прив’язування DNS + - Вам потрібен багаторівневий захист від атак SSRF і повторного прив’язування DNS - Налаштування зовнішнього прямого проксі для трафіку середовища виконання OpenClaw -summary: Як маршрутизувати HTTP- і WebSocket-трафік середовища виконання OpenClaw через фільтрувальний проксі, керований оператором +summary: Як маршрутизувати HTTP- і WebSocket-трафік середовища виконання OpenClaw через керований оператором фільтрувальний проксі title: Мережевий проксі x-i18n: - generated_at: "2026-04-29T23:59:53Z" + generated_at: "2026-05-01T05:23:47Z" model: gpt-5.5 provider: openai - source_hash: c4e879f787571410acdda55dcdbb5fd77aef1d24045af5c9208cba51330a70ca + source_hash: 9207d349e4410e38631ae7665be19b536e4a4128a4e80dd095e802804dfd66a3 source_path: security/network-proxy.md workflow: 16 --- # Мережевий проксі -OpenClaw може маршрутизувати runtime HTTP- і WebSocket-трафік через керований оператором прямий проксі. Це необов’язковий захист у глибину для розгортань, яким потрібні централізований контроль вихідного трафіку, сильніший захист від SSRF і краща придатність мережі до аудиту. +OpenClaw може спрямовувати runtime HTTP- і WebSocket-трафік через керований оператором прямий проксі. Це необов’язковий додатковий рівень захисту для розгортань, яким потрібні централізований контроль вихідного трафіку, сильніший захист від SSRF і краща можливість аудиту мережі. -OpenClaw не постачає, не завантажує, не запускає, не налаштовує й не сертифікує проксі. Ви запускаєте проксі-технологію, яка підходить вашому середовищу, а OpenClaw маршрутизує через неї звичайні локальні для процесу HTTP- і WebSocket-клієнти. +OpenClaw не постачає, не завантажує, не запускає, не налаштовує й не сертифікує проксі. Ви запускаєте проксі-технологію, яка відповідає вашому середовищу, а OpenClaw спрямовує через неї звичайні process-local HTTP- і WebSocket-клієнти. ## Навіщо використовувати проксі? Проксі дає операторам одну точку мережевого контролю для вихідного HTTP- і WebSocket-трафіку. Це може бути корисно навіть поза посиленням захисту від SSRF: -- Централізована політика: підтримуйте одну політику вихідного трафіку замість того, щоб покладатися на коректність мережевих правил у кожному місці HTTP-виклику застосунку. +- Централізована політика: підтримуйте одну політику вихідного трафіку замість того, щоб покладатися на те, що кожне місце HTTP-виклику в застосунку правильно застосує мережеві правила. - Перевірки під час підключення: оцінюйте призначення після DNS-розв’язання й безпосередньо перед тим, як проксі відкриє upstream-з’єднання. -- Захист від DNS rebinding: зменшуйте проміжок між DNS-перевіркою на рівні застосунку та фактичним вихідним з’єднанням. -- Ширше покриття JavaScript: маршрутизуйте звичайні `fetch`, `node:http`, `node:https`, WebSocket, axios, got, node-fetch і подібні клієнти через той самий шлях. -- Придатність до аудиту: журналюйте дозволені й заборонені призначення на межі вихідного трафіку. +- Захист від DNS rebinding: зменшуйте розрив між DNS-перевіркою на рівні застосунку й фактичним вихідним з’єднанням. +- Ширше покриття JavaScript: спрямовуйте звичайні `fetch`, `node:http`, `node:https`, WebSocket, axios, got, node-fetch і подібні клієнти одним і тим самим шляхом. +- Можливість аудиту: журналюйте дозволені й заборонені призначення на межі вихідного трафіку. - Операційний контроль: застосовуйте правила призначень, сегментацію мережі, обмеження швидкості або allowlist-и вихідного трафіку без перебудови OpenClaw. -Маршрутизація через проксі є запобіжником на рівні процесу для звичайного вихідного HTTP- і WebSocket-трафіку. Вона дає операторам fail-closed шлях для маршрутизації підтримуваних JavaScript HTTP-клієнтів через власний фільтрувальний проксі, але не є мережевою пісочницею на рівні ОС і не змушує OpenClaw сертифікувати політику призначень проксі. +Маршрутизація через проксі — це запобіжник рівня процесу для звичайного вихідного HTTP- і WebSocket-трафіку. Вона дає операторам fail-closed шлях для спрямування підтримуваних JavaScript HTTP-клієнтів через власний фільтрувальний проксі, але не є мережевою пісочницею рівня ОС і не змушує OpenClaw сертифікувати політику призначень проксі. -## Як OpenClaw маршрутизує трафік +## Як OpenClaw спрямовує трафік -Коли `proxy.enabled=true` і налаштовано URL проксі, захищені runtime-процеси, як-от `openclaw gateway run`, `openclaw node run` і `openclaw agent --local`, маршрутизують звичайний вихідний HTTP- і WebSocket-трафік через налаштований проксі: +Коли `proxy.enabled=true` і налаштовано URL проксі, захищені runtime-процеси, як-от `openclaw gateway run`, `openclaw node run` і `openclaw agent --local`, спрямовують звичайний вихідний HTTP- і WebSocket-трафік через налаштований проксі: ```text -OpenClaw process - fetch -> operator-managed filtering proxy -> public internet - node:http and https -> operator-managed filtering proxy -> public internet - WebSocket clients -> operator-managed filtering proxy -> public internet +Процес OpenClaw + fetch -> керований оператором фільтрувальний проксі -> публічний інтернет + node:http and https -> керований оператором фільтрувальний проксі -> публічний інтернет + WebSocket clients -> керований оператором фільтрувальний проксі -> публічний інтернет ``` -Публічний контракт — це поведінка маршрутизації, а не внутрішні Node-перехоплювачі, використані для її реалізації. WebSocket-клієнти контрольної площини OpenClaw Gateway використовують вузький прямий шлях для локального Gateway RPC-трафіку через local loopback, коли URL Gateway використовує `localhost` або літеральну loopback IP-адресу, як-от `127.0.0.1` чи `[::1]`. Цей шлях контрольної площини має бути здатний досягати loopback Gateway-ів навіть тоді, коли проксі оператора блокує loopback-призначення. Звичайні runtime HTTP- і WebSocket-запити все одно використовують налаштований проксі. +Публічний контракт — це поведінка маршрутизації, а не внутрішні Node-хуки, використані для її реалізації. WebSocket-клієнти control-plane OpenClaw Gateway використовують вузький прямий шлях для local loopback Gateway RPC-трафіку, коли URL Gateway використовує `localhost` або буквальну loopback IP-адресу, як-от `127.0.0.1` чи `[::1]`. Цей control-plane шлях має мати змогу досягати loopback Gateway, навіть коли операторський проксі блокує loopback-призначення. Звичайні runtime HTTP- і WebSocket-запити все одно використовують налаштований проксі. -Внутрішньо OpenClaw використовує два перехоплювачі маршрутизації на рівні процесу для цієї функції: +Внутрішньо OpenClaw використовує два хуки маршрутизації рівня процесу для цієї функції: -- Маршрутизація диспетчера Undici покриває `fetch`, клієнти на основі undici й транспорти, які надають власний диспетчер undici. -- Маршрутизація `global-agent` покриває виклики ядра Node `node:http` і `node:https`, зокрема багато бібліотек, побудованих поверх `http.request`, `https.request`, `http.get` і `https.get`. Керований режим проксі примусово використовує цей глобальний агент, щоб явні HTTP-агенти Node випадково не обходили проксі оператора. +- Маршрутизація диспетчера Undici покриває `fetch`, клієнти на основі undici та транспорти, які надають власний диспетчер undici. +- Маршрутизація `global-agent` покриває виклики Node core `node:http` і `node:https`, включно з багатьма бібліотеками, побудованими поверх `http.request`, `https.request`, `http.get` і `https.get`. Керований режим проксі примусово застосовує цей глобальний агент, щоб явні Node HTTP-агенти випадково не обходили операторський проксі. -Деякі плагіни володіють власними транспортами, яким потрібне явне підключення проксі навіть тоді, коли існує маршрутизація на рівні процесу. Наприклад, транспорт Bot API Telegram використовує власний HTTP/1-диспетчер undici і тому поважає env проксі процесу плюс керований fallback `OPENCLAW_PROXY_URL` у цьому owner-specific транспортному шляху. +Деякі plugins мають власні транспорти, яким потрібне явне проксі-підключення навіть за наявності маршрутизації рівня процесу. Наприклад, транспорт Bot API для Telegram використовує власний HTTP/1-диспетчер undici, тому враховує env проксі процесу, а також керований fallback `OPENCLAW_PROXY_URL` у цьому owner-specific транспортному шляху. Сам URL проксі має використовувати `http://`. HTTPS-призначення все одно підтримуються через проксі за допомогою HTTP `CONNECT`; це лише означає, що OpenClaw очікує простий HTTP forward-proxy listener, як-от `http://127.0.0.1:3128`. -Поки проксі активний, OpenClaw очищає `no_proxy`, `NO_PROXY` і `GLOBAL_AGENT_NO_PROXY`. Ці списки обходу базуються на призначенні, тому якщо залишити там `localhost` або `127.0.0.1`, високоризикові SSRF-цілі могли б обходити фільтрувальний проксі. +Поки проксі активний, OpenClaw очищає `no_proxy`, `NO_PROXY` і `GLOBAL_AGENT_NO_PROXY`. Ці списки обходу базуються на призначеннях, тому залишення там `localhost` або `127.0.0.1` дозволило б високоризиковим SSRF-цілям пропускати фільтрувальний проксі. -Під час завершення роботи OpenClaw відновлює попереднє proxy environment і скидає кешований стан маршрутизації процесу. +Під час завершення роботи OpenClaw відновлює попереднє проксі-середовище й скидає кешований стан маршрутизації процесу. ## Пов’язані терміни проксі -- `proxy.enabled` / `proxy.proxyUrl`: маршрутизація вихідного трафіку через forward-proxy для runtime-виходу OpenClaw. Ця сторінка документує цю функцію. -- `gateway.auth.mode: "trusted-proxy"`: inbound identity-aware автентифікація через reverse-proxy для доступу до Gateway. Див. [Автентифікація через довірений проксі](/uk/gateway/trusted-proxy-auth). -- `openclaw proxy`: локальний debug proxy і capture inspector для розробки та підтримки. Див. [openclaw proxy](/uk/cli/proxy). -- Канальні або provider-specific налаштування проксі: owner-specific перевизначення для конкретного транспорту. Віддавайте перевагу керованому мережевому проксі, коли мета — централізований контроль вихідного трафіку в усьому runtime. +- `proxy.enabled` / `proxy.proxyUrl`: маршрутизація вихідного forward-proxy для runtime вихідного трафіку OpenClaw. Ця сторінка документує цю функцію. +- `gateway.auth.mode: "trusted-proxy"`: inbound identity-aware reverse-proxy authentication для доступу до Gateway. Див. [Автентифікація довіреного проксі](/uk/gateway/trusted-proxy-auth). +- `openclaw proxy`: локальний debug proxy і capture inspector для розробки й підтримки. Див. [openclaw proxy](/uk/cli/proxy). +- Налаштування проксі, специфічні для каналу або провайдера: owner-specific перевизначення для конкретного транспорту. Віддавайте перевагу керованому мережевому проксі, коли метою є централізований контроль вихідного трафіку в усьому runtime. ## Конфігурація @@ -81,9 +81,9 @@ OPENCLAW_PROXY_URL=http://127.0.0.1:3128 openclaw gateway run `proxy.proxyUrl` має пріоритет над `OPENCLAW_PROXY_URL`. -Якщо `enabled=true`, але не налаштовано дійсний URL проксі, захищені команди завершують запуск помилкою замість fallback до прямого доступу до мережі. +Якщо `enabled=true`, але не налаштовано чинний URL проксі, захищені команди завершують запуск з помилкою замість fallback до прямого доступу до мережі. -Для керованих служб Gateway, запущених через `openclaw gateway start`, краще зберігати URL у конфігурації: +Для керованих сервісів Gateway, запущених через `openclaw gateway start`, краще зберігати URL у конфігурації: ```bash openclaw config set proxy.enabled true @@ -92,9 +92,9 @@ openclaw gateway install --force openclaw gateway start ``` -Fallback через середовище найкраще підходить для foreground-запусків. Якщо ви використовуєте його з установленою службою, помістіть `OPENCLAW_PROXY_URL` у durable environment служби, наприклад `$OPENCLAW_STATE_DIR/.env` або `~/.openclaw/.env`, а потім перевстановіть службу, щоб launchd, systemd або Scheduled Tasks запускали gateway з цим значенням. +Fallback через середовище найкраще підходить для запусків у передньому плані. Якщо ви використовуєте його з установленим сервісом, помістіть `OPENCLAW_PROXY_URL` у durable environment сервісу, наприклад `$OPENCLAW_STATE_DIR/.env` або `~/.openclaw/.env`, а потім перевстановіть сервіс, щоб launchd, systemd або Scheduled Tasks запускали Gateway із цим значенням. -Для команд `openclaw --container ...` OpenClaw пересилає `OPENCLAW_PROXY_URL` у container-targeted дочірній CLI, коли він заданий. URL має бути доступний зсередини контейнера; `127.0.0.1` посилається на сам контейнер, а не на хост. OpenClaw відхиляє loopback URL проксі для container-targeted команд, якщо ви явно не перевизначите цю safety check. +Для команд `openclaw --container ...` OpenClaw передає `OPENCLAW_PROXY_URL` у child CLI, націлений на контейнер, коли його задано. URL має бути доступним зсередини контейнера; `127.0.0.1` вказує на сам контейнер, а не на хост. OpenClaw відхиляє loopback URL проксі для команд, націлених на контейнер, якщо ви явно не перевизначите цю перевірку безпеки. ## Вимоги до проксі @@ -103,19 +103,19 @@ Fallback через середовище найкраще підходить д Налаштуйте проксі так, щоб він: - Прив’язувався лише до loopback або приватного довіреного інтерфейсу. -- Обмежував доступ так, щоб ним міг користуватися лише процес, хост, контейнер або service account OpenClaw. +- Обмежував доступ так, щоб ним могли користуватися лише процес OpenClaw, хост, контейнер або сервісний обліковий запис. - Самостійно розв’язував призначення й блокував IP-адреси призначення після DNS-розв’язання. -- Застосовував політику під час підключення як для звичайних HTTP-запитів, так і для HTTPS `CONNECT` tunnels. +- Застосовував політику під час підключення як для простих HTTP-запитів, так і для HTTPS-тунелів `CONNECT`. - Відхиляв destination-based обходи для loopback, приватних, link-local, metadata, multicast, reserved або documentation діапазонів. - Уникав allowlist-ів імен хостів, якщо ви повністю не довіряєте шляху DNS-розв’язання. -- Журналював призначення, рішення, статус і причину без журналювання тіл запитів, authorization headers, cookies або інших секретів. +- Журналював призначення, рішення, статус і причину без журналювання тіл запитів, заголовків авторизації, cookies або інших секретів. - Тримав політику проксі під контролем версій і переглядав зміни як security-sensitive конфігурацію. ## Рекомендовані заблоковані призначення Використовуйте цей denylist як початкову точку для будь-якого forward proxy, firewall або політики вихідного трафіку. -Логіка класифікатора OpenClaw на рівні застосунку розташована в `src/infra/net/ssrf.ts` і `src/shared/net/ip.ts`. Відповідні parity hooks — це `BLOCKED_HOSTNAMES`, `BLOCKED_IPV4_SPECIAL_USE_RANGES`, `BLOCKED_IPV6_SPECIAL_USE_RANGES`, `RFC2544_BENCHMARK_PREFIX` і вбудована обробка IPv4 sentinel для NAT64, 6to4, Teredo, ISATAP та IPv4-mapped forms. Ці файли є корисними довідковими матеріалами під час підтримки зовнішньої політики проксі, але OpenClaw не експортує й не застосовує ці правила автоматично у вашому проксі. +Логіка класифікатора на рівні застосунку OpenClaw розташована в `src/infra/net/ssrf.ts` і `src/shared/net/ip.ts`. Відповідні parity hooks — це `BLOCKED_HOSTNAMES`, `BLOCKED_IPV4_SPECIAL_USE_RANGES`, `BLOCKED_IPV6_SPECIAL_USE_RANGES`, `RFC2544_BENCHMARK_PREFIX` і вбудована обробка sentinel IPv4 для NAT64, 6to4, Teredo, ISATAP і IPv4-mapped форм. Ці файли корисні як довідка під час підтримки зовнішньої політики проксі, але OpenClaw не експортує й не застосовує ці правила автоматично у вашому проксі. | Діапазон або хост | Чому блокувати | | ------------------------------------------------------------------------------------ | --------------------------------------------------- | @@ -123,24 +123,54 @@ Fallback через середовище найкраще підходить д | `::1/128` | IPv6 loopback | | `0.0.0.0/8`, `::/128` | Невизначені адреси та адреси цієї мережі | | `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16` | Приватні мережі RFC1918 | -| `169.254.0.0/16`, `fe80::/10` | Link-local адреси та поширені шляхи metadata хмар | -| `169.254.169.254`, `metadata.google.internal` | Служби metadata хмари | +| `169.254.0.0/16`, `fe80::/10` | Link-local адреси й поширені шляхи cloud metadata | +| `169.254.169.254`, `metadata.google.internal` | Сервіси cloud metadata | | `100.64.0.0/10` | Спільний адресний простір carrier-grade NAT | -| `198.18.0.0/15`, `2001:2::/48` | Діапазони benchmark | -| `192.0.0.0/24`, `192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24`, `2001:db8::/32` | Special-use і documentation діапазони | +| `198.18.0.0/15`, `2001:2::/48` | Діапазони для benchmarking | +| `192.0.0.0/24`, `192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24`, `2001:db8::/32` | Діапазони special-use і documentation | | `224.0.0.0/4`, `ff00::/8` | Multicast | -| `240.0.0.0/4` | Зарезервований IPv4 | +| `240.0.0.0/4` | Reserved IPv4 | | `fc00::/7`, `fec0::/10` | Локальні/приватні діапазони IPv6 | -| `100::/64`, `2001:20::/28` | IPv6 discard і ORCHIDv2 діапазони | -| `64:ff9b::/96`, `64:ff9b:1::/48` | Префікси NAT64 із вбудованим IPv4 | +| `100::/64`, `2001:20::/28` | Діапазони IPv6 discard і ORCHIDv2 | +| `64:ff9b::/96`, `64:ff9b:1::/48` | NAT64 prefixes із вбудованим IPv4 | | `2002::/16`, `2001::/32` | 6to4 і Teredo із вбудованим IPv4 | | `::/96`, `::ffff:0:0/96` | IPv4-compatible і IPv4-mapped IPv6 | -Якщо ваш хмарний provider або мережева платформа документує додаткові metadata hosts чи reserved ranges, додайте і їх. +Якщо ваш cloud provider або мережева платформа документує додаткові metadata hosts чи reserved ranges, додайте їх також. -## Перевірка +## Валідація -Перевірте проксі з того самого хоста, контейнера або service account, який запускає OpenClaw: +Перевіряйте проксі з того самого хоста, контейнера або сервісного облікового запису, на якому працює OpenClaw: + +```bash +openclaw proxy validate --proxy-url http://127.0.0.1:3128 +``` + +За замовчуванням, коли не надано власних призначень, команда перевіряє, що `https://example.com/` успішно відкривається, і запускає тимчасовий loopback canary, до якого проксі не повинен дістатися. Перевірка default denied проходить, коли проксі повертає не-2xx denial response або блокує canary з transport failure; вона провалюється, якщо успішна відповідь доходить до canary. Якщо проксі не ввімкнено й не налаштовано, валідація повідомляє про проблему конфігурації; використовуйте `--proxy-url` для одноразового preflight перед зміною конфігурації. Використовуйте `--allowed-url` і `--denied-url`, щоб перевірити deployment-specific очікування. Власні заборонені призначення є fail-closed: будь-яка HTTP-відповідь означає, що призначення було доступне через проксі, а будь-яка transport error повідомляється як inconclusive, бо OpenClaw не може довести, що проксі заблокував reachable origin. У разі помилки валідації команда завершується з кодом 1. + +Використовуйте `--json` для автоматизації. JSON-вивід містить загальний результат, ефективне джерело конфігурації проксі, будь-які помилки конфігурації та кожну перевірку призначення. Облікові дані URL проксі редагуються в текстовому та JSON-виводі: + +```json +{ + "ok": true, + "config": { + "enabled": true, + "proxyUrl": "http://127.0.0.1:3128/", + "source": "override", + "errors": [] + }, + "checks": [ + { + "kind": "allowed", + "url": "https://example.com/", + "ok": true, + "status": 200 + } + ] +} +``` + +Ви також можете перевірити вручну за допомогою `curl`: ```bash curl -x http://127.0.0.1:3128 https://example.com/ @@ -148,9 +178,9 @@ curl -x http://127.0.0.1:3128 http://127.0.0.1/ curl -x http://127.0.0.1:3128 http://169.254.169.254/ ``` -Публічний запит має бути успішним. Loopback- і metadata-запити мають завершитися помилкою на проксі. +Публічний запит має виконатися успішно. Запити до loopback і метаданих має заблокувати проксі. Для `openclaw proxy validate` вбудований loopback canary може відрізнити відмову проксі від доступного джерела. Користувацькі перевірки `--denied-url` не мають цього canary, тому вважайте як HTTP-відповіді, так і неоднозначні транспортні збої помилками валідації, якщо ваш проксі не надає специфічний для розгортання сигнал відмови, який можна перевірити окремо. -Потім увімкніть маршрутизацію OpenClaw через проксі: +Потім увімкніть маршрутизацію через проксі OpenClaw: ```bash openclaw config set proxy.enabled true @@ -168,9 +198,9 @@ proxy: ## Обмеження -- Проксі покращує покриття для локальних для процесу JavaScript HTTP- і WebSocket-клієнтів, але не є мережевою пісочницею на рівні ОС. -- Raw `net`, `tls` і `http2` sockets, native addons і дочірні процеси можуть обходити маршрутизацію проксі на рівні Node, якщо вони не успадковують і не поважають змінні середовища проксі. -- Локальні WebUI користувача та локальні model servers слід додавати до allowlist у політиці проксі оператора за потреби; OpenClaw не надає для них загального обходу локальної мережі. -- Обхід проксі для контрольної площини Gateway навмисно обмежений `localhost` і літеральними loopback IP URL. Використовуйте `ws://127.0.0.1:18789`, `ws://[::1]:18789` або `ws://localhost:18789` для локальних прямих підключень до контрольної площини Gateway; інші імена хостів маршрутизуються як звичайний hostname-based трафік. +- Проксі покращує покриття для процес-локальних HTTP- і WebSocket-клієнтів JavaScript, але це не мережевий sandbox рівня ОС. +- Необроблені сокети `net`, `tls` і `http2`, нативні addons і дочірні процеси можуть обходити маршрутизацію через проксі на рівні Node, якщо вони не успадковують і не дотримуються змінних середовища проксі. +- Локальні WebUI користувача та локальні сервери моделей за потреби слід додати до списку дозволених у політиці проксі оператора; OpenClaw не надає для них загального обходу локальної мережі. +- Обхід проксі для площини керування Gateway навмисно обмежено `localhost` і буквальними URL-адресами loopback IP. Використовуйте `ws://127.0.0.1:18789`, `ws://[::1]:18789` або `ws://localhost:18789` для локальних прямих підключень до площини керування Gateway; інші імена хостів маршрутизуються як звичайний трафік на основі імен хостів. - OpenClaw не перевіряє, не тестує й не сертифікує вашу політику проксі. -- Розглядайте зміни політики проксі як security-sensitive операційні зміни. +- Розглядайте зміни політики проксі як безпеково чутливі операційні зміни.