OpenClaw dapat menggunakan Bonjour (mDNS / DNS-SD) untuk menemukan Gateway aktif (endpoint WebSocket). Penelusuran 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. adalah kemudahan khusus LAN. Plugin bonjour
bawaan memiliki kepemilikan atas iklan LAN. Plugin ini mulai otomatis pada host macOS dan bersifat opsional pada
Linux, Windows, dan deployment Gateway terkontainerisasi. Untuk penemuan lintas jaringan, beacon yang sama
juga dapat dipublikasikan melalui domain DNS-SD area-luas yang dikonfigurasi. Penemuan
tetap bersifat best-effort dan tidak menggantikan konektivitas berbasis SSH atau Tailnet.
Bonjour area-luas (Unicast DNS-SD) melalui Tailscale
Jika node dan gateway berada di jaringan berbeda, multicast mDNS tidak akan melewati batas tersebut. Anda dapat mempertahankan UX penemuan yang sama dengan beralih ke unicast DNS-SD (“Wide-Area Bonjour”) melalui Tailscale. Langkah tingkat tinggi:- Jalankan server DNS pada host gateway (dapat dijangkau melalui Tailnet).
- Publikasikan record DNS-SD untuk
_openclaw-gw._tcpdi bawah zona khusus (contoh:openclaw.internal.). - Konfigurasikan split DNS Tailscale agar domain pilihan Anda di-resolve melalui server DNS tersebut untuk klien (termasuk iOS).
openclaw.internal. hanyalah contoh.
Node iOS/Android menelusuri local. dan domain area-luas yang Anda konfigurasi.
Konfigurasi Gateway (direkomendasikan)
Penyiapan server DNS satu kali (host gateway)
- mendengarkan pada port 53 hanya pada antarmuka Tailscale milik gateway
- menyajikan domain pilihan Anda (contoh:
openclaw.internal.) dari~/.openclaw/dns/<domain>.db
Pengaturan DNS Tailscale
Di konsol admin Tailscale:- Tambahkan nameserver yang menunjuk ke IP tailnet gateway (UDP/TCP 53).
- Tambahkan split DNS agar domain penemuan Anda menggunakan nameserver tersebut.
_openclaw-gw._tcp di domain penemuan Anda tanpa multicast.
Keamanan listener Gateway (direkomendasikan)
Port WS Gateway (default18789) secara default terikat ke loopback. Untuk akses LAN/tailnet,
ikat secara eksplisit dan tetap aktifkan auth.
Untuk penyiapan khusus tailnet:
- Atur
gateway.bind: "tailnet"di~/.openclaw/openclaw.json. - Mulai ulang Gateway (atau mulai ulang aplikasi menubar macOS).
Yang mengiklankan
Hanya Gateway yang mengiklankan_openclaw-gw._tcp. Iklan multicast LAN
disediakan oleh Plugin bonjour bawaan saat Plugin diaktifkan; publikasi
DNS-SD area-luas tetap dimiliki Gateway.
Tipe layanan
_openclaw-gw._tcp- beacon transport gateway (digunakan oleh node macOS/iOS/Android).
Kunci TXT (petunjuk non-rahasia)
Gateway mengiklankan petunjuk kecil non-rahasia agar alur UI lebih mudah:role=gatewaydisplayName=<friendly name>lanHost=<hostname>.localgatewayPort=<port>(Gateway WS + HTTP)gatewayTls=1(hanya saat TLS diaktifkan)gatewayTlsSha256=<sha256>(hanya saat TLS diaktifkan dan fingerprint tersedia)canvasPort=<port>(hanya saat host canvas diaktifkan; saat ini sama dengangatewayPort)transport=gatewaytailnetDns=<magicdns>(hanya mode mDNS penuh, petunjuk opsional saat Tailnet tersedia)sshPort=<port>(hanya mode penuh; dihilangkan dalam mode minimal dan off)cliPath=<path>(hanya mode penuh; dihilangkan dalam mode minimal dan off)
- Record TXT Bonjour/mDNS tidak diautentikasi. Klien tidak boleh memperlakukan TXT sebagai routing otoritatif.
- Klien sebaiknya melakukan routing menggunakan endpoint layanan yang di-resolve (SRV + A/AAAA). Perlakukan
lanHost,tailnetDns,gatewayPort, dangatewayTlsSha256hanya sebagai petunjuk. - Penargetan otomatis SSH juga sebaiknya menggunakan host layanan yang di-resolve, bukan petunjuk khusus TXT.
- TLS pinning tidak boleh pernah mengizinkan
gatewayTlsSha256yang diiklankan untuk menimpa pin yang sebelumnya disimpan. - Node iOS/Android sebaiknya memperlakukan koneksi langsung berbasis penemuan sebagai hanya TLS dan mewajibkan konfirmasi pengguna eksplisit sebelum memercayai fingerprint pertama kali.
Debugging di macOS
Alat bawaan yang berguna:-
Telusuri instans:
-
Resolve satu instans (ganti
<instance>):
Debugging di log Gateway
Gateway menulis file log bergulir (dicetak saat startup sebagaigateway log file: ...). Cari baris bonjour:, terutama:
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, dan penggantian nama konflik yang baru
sebagai status yang sedang berlangsung. Jika layanan tidak pernah mencapai announced, OpenClaw pada akhirnya
membuat ulang advertiser dan, setelah kegagalan berulang, menonaktifkan Bonjour untuk
proses Gateway tersebut alih-alih terus mengiklankan ulang tanpa henti.
Bonjour menggunakan hostname sistem untuk host .local yang diiklankan saat hostname tersebut adalah
label DNS yang valid. Jika hostname sistem berisi spasi, garis bawah, atau karakter
label DNS lain yang tidak valid, OpenClaw fallback ke openclaw.local. Atur
OPENCLAW_MDNS_HOSTNAME=<name> sebelum memulai Gateway saat Anda membutuhkan
label host eksplisit.
Debugging pada node iOS
Node iOS menggunakanNWBrowser untuk menemukan _openclaw-gw._tcp.
Untuk menangkap log:
- Settings → Gateway → Advanced → Discovery Debug Logs
- Settings → Gateway → Advanced → Discovery Logs → reproduksi → Copy
Kapan mengaktifkan Bonjour
Bonjour mulai otomatis untuk startup Gateway dengan konfigurasi kosong pada host macOS karena aplikasi lokal dan node iOS/Android terdekat umumnya mengandalkan penemuan dalam LAN yang sama. Aktifkan Bonjour secara eksplisit saat penemuan otomatis dalam LAN yang sama berguna pada Linux, Windows, atau host non-macOS lain:discovery.mdns.mode untuk menentukan seberapa banyak metadata TXT
yang dipublikasikan. Mode yang sama mengontrol petunjuk TXT opsional dalam record DNS-SD area-luas.
Mode default adalah minimal; gunakan full hanya saat klien membutuhkan petunjuk cliPath atau
sshPort. Gunakan off untuk menekan multicast LAN tanpa mengubah pengaktifan Plugin;
DNS-SD area-luas masih dapat memublikasikan beacon Gateway minimal saat
discovery.wideArea.enabled bernilai true.
Kapan menonaktifkan Bonjour
Biarkan Bonjour dinonaktifkan saat iklan multicast LAN tidak diperlukan, tidak tersedia, atau merugikan. Kasus umum adalah server non-macOS, jaringan bridge Docker, WSL, atau kebijakan jaringan yang memblokir multicast mDNS. Di lingkungan tersebut, Gateway masih dapat dijangkau melalui URL yang dipublikasikan, SSH, Tailnet, atau DNS-SD area-luas, tetapi penemuan otomatis LAN tidak andal. Pilih override lingkungan yang ada saat masalahnya terkait deployment:Catatan penting Docker
Plugin Bonjour bawaan menonaktifkan otomatis iklan multicast LAN dalam container yang terdeteksi saatOPENCLAW_DISABLE_BONJOUR tidak disetel. Jaringan bridge Docker
biasanya tidak meneruskan multicast mDNS (224.0.0.251:5353) antara container
dan LAN, sehingga iklan dari container jarang membuat penemuan berfungsi.
Catatan penting:
- Bonjour mulai otomatis pada host macOS dan bersifat opt-in di tempat lain. Membiarkannya dinonaktifkan tidak menghentikan Gateway; itu hanya melewati iklan multicast LAN.
- Menonaktifkan Bonjour tidak mengubah
gateway.bind; Docker tetap default keOPENCLAW_GATEWAY_BIND=lanagar port host yang dipublikasikan dapat berfungsi. - Menonaktifkan Bonjour tidak menonaktifkan DNS-SD area-luas. Gunakan penemuan area-luas atau Tailnet saat Gateway dan node tidak berada di LAN yang sama.
- Menggunakan ulang
OPENCLAW_CONFIG_DIRyang sama di luar Docker tidak mempertahankan kebijakan penonaktifan otomatis container. - Atur
OPENCLAW_DISABLE_BONJOUR=0hanya untuk host networking, macvlan, atau jaringan lain yang diketahui dapat melewatkan multicast mDNS; atur ke1untuk menonaktifkan paksa.
Pemecahan masalah Bonjour yang dinonaktifkan
Jika sebuah node tidak lagi menemukan Gateway secara otomatis setelah penyiapan Docker:-
Konfirmasi apakah Gateway berjalan dalam mode otomatis, dipaksa aktif, atau dipaksa nonaktif:
-
Konfirmasi Gateway itu sendiri dapat dijangkau melalui port yang dipublikasikan:
-
Gunakan target langsung saat Bonjour dinonaktifkan:
- UI kontrol atau alat lokal:
http://127.0.0.1:18789 - Klien LAN:
http://<gateway-host>:18789 - Klien lintas jaringan: Tailnet MagicDNS, IP Tailnet, tunnel SSH, atau DNS-SD area-luas
- UI kontrol atau alat lokal:
-
Jika Anda sengaja mengaktifkan Plugin Bonjour di Docker dan memaksa iklan
dengan
OPENCLAW_DISABLE_BONJOUR=0, uji multicast dari host:Jika penelusuran kosong atau log Gateway menunjukkan pembatalan watchdog ciao berulang, pulihkanOPENCLAW_DISABLE_BONJOUR=1dan gunakan rute langsung atau Tailnet.
Mode kegagalan umum
- Bonjour tidak melewati jaringan: gunakan Tailnet atau SSH.
- Multicast diblokir: beberapa jaringan Wi-Fi menonaktifkan mDNS.
- Advertiser macet dalam probing/announcing: host dengan multicast yang diblokir, bridge container, WSL, atau perubahan antarmuka dapat membuat advertiser ciao berada dalam status non-announced. OpenClaw mencoba ulang beberapa kali lalu menonaktifkan Bonjour untuk proses Gateway saat ini alih-alih memulai ulang advertiser tanpa henti.
- Jaringan bridge Docker: Bonjour menonaktifkan otomatis dalam container yang terdeteksi.
Atur
OPENCLAW_DISABLE_BONJOUR=0hanya untuk host, macvlan, atau jaringan lain yang mendukung mDNS. - Sleep / perubahan antarmuka: macOS dapat sementara kehilangan hasil mDNS; coba lagi.
- Penelusuran berfungsi tetapi resolve gagal: jaga nama mesin tetap sederhana (hindari emoji atau tanda baca), lalu mulai ulang Gateway. Nama instans layanan diturunkan dari nama host, sehingga nama yang terlalu kompleks dapat membingungkan sebagian resolver.
Nama instans yang di-escape (\032)
Bonjour/DNS-SD sering meng-escape byte dalam nama instans layanan sebagai urutan desimal \DDD
(misalnya spasi menjadi \032).
- Ini normal pada level protokol.
- UI sebaiknya mendekode untuk tampilan (iOS menggunakan
BonjourEscapes.decode).
Mengaktifkan / menonaktifkan / konfigurasi
- Host macOS memulai otomatis plugin penemuan LAN bawaan secara default.
openclaw plugins enable bonjourmengaktifkan plugin penemuan LAN bawaan pada host yang tidak mengaktifkannya secara default.openclaw plugins disable bonjourmenonaktifkan pengiklanan multicast LAN dengan menonaktifkan plugin bawaan.OPENCLAW_DISABLE_BONJOUR=1menonaktifkan pengiklanan multicast LAN tanpa mengubah konfigurasi plugin; nilai truthy yang diterima adalah1,true,yes, danon(lama:OPENCLAW_DISABLE_BONJOUR).OPENCLAW_DISABLE_BONJOUR=0memaksa pengiklanan multicast LAN aktif, termasuk di dalam kontainer yang terdeteksi; nilai falsy yang diterima adalah0,false,no, danoff.- Saat Plugin Bonjour diaktifkan dan
OPENCLAW_DISABLE_BONJOURtidak disetel, Bonjour mengiklankan pada host normal dan menonaktifkan diri secara otomatis di dalam kontainer yang terdeteksi. gateway.binddi~/.openclaw/openclaw.jsonmengontrol mode bind Gateway.OPENCLAW_SSH_PORTmengganti port SSH saatsshPortdiiklankan (lama:OPENCLAW_SSH_PORT).OPENCLAW_TAILNET_DNSmenerbitkan petunjuk MagicDNS di TXT saat mode penuh mDNS diaktifkan (lama:OPENCLAW_TAILNET_DNS).OPENCLAW_CLI_PATHmengganti path CLI yang diiklankan (lama:OPENCLAW_CLI_PATH).
Dokumen terkait
- Kebijakan penemuan dan pemilihan transport: Penemuan
- Penyandingan Node + persetujuan: Penyandingan Gateway