Bonjour / mDNS-Erkennung
OpenClaw verwendet Bonjour (mDNS / DNS‑SD) als reine LAN‑Komfortfunktion, um einen aktiven Gateway (WebSocket-Endpunkt) zu erkennen. Dies ist Best‑Effort und ersetzt nicht SSH oder Tailnet‑basierte Konnektivität.Weitbereichs‑Bonjour (Unicast DNS‑SD) über Tailscale
Wenn sich Node und Gateway in unterschiedlichen Netzwerken befinden, überschreitet multicast‑mDNS die Netzwerkgrenze nicht. Sie können die gleiche Discovery‑UX beibehalten, indem Sie auf Unicast DNS‑SD („Wide‑Area Bonjour“) über Tailscale umstellen. Hochwertige Schritte:- Betreiben Sie einen DNS‑Server auf dem Gateway‑Host (über das Tailnet erreichbar).
- Veröffentlichen Sie DNS‑SD‑Records für
_openclaw-gw._tcpunter einer dedizierten Zone (Beispiel:openclaw.internal.). - Konfigurieren Sie Tailscale Split DNS, sodass Ihre gewählte Domain für Clients (einschließlich iOS) über diesen DNS‑Server aufgelöst wird.
openclaw.internal. ist nur ein Beispiel.
iOS/Android‑Nodes durchsuchen sowohl local. als auch Ihre konfigurierte
Weitbereichs‑Domain.
Gateway‑Konfiguration (empfohlen)
Einmalige DNS‑Server‑Einrichtung (Gateway‑Host)
- auf Port 53 nur auf den Tailscale‑Interfaces des Gateways gelauscht wird
- Ihre gewählte Domain (Beispiel:
openclaw.internal.) aus~/.openclaw/dns/<domain>.dbbedient wird
Tailscale‑DNS‑Einstellungen
In der Tailscale‑Admin‑Konsole:- Fügen Sie einen Nameserver hinzu, der auf die Tailnet‑IP des Gateways zeigt (UDP/TCP 53).
- Fügen Sie Split DNS hinzu, sodass Ihre Discovery‑Domain diesen Nameserver verwendet.
_openclaw-gw._tcp in Ihrer Discovery‑Domain ohne Multicast durchsuchen.
Sicherheit des Gateway‑Listeners (empfohlen)
Der Gateway‑WS‑Port (Standard18789) bindet standardmäßig an Loopback. Für
LAN-/Tailnet‑Zugriff binden Sie explizit und lassen die Authentifizierung aktiviert.
Für reine Tailnet‑Setups:
- Setzen Sie
gateway.bind: "tailnet"in~/.openclaw/openclaw.json. - Starten Sie den Gateway neu (oder starten Sie die macOS‑Menüleisten‑App neu).
Was werbt
Nur der Gateway annonciert_openclaw-gw._tcp.
Servicetypen
_openclaw-gw._tcp— Gateway‑Transport‑Beacon (verwendet von macOS/iOS/Android‑Nodes).
TXT‑Schlüssel (nicht‑geheime Hinweise)
Der Gateway annonciert kleine, nicht‑geheime Hinweise, um UI‑Abläufe zu vereinfachen:role=gatewaydisplayName=<friendly name>lanHost=<hostname>.localgatewayPort=<port>(Gateway WS + HTTP)gatewayTls=1(nur wenn TLS aktiviert ist)gatewayTlsSha256=<sha256>(nur wenn TLS aktiviert ist und ein Fingerabdruck verfügbar ist)canvasPort=<port>(nur wenn der Canvas‑Host aktiviert ist; Standard18793)sshPort=<port>(Standard ist 22, wenn nicht überschrieben)transport=gatewaycliPath=<path>(optional; absoluter Pfad zu einem ausführbarenopenclaw‑Entrypoint)tailnetDns=<magicdns>(optionaler Hinweis, wenn Tailnet verfügbar ist)
- Bonjour/mDNS-TXT-Records sind nicht authentifiziert. Clients dürfen TXT nicht als maßgebliches Routing behandeln.
- Clients sollten über den aufgelösten Service-Endpunkt (SRV + A/AAAA) routen.
lanHost,tailnetDns,gatewayPortundgatewayTlsSha256nur als Hinweise behandeln. - TLS-Pinning darf niemals zulassen, dass ein beworbenes
gatewayTlsSha256einen zuvor gespeicherten Pin überschreibt. - iOS/Android-Knoten sollten discovery-basierte Direktverbindungen ausschließlich als TLS-only behandeln und vor dem Vertrauen eines erstmaligen Fingerabdrucks eine ausdrückliche Benutzerbestätigung verlangen.
Debugging unter macOS
Nützliche integrierte Werkzeuge:-
Instanzen durchsuchen:
-
Eine Instanz auflösen (ersetzen Sie
<instance>):
Debugging in Gateway‑Logs
Der Gateway schreibt eine rotierende Logdatei (beim Start ausgegeben alsgateway log file: ...). Achten Sie auf bonjour:‑Zeilen, insbesondere:
bonjour: advertise failed ...bonjour: ... name conflict resolved/hostname conflict resolvedbonjour: watchdog detected non-announced service ...
Debugging auf dem iOS‑Node
Der iOS‑Node verwendetNWBrowser, um _openclaw-gw._tcp zu erkennen.
So erfassen Sie Logs:
- Einstellungen → Gateway → Erweitert → Discovery‑Debug‑Logs
- Einstellungen → Gateway → Erweitert → Discovery‑Logs → reproduzieren → Kopieren
Häufige Fehlermodi
- Bonjour überschreitet keine Netzwerke: Verwenden Sie Tailnet oder SSH.
- Multicast blockiert: Einige WLAN‑Netze deaktivieren mDNS.
- Sleep / Interface‑Wechsel: macOS kann mDNS‑Ergebnisse vorübergehend verwerfen; erneut versuchen.
- Durchsuchen funktioniert, Auflösen schlägt fehl: Halten Sie Rechnernamen einfach (vermeiden Sie Emojis oder Satzzeichen) und starten Sie anschließend den Gateway neu. Der Service‑Instanzname leitet sich vom Hostnamen ab; zu komplexe Namen können einige Resolver verwirren.
Escaped Instanznamen (\032)
Bonjour/DNS‑SD escaped häufig Bytes in Service‑Instanznamen als dezimale
\DDD‑Sequenzen (z. B. werden Leerzeichen zu \032).
- Dies ist auf Protokollebene normal.
- UIs sollten zur Anzeige dekodieren (iOS verwendet
BonjourEscapes.decode).
Deaktivierung / Konfiguration
OPENCLAW_DISABLE_BONJOUR=1deaktiviert die Ankündigung (Legacy:OPENCLAW_DISABLE_BONJOUR).gateway.bindin~/.openclaw/openclaw.jsonsteuert den Bind‑Modus des Gateways.OPENCLAW_SSH_PORTüberschreibt den in TXT annoncierten SSH‑Port (Legacy:OPENCLAW_SSH_PORT).OPENCLAW_TAILNET_DNSveröffentlicht einen MagicDNS‑Hinweis in TXT (Legacy:OPENCLAW_TAILNET_DNS).OPENCLAW_CLI_PATHüberschreibt den annoncierten CLI‑Pfad (Legacy:OPENCLAW_CLI_PATH).
Verwandte Dokumente
- Discovery‑Richtlinie und Transportauswahl: Discovery
- Node‑Pairing + Genehmigungen: Gateway pairing