Penemuan Bonjour / mDNS
OpenClaw menggunakan Bonjour (mDNS / DNS‑SD) untuk menemukan Gateway aktif (endpoint WebSocket). Penelusuran multicastlocal. adalah kemudahan khusus LAN. 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 yang berbeda, mDNS multicast tidak akan melintasi batas tersebut. Anda dapat mempertahankan UX penemuan yang sama dengan beralih ke unicast DNS‑SD (“Wide‑Area Bonjour”) melalui Tailscale. Langkah-langkah tingkat tinggi:- Jalankan server DNS di 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 yang Anda pilih diselesaikan melalui server DNS tersebut untuk klien (termasuk iOS).
openclaw.internal. hanyalah contoh.
Node iOS/Android menelusuri local. dan domain area luas yang Anda konfigurasi.
Config Gateway (disarankan)
Penyiapan server DNS satu kali (host gateway)
- mendengarkan pada port 53 hanya di interface Tailscale milik gateway
- melayani domain yang Anda pilih (contoh:
openclaw.internal.) dari~/.openclaw/dns/<domain>.db
Pengaturan DNS Tailscale
Di konsol admin Tailscale:- Tambahkan nameserver yang mengarah 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 (disarankan)
Port WS Gateway (default18789) melakukan bind ke loopback secara default. Untuk akses LAN/tailnet,
lakukan bind secara eksplisit dan tetap aktifkan auth.
Untuk penyiapan khusus tailnet:
- Setel
gateway.bind: "tailnet"di~/.openclaw/openclaw.json. - Mulai ulang Gateway (atau mulai ulang aplikasi menubar macOS).
Apa yang mengiklankan
Hanya Gateway yang mengiklankan_openclaw-gw._tcp.
Tipe layanan
_openclaw-gw._tcp— beacon transport gateway (digunakan oleh node macOS/iOS/Android).
Kunci TXT (petunjuk non-rahasia)
Gateway mengiklankan petunjuk kecil yang tidak rahasia agar alur UI lebih nyaman: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>(petunjuk opsional saat Tailnet tersedia)sshPort=<port>(hanya mode penuh mDNS; DNS-SD area luas dapat menghilangkannya)cliPath=<path>(hanya mode penuh mDNS; DNS-SD area luas tetap menuliskannya sebagai petunjuk instalasi jarak jauh)
- Record TXT Bonjour/mDNS tidak diautentikasi. Klien tidak boleh memperlakukan TXT sebagai routing otoritatif.
- Klien harus melakukan routing menggunakan endpoint layanan yang diselesaikan (SRV + A/AAAA). Perlakukan
lanHost,tailnetDns,gatewayPort, dangatewayTlsSha256hanya sebagai petunjuk. - Penargetan otomatis SSH juga harus menggunakan host layanan yang diselesaikan, bukan petunjuk TXT semata.
- TLS pinning tidak boleh pernah mengizinkan
gatewayTlsSha256yang diiklankan menimpa pin yang sebelumnya disimpan. - Node iOS/Android harus memperlakukan koneksi langsung berbasis penemuan sebagai khusus TLS dan memerlukan konfirmasi pengguna eksplisit sebelum mempercayai fingerprint pertama kali.
Debugging di macOS
Tool bawaan yang berguna:-
Telusuri instance:
-
Selesaikan satu instance (ganti
<instance>):
Debugging di log Gateway
Gateway menulis file log bergulir (dicetak saat startup sebagaigateway log file: ...). Cari baris bonjour:, khususnya:
bonjour: advertise failed ...bonjour: ... name conflict resolved/hostname conflict resolvedbonjour: watchdog detected non-announced service ...
Debugging di 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
Mode kegagalan umum
- Bonjour tidak melintasi jaringan: gunakan Tailnet atau SSH.
- Multicast diblokir: beberapa jaringan Wi‑Fi menonaktifkan mDNS.
- Sleep / pergantian interface: macOS dapat sementara kehilangan hasil mDNS; coba lagi.
- Penelusuran berfungsi tetapi penyelesaian gagal: buat nama mesin tetap sederhana (hindari emoji atau tanda baca), lalu mulai ulang Gateway. Nama instance layanan diturunkan dari nama host, jadi nama yang terlalu rumit dapat membingungkan beberapa resolver.
Nama instance escape (\032)
Bonjour/DNS‑SD sering melakukan escape byte dalam nama instance layanan sebagai urutan desimal \DDD
(misalnya spasi menjadi \032).
- Ini normal pada tingkat protokol.
- UI sebaiknya melakukan decode untuk tampilan (iOS menggunakan
BonjourEscapes.decode).
Menonaktifkan / konfigurasi
OPENCLAW_DISABLE_BONJOUR=1menonaktifkan pengiklanan (lama:OPENCLAW_DISABLE_BONJOUR).gateway.binddi~/.openclaw/openclaw.jsonmengontrol mode bind Gateway.OPENCLAW_SSH_PORTmenimpa port SSH saatsshPortdiiklankan (lama:OPENCLAW_SSH_PORT).OPENCLAW_TAILNET_DNSmemublikasikan petunjuk MagicDNS di TXT (lama:OPENCLAW_TAILNET_DNS).OPENCLAW_CLI_PATHmenimpa path CLI yang diiklankan (lama:OPENCLAW_CLI_PATH).
Dokumen terkait
- Kebijakan penemuan dan pemilihan transport: Discovery
- Pairing node + persetujuan: Gateway pairing