Naar hoofdinhoud gaan

Documentation Index

Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

OpenClaw kan Bonjour (mDNS / DNS-SD) gebruiken om een actieve Gateway (WebSocket-eindpunt) te ontdekken. Multicast local.-browsen is een gemakfunctie die alleen voor LAN is. De meegeleverde bonjour plugin beheert LAN-advertering. Deze start automatisch op macOS-hosts en is opt-in op Linux, Windows en gecontaineriseerde Gateway-implementaties. Voor ontdekking over netwerken heen kan dezelfde beacon ook worden gepubliceerd via een geconfigureerd wide-area DNS-SD-domein. Ontdekking blijft best-effort en vervangt niet SSH of connectiviteit op basis van Tailnet.

Wide-area Bonjour (Unicast DNS-SD) via Tailscale

Als de node en de gateway zich op verschillende netwerken bevinden, gaat multicast-mDNS niet over de grens heen. Je kunt dezelfde ontdekkings-UX behouden door over te schakelen naar unicast DNS-SD (“Wide-Area Bonjour”) via Tailscale. Stappen op hoofdlijnen:
  1. Voer een DNS-server uit op de gateway-host (bereikbaar via Tailnet).
  2. Publiceer DNS-SD-records voor _openclaw-gw._tcp onder een toegewezen zone (voorbeeld: openclaw.internal.).
  3. Configureer Tailscale split DNS zodat je gekozen domein voor clients (inclusief iOS) via die DNS-server wordt opgelost.
OpenClaw ondersteunt elk ontdekkingsdomein; openclaw.internal. is slechts een voorbeeld. iOS-/Android-nodes browsen zowel local. als je geconfigureerde wide-area-domein.

Gateway-configuratie (aanbevolen)

{
  gateway: { bind: "tailnet" }, // tailnet-only (recommended)
  discovery: { wideArea: { enabled: true } }, // enables wide-area DNS-SD publishing
}

Eenmalige DNS-serverinstallatie (gateway-host)

openclaw dns setup --apply
Dit installeert CoreDNS en configureert het om:
  • alleen op poort 53 te luisteren op de Tailscale-interfaces van de gateway
  • je gekozen domein (voorbeeld: openclaw.internal.) te serveren vanuit ~/.openclaw/dns/<domain>.db
Valideer vanaf een met tailnet verbonden machine:
dns-sd -B _openclaw-gw._tcp openclaw.internal.
dig @<TAILNET_IPV4> -p 53 _openclaw-gw._tcp.openclaw.internal PTR +short

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 ontdekkingsdomein die nameserver gebruikt.
Zodra clients tailnet-DNS accepteren, kunnen iOS-nodes en CLI-ontdekking _openclaw-gw._tcp in je ontdekkingsdomein browsen zonder multicast.

Beveiliging van de Gateway-listener (aanbevolen)

De Gateway-WS-poort (standaard 18789) bindt standaard aan loopback. Bind expliciet voor LAN-/tailnet- toegang en laat auth ingeschakeld. Voor tailnet-only-configuraties:
  • Stel gateway.bind: "tailnet" in ~/.openclaw/openclaw.json in.
  • Herstart de Gateway (of herstart de macOS-menubalkapp).

Wat adverteert

Alleen de Gateway adverteert _openclaw-gw._tcp. LAN-multicastadvertering wordt geleverd door de meegeleverde bonjour plugin wanneer de plugin is ingeschakeld; wide-area DNS-SD-publicatie blijft eigendom van de Gateway.

Servicetypen

  • _openclaw-gw._tcp - gateway-transportbeacon (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=gateway
  • displayName=<friendly name>
  • lanHost=<hostname>.local
  • gatewayPort=<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 als gatewayPort)
  • transport=gateway
  • tailnetDns=<magicdns> (alleen volledige mDNS-modus, optionele hint wanneer Tailnet beschikbaar is)
  • sshPort=<port> (alleen volledige modus; weggelaten in minimale en uitgeschakelde modi)
  • cliPath=<path> (alleen volledige modus; weggelaten in minimale en uitgeschakelde modi)
Beveiligingsopmerkingen:
  • Bonjour-/mDNS-TXT-records zijn niet geauthenticeerd. Clients mogen TXT niet behandelen als gezaghebbende routering.
  • Clients moeten routeren met het opgeloste service-eindpunt (SRV + A/AAAA). Behandel lanHost, tailnetDns, gatewayPort en gatewayTlsSha256 alleen als hints.
  • Automatische SSH-targeting moet eveneens de opgeloste service-host gebruiken, niet alleen TXT-hints.
  • TLS-pinning mag nooit toestaan dat een geadverteerde gatewayTlsSha256 een eerder opgeslagen pin overschrijft.
  • iOS-/Android-nodes moeten directe verbindingen op basis van ontdekking behandelen als alleen TLS en expliciete gebruikersbevestiging vereisen voordat een eerste fingerprint wordt vertrouwd.

