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.
Bonjour- / mDNS-detectie
OpenClaw gebruikt Bonjour (mDNS / DNS‑SD) om een actieve Gateway (WebSocket-eindpunt) te detecteren. Multicast-browsen vanlocal. is alleen bedoeld als gemak op een LAN. De gebundelde bonjour
Plugin beheert LAN-advertising en is standaard ingeschakeld. Voor detectie over netwerken heen
kan hetzelfde baken ook worden gepubliceerd via een geconfigureerd wide-area DNS-SD-domein.
Detectie blijft op basis van best effort en vervangt geen connectiviteit op basis van SSH of Tailnet.
Wide-area Bonjour (Unicast DNS-SD) via Tailscale
Als de node en Gateway zich op verschillende netwerken bevinden, gaat multicast-mDNS niet over de grens heen. Je kunt dezelfde detectie-UX behouden door over te schakelen naar unicast DNS‑SD (“Wide‑Area Bonjour”) via Tailscale. Stappen op hoofdlijnen:- Draai een DNS-server op de Gateway-host (bereikbaar via Tailnet).
- Publiceer DNS‑SD-records voor
_openclaw-gw._tcponder een toegewezen zone (voorbeeld:openclaw.internal.). - Configureer Tailscale split DNS, zodat je gekozen domein voor clients (inclusief iOS) via die DNS-server wordt opgelost.
openclaw.internal. is slechts een voorbeeld.
iOS-/Android-nodes browsen zowel local. als je geconfigureerde wide-area domein.
Gateway-configuratie (aanbevolen)
Eenmalige DNS-serverconfiguratie (Gateway-host)
- alleen op poort 53 te luisteren op de Tailscale-interfaces van de Gateway
- je gekozen domein (voorbeeld:
openclaw.internal.) te bedienen vanuit~/.openclaw/dns/<domain>.db
Tailscale DNS-instellingen
In de Tailscale-beheerconsole:- Voeg een nameserver toe die verwijst naar het tailnet-IP van de Gateway (UDP/TCP 53).
- Voeg split DNS toe zodat je detectiedomein die nameserver gebruikt.
_openclaw-gw._tcp in je detectiedomein browsen zonder multicast.
Beveiliging van de Gateway-listener (aanbevolen)
De Gateway WS-poort (standaard18789) bindt standaard aan loopback. Voor LAN-/tailnet-
toegang moet je expliciet binden en authenticatie ingeschakeld houden.
Voor configuraties die alleen via tailnet werken:
- Stel
gateway.bind: "tailnet"in~/.openclaw/openclaw.jsonin. - Herstart de Gateway (of herstart de macOS-menubalkapp).
Wat adverteert
Alleen de Gateway adverteert_openclaw-gw._tcp. LAN-multicastadvertising wordt
geleverd door de gebundelde bonjour Plugin; wide-area DNS-SD-publicatie blijft
eigendom van de Gateway.
Servicetypen
_openclaw-gw._tcp— transportbaken van de Gateway (gebruikt door macOS-/iOS-/Android-nodes).
TXT-sleutels (niet-geheime hints)
De Gateway adverteert kleine niet-geheime hints om UI-flows handig te maken:role=gatewaydisplayName=<friendly name>lanHost=<hostname>.localgatewayPort=<port>(Gateway WS + HTTP)gatewayTls=1(alleen wanneer TLS is ingeschakeld)gatewayTlsSha256=<sha256>(alleen wanneer TLS is ingeschakeld en de fingerprint beschikbaar is)canvasPort=<port>(alleen wanneer de canvas-host is ingeschakeld; momenteel hetzelfde alsgatewayPort)transport=gatewaytailnetDns=<magicdns>(alleen mDNS volledige modus, optionele hint wanneer Tailnet beschikbaar is)sshPort=<port>(alleen mDNS volledige modus; wide-area DNS-SD kan dit weglaten)cliPath=<path>(alleen mDNS volledige modus; wide-area DNS-SD schrijft dit nog steeds als hint voor installatie op afstand)
- Bonjour-/mDNS-TXT-records zijn niet geauthenticeerd. Clients mogen TXT niet als gezaghebbende routering beschouwen.
- Clients moeten routeren met het opgeloste service-eindpunt (SRV + A/AAAA). Behandel
lanHost,tailnetDns,gatewayPortengatewayTlsSha256alleen als hints. - Automatisch SSH-targeten moet eveneens de opgeloste servicehost gebruiken, niet uitsluitend TXT-hints.
- TLS-pinning mag nooit toestaan dat een geadverteerde
gatewayTlsSha256een eerder opgeslagen pin overschrijft. - iOS-/Android-nodes moeten directe verbindingen op basis van detectie als alleen TLS behandelen en expliciete gebruikersbevestiging vereisen voordat een fingerprint voor de eerste keer wordt vertrouwd.
Debuggen op macOS
Handige ingebouwde tools:-
Instanties browsen:
-
Eén instantie oplossen (vervang
<instance>):
Debuggen in Gateway-logs
De Gateway schrijft een roterend logbestand (bij het opstarten afgedrukt alsgateway log file: ...). Zoek naar bonjour:-regels, vooral:
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 ...
.local-host wanneer dit een
geldig DNS-label is. Als de systeemhostnaam spaties, underscores of een ander
ongeldig DNS-labelteken bevat, valt OpenClaw terug op openclaw.local. Stel
OPENCLAW_MDNS_HOSTNAME=<name> in voordat je de Gateway start wanneer je een
expliciet hostlabel nodig hebt.
Debuggen op iOS-node
De iOS-node gebruiktNWBrowser om _openclaw-gw._tcp te detecteren.
Logs vastleggen:
- Instellingen → Gateway → Geavanceerd → Debuglogs voor detectie
- Instellingen → Gateway → Geavanceerd → Detectielogs → reproduceren → Kopiëren
Wanneer Bonjour uitschakelen
Schakel Bonjour alleen uit wanneer LAN-multicastadvertising niet beschikbaar of schadelijk is. Het gebruikelijke geval is een Gateway die achter Docker bridge networking, WSL of een netwerkbeleid draait dat mDNS-multicast blokkeert. In die omgevingen is de Gateway nog steeds bereikbaar via de gepubliceerde URL, SSH, Tailnet of wide-area DNS-SD, maar LAN-autodetectie is niet betrouwbaar. Gebruik bij voorkeur de bestaande omgevingsoverschrijving wanneer het probleem implementatiegebonden is:Docker-valkuilen
De gebundelde Bonjour-Plugin schakelt LAN-multicastadvertising automatisch uit in gedetecteerde containers wanneerOPENCLAW_DISABLE_BONJOUR niet is ingesteld. Docker bridge networks
sturen mDNS-multicast (224.0.0.251:5353) meestal niet door tussen de container
en het LAN, waardoor advertising vanuit de container zelden detectie laat werken.
Belangrijke valkuilen:
- Bonjour uitschakelen stopt de Gateway niet. Het stopt alleen LAN-multicast- advertising.
- Bonjour uitschakelen wijzigt
gateway.bindniet; Docker gebruikt nog steeds standaardOPENCLAW_GATEWAY_BIND=lan, zodat de gepubliceerde hostpoort kan werken. - Bonjour uitschakelen schakelt wide-area DNS-SD niet uit. Gebruik wide-area detectie of Tailnet wanneer de Gateway en node zich niet op hetzelfde LAN bevinden.
- Hetzelfde
OPENCLAW_CONFIG_DIRbuiten Docker hergebruiken bewaart het beleid voor automatisch uitschakelen van containers niet. - Stel
OPENCLAW_DISABLE_BONJOUR=0alleen in voor host networking, macvlan of een ander netwerk waarvan bekend is dat mDNS-multicast wordt doorgelaten; stel het in op1om uitschakelen af te dwingen.
Problemen met uitgeschakelde Bonjour oplossen
Als een node de Gateway niet meer automatisch detecteert na Docker-configuratie:-
Bevestig of de Gateway in automatische, geforceerd ingeschakelde of geforceerd uitgeschakelde modus draait:
-
Bevestig dat de Gateway zelf bereikbaar is via de gepubliceerde poort:
-
Gebruik een direct doel wanneer Bonjour is uitgeschakeld:
- Control UI of lokale tools:
http://127.0.0.1:18789 - LAN-clients:
http://<gateway-host>:18789 - Clients over netwerken heen: Tailnet MagicDNS, Tailnet-IP, SSH-tunnel of wide-area DNS-SD
- Control UI of lokale tools:
-
Als je Bonjour bewust in Docker hebt ingeschakeld met
OPENCLAW_DISABLE_BONJOUR=0, test dan multicast vanaf de host:Als browsen leeg is of de Gateway-logs herhaalde ciao-watchdogannuleringen tonen, herstel danOPENCLAW_DISABLE_BONJOUR=1en gebruik een directe route of Tailnet-route.
Veelvoorkomende foutmodi
- Bonjour gaat niet over netwerken heen: gebruik Tailnet of SSH.
- Multicast geblokkeerd: sommige Wi‑Fi-netwerken schakelen mDNS uit.
- Advertiser blijft hangen in probing/announcing: hosts met geblokkeerde multicast, container-bridges, WSL of interfacewisselingen kunnen de ciao-advertiser in een niet-aangekondigde status achterlaten. OpenClaw probeert het een paar keer opnieuw en schakelt Bonjour vervolgens uit voor het huidige Gateway-proces in plaats van de advertiser eindeloos opnieuw te starten.
- Docker bridge networking: Bonjour schakelt zichzelf automatisch uit in gedetecteerde containers.
Stel
OPENCLAW_DISABLE_BONJOUR=0alleen in voor host, macvlan of een ander mDNS-geschikt netwerk. - Slaapstand / interfacewisselingen: macOS kan mDNS-resultaten tijdelijk laten wegvallen; probeer opnieuw.
- Browsen werkt maar oplossen mislukt: houd machinenamen eenvoudig (vermijd emoji of interpunctie) en herstart daarna de Gateway. De service-instantienaam wordt afgeleid van de hostnaam, dus te complexe namen kunnen sommige resolvers in verwarring brengen.
Geëscapete instantienamen (\032)
Bonjour/DNS‑SD escapt bytes in service-instantienamen vaak als decimale \DDD-
reeksen (spaties worden bijvoorbeeld \032).
- Dit is normaal op protocolniveau.
- UI’s moeten decoderen voor weergave (iOS gebruikt
BonjourEscapes.decode).
Uitschakelen / configuratie
openclaw plugins disable bonjourschakelt LAN-multicastadvertising uit door de gebundelde Plugin uit te schakelen.openclaw plugins enable bonjourherstelt de standaard LAN-detectie-Plugin.OPENCLAW_DISABLE_BONJOUR=1schakelt LAN-multicastadvertising uit zonder de Plugin-configuratie te wijzigen; geaccepteerde truthy waarden zijn1,true,yesenon(legacy:OPENCLAW_DISABLE_BONJOUR).OPENCLAW_DISABLE_BONJOUR=0dwingt LAN-multicastadvertising af, ook binnen gedetecteerde containers; geaccepteerde falsy waarden zijn0,false,noenoff.- Wanneer
OPENCLAW_DISABLE_BONJOURniet is ingesteld, adverteert Bonjour op normale hosts en schakelt het zichzelf automatisch uit binnen gedetecteerde containers. gateway.bindin~/.openclaw/openclaw.jsonregelt de bindmodus van de Gateway.OPENCLAW_SSH_PORToverschrijft de SSH-poort wanneersshPortwordt geadverteerd (legacy:OPENCLAW_SSH_PORT).OPENCLAW_TAILNET_DNSpubliceert een MagicDNS-hint in TXT wanneer mDNS volledige modus is ingeschakeld (legacy:OPENCLAW_TAILNET_DNS).OPENCLAW_CLI_PATHoverschrijft het geadverteerde CLI-pad (legacy:OPENCLAW_CLI_PATH).
Gerelateerde documentatie
- Detectiebeleid en transportselectie: Detectie
- Node-koppeling + goedkeuringen: Gateway-koppeling