OpenClaw може використовувати Bonjour (mDNS / DNS-SD), щоб виявляти активний Gateway (кінцеву точку WebSocket). Багатоадресний переглядDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
local. — це зручність лише для LAN. Вбудований bonjour
plugin відповідає за оголошення в LAN. Він автоматично запускається на хостах macOS і вмикається вручну для
розгортань Gateway у Linux, Windows і контейнерах. Для виявлення між мережами той самий
beacon також можна опублікувати через налаштований домен wide-area DNS-SD. Виявлення
й далі працює за принципом best-effort і не замінює підключення через SSH або Tailnet.
Wide-area Bonjour (Unicast DNS-SD) через Tailscale
Якщо вузол і gateway перебувають у різних мережах, багатоадресний mDNS не перетне межу. Ви можете зберегти той самий UX виявлення, перемкнувшись на unicast DNS-SD (“Wide-Area Bonjour”) через Tailscale. Кроки високого рівня:- Запустіть DNS-сервер на хості gateway (доступний через Tailnet).
- Опублікуйте записи DNS-SD для
_openclaw-gw._tcpу виділеній зоні (приклад:openclaw.internal.). - Налаштуйте Tailscale split DNS, щоб вибраний домен розв’язувався через цей DNS-сервер для клієнтів (зокрема iOS).
openclaw.internal. — лише приклад.
Вузли iOS/Android переглядають і local., і ваш налаштований wide-area домен.
Конфігурація Gateway (рекомендовано)
Одноразове налаштування DNS-сервера (хост gateway)
- прослуховував порт 53 лише на інтерфейсах Tailscale gateway
- обслуговував вибраний домен (приклад:
openclaw.internal.) з~/.openclaw/dns/<domain>.db
Налаштування DNS у Tailscale
У консолі адміністратора Tailscale:- Додайте nameserver, що вказує на tailnet IP gateway (UDP/TCP 53).
- Додайте split DNS, щоб ваш домен виявлення використовував цей nameserver.
_openclaw-gw._tcp у вашому домені виявлення без multicast.
Безпека слухача Gateway (рекомендовано)
Порт Gateway WS (типово18789) за замовчуванням прив’язується до loopback. Для доступу через LAN/tailnet
задайте прив’язку явно й залиште автентифікацію ввімкненою.
Для налаштувань лише через tailnet:
- Установіть
gateway.bind: "tailnet"у~/.openclaw/openclaw.json. - Перезапустіть Gateway (або перезапустіть застосунок macOS у рядку меню).
Що оголошує
Лише Gateway оголошує_openclaw-gw._tcp. Багатоадресне оголошення в LAN
надає вбудований bonjour plugin, коли plugin увімкнено; публікація wide-area
DNS-SD залишається у власності Gateway.
Типи сервісів
_openclaw-gw._tcp- beacon транспорту gateway (використовується вузлами macOS/iOS/Android).
Ключі TXT (несекретні підказки)
Gateway оголошує невеликі несекретні підказки, щоб зробити потоки UI зручними:role=gatewaydisplayName=<friendly name>lanHost=<hostname>.localgatewayPort=<port>(Gateway WS + HTTP)gatewayTls=1(лише коли TLS увімкнено)gatewayTlsSha256=<sha256>(лише коли TLS увімкнено і fingerprint доступний)canvasPort=<port>(лише коли хост canvas увімкнено; наразі той самий, що йgatewayPort)transport=gatewaytailnetDns=<magicdns>(лише повний режим mDNS, необов’язкова підказка, коли Tailnet доступний)sshPort=<port>(лише повний режим; пропускається в мінімальному та вимкненому режимах)cliPath=<path>(лише повний режим; пропускається в мінімальному та вимкненому режимах)
- Записи Bonjour/mDNS TXT не автентифікуються. Клієнти не повинні вважати TXT авторитетним джерелом маршрутизації.
- Клієнти мають маршрутизувати, використовуючи розв’язану кінцеву точку сервісу (SRV + A/AAAA). Розглядайте
lanHost,tailnetDns,gatewayPortіgatewayTlsSha256лише як підказки. - Автоматичний вибір цілі SSH так само має використовувати розв’язаний хост сервісу, а не підказки лише з TXT.
- Закріплення TLS ніколи не має дозволяти оголошеному
gatewayTlsSha256перевизначати раніше збережений pin. - Вузли iOS/Android мають розглядати прямі підключення на основі виявлення як лише TLS і вимагати явного підтвердження користувача перед довірою до першого fingerprint.
Налагодження на macOS
Корисні вбудовані інструменти:-
Переглянути екземпляри:
-
Розв’язати один екземпляр (замініть
<instance>):
Налагодження в журналах Gateway
Gateway записує ротаційний файл журналу (друкується під час запуску якgateway log file: ...). Шукайте рядки bonjour:, особливо:
bonjour: advertise failed ...bonjour: suppressing ciao cancellation ...bonjour: ... name conflict resolved/hostname conflict resolvedbonjour: watchdog detected non-announced service ...bonjour: disabling advertiser after ... failed restarts ...
probing, announcing і свіжі перейменування через конфлікт як
стани в процесі виконання. Якщо сервіс ніколи не досягає announced, OpenClaw зрештою
перестворює advertiser і, після повторних помилок, вимикає Bonjour для цього
процесу Gateway замість нескінченного повторного оголошення.
Bonjour використовує системне ім’я хоста для оголошеного хоста .local, коли воно є
дійсною DNS-міткою. Якщо системне ім’я хоста містить пробіли, підкреслення або інший
недійсний символ DNS-мітки, OpenClaw повертається до openclaw.local. Установіть
OPENCLAW_MDNS_HOSTNAME=<name> перед запуском Gateway, коли вам потрібна
явна мітка хоста.
Налагодження на вузлі iOS
Вузол iOS використовуєNWBrowser, щоб виявляти _openclaw-gw._tcp.
Щоб зібрати журнали:
- Settings → Gateway → Advanced → Discovery Debug Logs
- Settings → Gateway → Advanced → Discovery Logs → відтворіть → Copy
Коли вмикати Bonjour
Bonjour автоматично запускається для запуску Gateway з порожньою конфігурацією на хостах macOS, тому що локальний застосунок і найближчі вузли iOS/Android часто покладаються на виявлення в тій самій LAN. Увімкніть Bonjour явно, коли автоматичне виявлення в тій самій LAN корисне на Linux, Windows або іншому хості не macOS:discovery.mdns.mode, щоб визначити, скільки метаданих TXT
публікувати. Той самий режим керує необов’язковими підказками TXT у записах wide-area DNS-SD.
Типовий режим — minimal; використовуйте full лише тоді, коли клієнтам потрібні підказки cliPath або
sshPort. Використовуйте off, щоб придушити багатоадресну передачу LAN без зміни
увімкнення plugin; wide-area DNS-SD усе ще може публікувати мінімальний beacon Gateway, коли
discovery.wideArea.enabled має значення true.
Коли вимикати Bonjour
Залишайте Bonjour вимкненим, коли багатоадресне оголошення в LAN непотрібне, недоступне або шкідливе. Типові випадки — сервери не macOS, мережа Docker bridge, WSL або мережева політика, що відкидає multicast mDNS. У цих середовищах Gateway і далі доступний через опубліковану URL-адресу, SSH, Tailnet або wide-area DNS-SD, але автоматичне виявлення в LAN ненадійне. Надавайте перевагу наявному перевизначенню середовища, коли проблема стосується розгортання:Підводні камені Docker
Вбудований Bonjour plugin автоматично вимикає багатоадресне оголошення LAN у виявлених контейнерах, колиOPENCLAW_DISABLE_BONJOUR не задано. Мережі Docker bridge
зазвичай не пересилають multicast mDNS (224.0.0.251:5353) між контейнером
і LAN, тому оголошення з контейнера рідко забезпечує роботу виявлення.
Важливі підводні камені:
- Bonjour автоматично запускається на хостах macOS і вмикається вручну в інших середовищах. Якщо залишити його вимкненим, це не зупиняє Gateway; це лише пропускає багатоадресне оголошення LAN.
- Вимкнення Bonjour не змінює
gateway.bind; Docker усе ще типово використовуєOPENCLAW_GATEWAY_BIND=lan, щоб опублікований порт хоста міг працювати. - Вимкнення Bonjour не вимикає wide-area DNS-SD. Використовуйте wide-area discovery або Tailnet, коли Gateway і вузол не в одній LAN.
- Повторне використання того самого
OPENCLAW_CONFIG_DIRпоза Docker не зберігає політику автоматичного вимкнення контейнера. - Установлюйте
OPENCLAW_DISABLE_BONJOUR=0лише для host networking, macvlan або іншої мережі, де multicast mDNS гарантовано проходить; установіть його в1, щоб примусово вимкнути.
Усунення несправностей вимкненого Bonjour
Якщо вузол більше не виявляє Gateway автоматично після налаштування Docker:-
Підтвердьте, чи Gateway працює в автоматичному, примусово ввімкненому або примусово вимкненому режимі:
-
Підтвердьте, що сам Gateway доступний через опублікований порт:
-
Використовуйте пряму ціль, коли Bonjour вимкнено:
- Control UI або локальні інструменти:
http://127.0.0.1:18789 - Клієнти LAN:
http://<gateway-host>:18789 - Клієнти між мережами: Tailnet MagicDNS, Tailnet IP, SSH-тунель або wide-area DNS-SD
- Control UI або локальні інструменти:
-
Якщо ви навмисно ввімкнули Bonjour plugin у Docker і примусово ввімкнули оголошення
за допомогою
OPENCLAW_DISABLE_BONJOUR=0, протестуйте multicast з хоста:Якщо перегляд порожній або журнали Gateway показують повторні скасування ciao watchdog, відновітьOPENCLAW_DISABLE_BONJOUR=1і використовуйте прямий або Tailnet маршрут.
Поширені режими відмови
- Bonjour не перетинає мережі: використовуйте Tailnet або SSH.
- Multicast заблоковано: деякі мережі Wi-Fi вимикають mDNS.
- Advertiser застряг у probing/announcing: хости із заблокованим multicast, container bridges, WSL або зміни інтерфейсів можуть залишити ciao advertiser у неоголошеному стані. OpenClaw повторює спробу кілька разів, а потім вимикає Bonjour для поточного процесу Gateway замість нескінченного перезапуску advertiser.
- Мережа Docker bridge: Bonjour автоматично вимикається у виявлених контейнерах.
Установлюйте
OPENCLAW_DISABLE_BONJOUR=0лише для host, macvlan або іншої мережі з підтримкою mDNS. - Сон / зміни інтерфейсів: macOS може тимчасово втратити результати mDNS; повторіть спробу.
- Перегляд працює, але розв’язання завершується помилкою: використовуйте прості імена машин (уникайте емодзі або пунктуації), потім перезапустіть Gateway. Ім’я екземпляра сервісу походить від імені хоста, тому надто складні імена можуть збивати з пантелику деякі resolver.
Екрановані імена екземплярів (\032)
Bonjour/DNS-SD часто екранує байти в іменах екземплярів сервісів як десяткові
послідовності \DDD (наприклад, пробіли стають \032).
- Це нормально на рівні протоколу.
- UI має декодувати для відображення (iOS використовує
BonjourEscapes.decode).
Увімкнення / вимкнення / конфігурація
- Хости macOS автоматично запускають вбудований Plugin виявлення локальної мережі за замовчуванням.
openclaw plugins enable bonjourвмикає вбудований Plugin виявлення локальної мережі на хостах, де його не ввімкнено за замовчуванням.openclaw plugins disable bonjourвимикає багатоадресне оголошення в локальній мережі, вимикаючи вбудований Plugin.OPENCLAW_DISABLE_BONJOUR=1вимикає багатоадресне оголошення в локальній мережі без зміни конфігурації Plugin; прийняті істинні значення:1,true,yesіon(застаріле:OPENCLAW_DISABLE_BONJOUR).OPENCLAW_DISABLE_BONJOUR=0примусово вмикає багатоадресне оголошення в локальній мережі, зокрема всередині виявлених контейнерів; прийняті хибні значення:0,false,noіoff.- Коли Plugin Bonjour увімкнено, а
OPENCLAW_DISABLE_BONJOURне задано, Bonjour оголошується на звичайних хостах і автоматично вимикається всередині виявлених контейнерів. gateway.bindу~/.openclaw/openclaw.jsonкерує режимом прив’язки Gateway.OPENCLAW_SSH_PORTперевизначає порт SSH, коли оголошуєтьсяsshPort(застаріле:OPENCLAW_SSH_PORT).OPENCLAW_TAILNET_DNSпублікує підказку MagicDNS у TXT, коли ввімкнено повний режим mDNS (застаріле:OPENCLAW_TAILNET_DNS).OPENCLAW_CLI_PATHперевизначає оголошений шлях CLI (застаріле:OPENCLAW_CLI_PATH).
Пов’язані документи
- Політика виявлення та вибір транспорту: Виявлення
- Сполучення Node + схвалення: Сполучення Gateway