O OpenClaw pode usar Bonjour (mDNS / DNS-SD) para descobrir um Gateway ativo (endpoint WebSocket). A navegação multicastDocumentation 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. é uma conveniência apenas de LAN. O plugin bonjour
incluído é responsável pela publicidade na LAN. Ele inicia automaticamente em hosts macOS e é opt-in em
Linux, Windows e implantações de Gateway em contêiner. Para descoberta entre redes, o mesmo
beacon também pode ser publicado por meio de um domínio DNS-SD de ampla área configurado. A descoberta
continua sendo de melhor esforço e não substitui conectividade baseada em SSH ou Tailnet.
Bonjour de ampla área (DNS-SD unicast) sobre Tailscale
Se o nó e o gateway estiverem em redes diferentes, o mDNS multicast não atravessará a fronteira. Você pode manter a mesma UX de descoberta mudando para DNS-SD unicast (“Bonjour de ampla área”) sobre Tailscale. Etapas em alto nível:- Execute um servidor DNS no host do gateway (alcançável pela Tailnet).
- Publique registros DNS-SD para
_openclaw-gw._tcpem uma zona dedicada (exemplo:openclaw.internal.). - Configure split DNS no Tailscale para que seu domínio escolhido seja resolvido por esse servidor DNS para clientes (incluindo iOS).
openclaw.internal. é apenas um exemplo.
Nós iOS/Android navegam tanto por local. quanto pelo seu domínio de ampla área configurado.
Configuração do Gateway (recomendado)
Configuração única do servidor DNS (host do gateway)
- escutar na porta 53 apenas nas interfaces Tailscale do gateway
- servir seu domínio escolhido (exemplo:
openclaw.internal.) a partir de~/.openclaw/dns/<domain>.db
Configurações de DNS do Tailscale
No console de administração do Tailscale:- Adicione um nameserver apontando para o IP tailnet do gateway (UDP/TCP 53).
- Adicione split DNS para que seu domínio de descoberta use esse nameserver.
_openclaw-gw._tcp no seu domínio de descoberta sem multicast.
Segurança do listener do Gateway (recomendado)
A porta WS do Gateway (padrão18789) se vincula ao loopback por padrão. Para acesso por LAN/tailnet,
vincule explicitamente e mantenha a autenticação habilitada.
Para configurações somente tailnet:
- Defina
gateway.bind: "tailnet"em~/.openclaw/openclaw.json. - Reinicie o Gateway (ou reinicie o app da barra de menus do macOS).
O que anuncia
Somente o Gateway anuncia_openclaw-gw._tcp. A publicidade multicast na LAN é
fornecida pelo plugin bonjour incluído quando o plugin está habilitado; a
publicação DNS-SD de ampla área continua sendo responsabilidade do Gateway.
Tipos de serviço
_openclaw-gw._tcp- beacon de transporte do gateway (usado por nós macOS/iOS/Android).
Chaves TXT (dicas não secretas)
O Gateway anuncia pequenas dicas não secretas para tornar fluxos de UI convenientes:role=gatewaydisplayName=<friendly name>lanHost=<hostname>.localgatewayPort=<port>(Gateway WS + HTTP)gatewayTls=1(somente quando TLS está habilitado)gatewayTlsSha256=<sha256>(somente quando TLS está habilitado e a impressão digital está disponível)canvasPort=<port>(somente quando o host de canvas está habilitado; atualmente igual agatewayPort)transport=gatewaytailnetDns=<magicdns>(somente modo mDNS completo, dica opcional quando Tailnet está disponível)sshPort=<port>(somente modo completo; omitido nos modos mínimo e desligado)cliPath=<path>(somente modo completo; omitido nos modos mínimo e desligado)
- Registros TXT Bonjour/mDNS não são autenticados. Clientes não devem tratar TXT como roteamento autoritativo.
- Clientes devem rotear usando o endpoint de serviço resolvido (SRV + A/AAAA). Trate
lanHost,tailnetDns,gatewayPortegatewayTlsSha256apenas como dicas. - O direcionamento automático por SSH também deve usar o host de serviço resolvido, não dicas apenas de TXT.
- A fixação de TLS nunca deve permitir que um
gatewayTlsSha256anunciado substitua um pin armazenado anteriormente. - Nós iOS/Android devem tratar conexões diretas baseadas em descoberta como somente TLS e exigir confirmação explícita do usuário antes de confiar em uma impressão digital pela primeira vez.
Depuração no macOS
Ferramentas integradas úteis:-
Navegar por instâncias:
-
Resolver uma instância (substitua
<instance>):
Depuração nos logs do Gateway
O Gateway grava um arquivo de log rotativo (impresso na inicialização comogateway log file: ...). Procure linhas bonjour:, especialmente:
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 ativos e renomeações recentes por conflito como
estados em andamento. Se o serviço nunca chegar a announced, o OpenClaw eventualmente
recria o anunciante e, após falhas repetidas, desabilita Bonjour para esse
processo do Gateway em vez de anunciar novamente para sempre.
Bonjour usa o nome de host do sistema para o host .local anunciado quando ele é um
rótulo DNS válido. Se o nome de host do sistema contiver espaços, sublinhados ou outro
caractere inválido para rótulo DNS, o OpenClaw volta para openclaw.local. Defina
OPENCLAW_MDNS_HOSTNAME=<name> antes de iniciar o Gateway quando precisar de um
rótulo de host explícito.
Depuração no nó iOS
O nó iOS usaNWBrowser para descobrir _openclaw-gw._tcp.
Para capturar logs:
- Settings → Gateway → Advanced → Logs de depuração de descoberta
- Settings → Gateway → Advanced → Logs de descoberta → reproduzir → Copiar
Quando habilitar Bonjour
Bonjour inicia automaticamente na inicialização do Gateway com configuração vazia em hosts macOS porque o app local e nós iOS/Android próximos costumam depender da descoberta na mesma LAN. Habilite Bonjour explicitamente quando a descoberta automática na mesma LAN for útil em Linux, Windows ou outro host não macOS:discovery.mdns.mode para decidir quantos metadados TXT
publicar. O mesmo modo controla dicas TXT opcionais em registros DNS-SD de ampla área.
O modo padrão é minimal; use full somente quando os clientes precisarem das dicas cliPath ou
sshPort. Use off para suprimir multicast na LAN sem alterar a habilitação do plugin;
DNS-SD de ampla área ainda pode publicar o beacon mínimo do Gateway quando
discovery.wideArea.enabled é true.
Quando desabilitar Bonjour
Deixe Bonjour desabilitado quando a publicidade multicast na LAN for desnecessária, indisponível ou prejudicial. Os casos comuns são servidores não macOS, rede bridge do Docker, WSL ou uma política de rede que descarta multicast mDNS. Nesses ambientes, o Gateway ainda é alcançável por sua URL publicada, SSH, Tailnet ou DNS-SD de ampla área, mas a descoberta automática na LAN não é confiável. Prefira a substituição de ambiente existente quando o problema estiver no escopo da implantação:Pegadinhas do Docker
O plugin Bonjour incluído desabilita automaticamente a publicidade multicast na LAN em contêineres detectados quandoOPENCLAW_DISABLE_BONJOUR não está definido. Redes bridge do Docker
geralmente não encaminham multicast mDNS (224.0.0.251:5353) entre o contêiner
e a LAN, então anunciar a partir do contêiner raramente faz a descoberta funcionar.
Pegadinhas importantes:
- Bonjour inicia automaticamente em hosts macOS e é opt-in em outros lugares. Deixá-lo desabilitado não interrompe o Gateway; apenas pula a publicidade multicast na LAN.
- Desabilitar Bonjour não altera
gateway.bind; Docker ainda usa como padrãoOPENCLAW_GATEWAY_BIND=lanpara que a porta publicada do host possa funcionar. - Desabilitar Bonjour não desabilita DNS-SD de ampla área. Use descoberta de ampla área ou Tailnet quando o Gateway e o nó não estiverem na mesma LAN.
- Reutilizar o mesmo
OPENCLAW_CONFIG_DIRfora do Docker não persiste a política de desabilitação automática do contêiner. - Defina
OPENCLAW_DISABLE_BONJOUR=0somente para rede do host, macvlan ou outra rede em que se saiba que multicast mDNS passa; defina como1para forçar a desabilitação.
Solução de problemas de Bonjour desabilitado
Se um nó não descobre mais automaticamente o Gateway após a configuração do Docker:-
Confirme se o Gateway está em modo automático, forçado ligado ou forçado desligado:
-
Confirme que o próprio Gateway está alcançável pela porta publicada:
-
Use um destino direto quando Bonjour estiver desabilitado:
- UI de controle ou ferramentas locais:
http://127.0.0.1:18789 - Clientes LAN:
http://<gateway-host>:18789 - Clientes entre redes: Tailnet MagicDNS, IP Tailnet, túnel SSH ou DNS-SD de ampla área
- UI de controle ou ferramentas locais:
-
Se você habilitou deliberadamente o plugin Bonjour no Docker e forçou a publicidade
com
OPENCLAW_DISABLE_BONJOUR=0, teste multicast a partir do host:Se a navegação estiver vazia ou os logs do Gateway mostrarem cancelamentos repetidos do watchdog ciao, restaureOPENCLAW_DISABLE_BONJOUR=1e use uma rota direta ou Tailnet.
Modos de falha comuns
- Bonjour não atravessa redes: use Tailnet ou SSH.
- Multicast bloqueado: algumas redes Wi-Fi desabilitam mDNS.
- Anunciante preso em probing/announcing: hosts com multicast bloqueado, bridges de contêiner, WSL ou oscilação de interface podem deixar o anunciante ciao em um estado não anunciado. O OpenClaw tenta novamente algumas vezes e então desabilita Bonjour para o processo atual do Gateway em vez de reiniciar o anunciante para sempre.
- Rede bridge do Docker: Bonjour desabilita automaticamente em contêineres detectados.
Defina
OPENCLAW_DISABLE_BONJOUR=0somente para host, macvlan ou outra rede compatível com mDNS. - Suspensão / oscilação de interface: o macOS pode descartar temporariamente resultados mDNS; tente novamente.
- Navegação funciona, mas resolução falha: mantenha nomes de máquinas simples (evite emojis ou pontuação) e então reinicie o Gateway. O nome da instância de serviço deriva do nome do host, então nomes complexos demais podem confundir alguns resolvedores.
Nomes de instância escapados (\032)
Bonjour/DNS-SD frequentemente escapa bytes em nomes de instância de serviço como sequências
decimais \DDD (por exemplo, espaços viram \032).
- Isso é normal no nível do protocolo.
- UIs devem decodificar para exibição (iOS usa
BonjourEscapes.decode).
Habilitação / desabilitação / configuração
- Hosts macOS iniciam automaticamente o Plugin de descoberta LAN incluído por padrão.
openclaw plugins enable bonjourhabilita o Plugin de descoberta LAN incluído em hosts onde ele não é habilitado por padrão.openclaw plugins disable bonjourdesabilita a divulgação multicast LAN ao desabilitar o Plugin incluído.OPENCLAW_DISABLE_BONJOUR=1desabilita a divulgação multicast LAN sem alterar a configuração do Plugin; os valores truthy aceitos são1,true,yeseon(legado:OPENCLAW_DISABLE_BONJOUR).OPENCLAW_DISABLE_BONJOUR=0força a divulgação multicast LAN a ficar ativada, inclusive dentro de contêineres detectados; os valores falsy aceitos são0,false,noeoff.- Quando o Plugin Bonjour está habilitado e
OPENCLAW_DISABLE_BONJOURnão está definido, Bonjour divulga em hosts normais e se desabilita automaticamente dentro de contêineres detectados. gateway.bindem~/.openclaw/openclaw.jsoncontrola o modo de vínculo do Gateway.OPENCLAW_SSH_PORTsubstitui a porta SSH quandosshPorté divulgada (legado:OPENCLAW_SSH_PORT).OPENCLAW_TAILNET_DNSpublica uma dica MagicDNS em TXT quando o modo completo de mDNS está habilitado (legado:OPENCLAW_TAILNET_DNS).OPENCLAW_CLI_PATHsubstitui o caminho da CLI divulgado (legado:OPENCLAW_CLI_PATH).
Documentação relacionada
- Política de descoberta e seleção de transporte: Descoberta
- Emparelhamento de Node + aprovações: Emparelhamento do Gateway