Debuggen op macOS

Handige ingebouwde tools:
  • Instanties browsen:
    dns-sd -B _openclaw-gw._tcp local.
    
  • Eén instantie oplossen (vervang <instance>):
    dns-sd -L "<instance>" _openclaw-gw._tcp local.
    
Als browsen werkt maar oplossen mislukt, heb je meestal te maken met een LAN-beleid of een mDNS-resolverprobleem.

Debuggen in Gateway-logs

De Gateway schrijft een roterend logbestand (bij het opstarten afgedrukt als gateway log file: ...). Zoek naar bonjour:-regels, vooral:
  • bonjour: advertise failed ...
  • bonjour: suppressing ciao cancellation ...
  • bonjour: ... name conflict resolved / hostname conflict resolved
  • bonjour: watchdog detected non-announced service ...
  • bonjour: disabling advertiser after ... failed restarts ...
De watchdog behandelt actieve probing, announcing en recente conflict-hernoemingen als lopende statussen. Als de service nooit announced bereikt, maakt OpenClaw uiteindelijk de advertiser opnieuw aan en schakelt het, na herhaalde fouten, Bonjour uit voor dat Gateway-proces in plaats van eindeloos opnieuw te adverteren. Bonjour gebruikt de systeemhostnaam voor de geadverteerde .local-host wanneer die 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 gebruikt NWBrowser om _openclaw-gw._tcp te ontdekken. Logs vastleggen:
  • Instellingen → Gateway → Geavanceerd → Discovery Debug Logs
  • Instellingen → Gateway → Geavanceerd → Discovery Logs → reproduceer → Kopieer
De log bevat browserstatusovergangen en wijzigingen in de resultatenset.

Wanneer Bonjour inschakelen

Bonjour start automatisch voor het opstarten van de Gateway met lege configuratie op macOS-hosts omdat de lokale app en nabije iOS-/Android-nodes vaak afhankelijk zijn van ontdekking op hetzelfde LAN. Schakel Bonjour expliciet in wanneer automatische ontdekking op hetzelfde LAN nuttig is op Linux, Windows of een andere niet-macOS-host:
openclaw plugins enable bonjour
Wanneer ingeschakeld, gebruikt Bonjour discovery.mdns.mode om te bepalen hoeveel TXT-metadata moet worden gepubliceerd. Dezelfde modus beheert optionele TXT-hints in wide-area DNS-SD-records. De standaardmodus is minimal; gebruik full alleen wanneer clients cliPath- of sshPort-hints nodig hebben. Gebruik off om LAN-multicast te onderdrukken zonder de plugin- inschakeling te wijzigen; wide-area DNS-SD kan nog steeds de minimale Gateway-beacon publiceren wanneer discovery.wideArea.enabled waar is.

Wanneer Bonjour uitschakelen

Laat Bonjour uitgeschakeld wanneer LAN-multicastadvertering onnodig, niet beschikbaar of schadelijk is. Veelvoorkomende gevallen zijn niet-macOS-servers, Docker bridge-netwerken, WSL of een netwerkbeleid 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 automatische LAN-ontdekking is niet betrouwbaar. Geef de voorkeur aan de bestaande omgevings-override wanneer het probleem implementatiegebonden is:
OPENCLAW_DISABLE_BONJOUR=1
Dat schakelt LAN-multicastadvertering uit zonder de pluginconfiguratie te wijzigen. Het is veilig voor Docker-images, servicebestanden, startscripts en eenmalig debuggen, omdat de instelling verdwijnt wanneer de omgeving dat doet. Gebruik pluginconfiguratie wanneer je de meegeleverde LAN- ontdekkingsplugin bewust wilt uitschakelen voor die OpenClaw-configuratie:
openclaw plugins disable bonjour

Docker-valkuilen

De meegeleverde Bonjour-plugin schakelt LAN-multicastadvertering automatisch uit in gedetecteerde containers wanneer OPENCLAW_DISABLE_BONJOUR niet is ingesteld. Docker bridge-netwerken sturen mDNS-multicast (224.0.0.251:5353) meestal niet door tussen de container en het LAN, dus adverteren vanuit de container laat ontdekking zelden werken. Belangrijke valkuilen:
  • Bonjour start automatisch op macOS-hosts en is elders opt-in. Het uitgeschakeld laten stopt de Gateway niet; het slaat alleen LAN-multicastadvertering over.
  • Bonjour uitschakelen wijzigt gateway.bind niet; Docker gebruikt nog steeds standaard OPENCLAW_GATEWAY_BIND=lan zodat de gepubliceerde hostpoort kan werken.
  • Bonjour uitschakelen schakelt wide-area DNS-SD niet uit. Gebruik wide-area-ontdekking of Tailnet wanneer de Gateway en node zich niet op hetzelfde LAN bevinden.
  • Het opnieuw gebruiken van dezelfde OPENCLAW_CONFIG_DIR buiten Docker bewaart het automatische uitschakelbeleid van de container niet.
  • Stel OPENCLAW_DISABLE_BONJOUR=0 alleen in voor host networking, macvlan of een ander netwerk waarvan bekend is dat mDNS-multicast erdoorheen komt; stel het in op 1 om geforceerd uit te schakelen.

Problemen oplossen met uitgeschakelde Bonjour

Als een node de Gateway niet meer automatisch ontdekt na Docker-installatie:
  1. Controleer of de Gateway draait in automatische, geforceerd ingeschakelde of geforceerd uitgeschakelde modus:
    docker compose config | grep OPENCLAW_DISABLE_BONJOUR
    
  2. Controleer of de Gateway zelf bereikbaar is via de gepubliceerde poort:
    curl -fsS http://127.0.0.1:18789/healthz
    
  3. Gebruik een direct target 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
  4. Als je de Bonjour-plugin bewust hebt ingeschakeld in Docker en adverteren hebt geforceerd met OPENCLAW_DISABLE_BONJOUR=0, test multicast vanaf de host:
    dns-sd -B _openclaw-gw._tcp local.
    
    Als browsen leeg is of de Gateway-logs herhaalde ciao-watchdog- annuleringen tonen, herstel dan OPENCLAW_DISABLE_BONJOUR=1 en gebruik een directe 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 interfacefluctuaties kunnen de ciao-advertiser in een niet-aangekondigde status achterlaten. OpenClaw probeert het een paar keer opnieuw en schakelt daarna Bonjour uit voor het huidige Gateway-proces in plaats van de advertiser eindeloos opnieuw te starten.
  • Docker bridge networking: Bonjour schakelt automatisch uit in gedetecteerde containers. Stel OPENCLAW_DISABLE_BONJOUR=0 alleen in voor host, macvlan of een ander mDNS-geschikt netwerk.
  • Slaapstand / interfacefluctuaties: macOS kan mDNS-resultaten tijdelijk laten wegvallen; probeer opnieuw.
  • Browsen werkt maar oplossen mislukt: houd machinenamen eenvoudig (vermijd emoji’s of interpunctie) en herstart daarna de Gateway. De service-instantienaam wordt afgeleid van de hostnaam, dus te complexe namen kunnen sommige resolvers verwarren.

Geëscapete instantienamen (\032)

Bonjour/DNS-SD escapet bytes in service-instantienamen vaak als decimale \DDD- reeksen (bijvoorbeeld spaties worden \032).
  • Dit is normaal op protocolniveau.
  • UI’s moeten decoderen voor weergave (iOS gebruikt BonjourEscapes.decode).

Inschakelen / uitschakelen / configuratie

  • macOS-hosts starten standaard automatisch de gebundelde LAN-detectie-Plugin.
  • openclaw plugins enable bonjour schakelt de gebundelde LAN-detectie-Plugin in op hosts waar deze niet standaard is ingeschakeld.
  • openclaw plugins disable bonjour schakelt LAN-multicastadvertising uit door de gebundelde Plugin uit te schakelen.
  • OPENCLAW_DISABLE_BONJOUR=1 schakelt LAN-multicastadvertising uit zonder de Plugin-configuratie te wijzigen; geaccepteerde waarheidswaarden zijn 1, true, yes en on (verouderd: OPENCLAW_DISABLE_BONJOUR).
  • OPENCLAW_DISABLE_BONJOUR=0 dwingt LAN-multicastadvertising af, ook binnen gedetecteerde containers; geaccepteerde onwaarheidswaarden zijn 0, false, no en off.
  • Wanneer de Bonjour-Plugin is ingeschakeld en OPENCLAW_DISABLE_BONJOUR niet is ingesteld, adverteert Bonjour op normale hosts en schakelt het zichzelf automatisch uit binnen gedetecteerde containers.
  • gateway.bind in ~/.openclaw/openclaw.json bepaalt de bindmodus van de Gateway.
  • OPENCLAW_SSH_PORT overschrijft de SSH-poort wanneer sshPort wordt geadverteerd (verouderd: OPENCLAW_SSH_PORT).
  • OPENCLAW_TAILNET_DNS publiceert een MagicDNS-hint in TXT wanneer de volledige mDNS-modus is ingeschakeld (verouderd: OPENCLAW_TAILNET_DNS).
  • OPENCLAW_CLI_PATH overschrijft het geadverteerde CLI-pad (verouderd: OPENCLAW_CLI_PATH).

Gerelateerde documentatie