35. Bonjour / mDNS aniqlash
- OpenClaw faol Gateway (WebSocket endpoint) ni aniqlash uchun faqat LAN doirasidagi qulaylik sifatida Bonjour (mDNS / DNS‑SD) dan foydalanadi. 37. Bu best‑effort bo‘lib, SSH yoki Tailnet asosidagi ulanishni almashtirmaydi.
38. Tailscale orqali keng hududli Bonjour (Unicast DNS‑SD)
- Agar tugun va gateway turli tarmoqlarda bo‘lsa, multicast mDNS chegaradan o‘tmaydi. 40. Tailscale orqali unicast DNS‑SD (“Wide‑Area Bonjour”) ga o‘tib, xuddi shu aniqlash UX’ini saqlab qolishingiz mumkin.
- Yuqori darajadagi qadamlar:
-
- Gateway xostida DNS serverni ishga tushiring (Tailnet orqali yetib boriladigan).
-
- Ajratilgan zona ostida
_openclaw-gw._tcpuchun DNS‑SD yozuvlarini e’lon qiling (misol:openclaw.internal.).
- Ajratilgan zona ostida
-
- Tanlangan domeningiz mijozlar (jumladan iOS) uchun o‘sha DNS server orqali yechilishi uchun Tailscale split DNS ni sozlang.
- OpenClaw istalgan aniqlash domenini qo‘llab-quvvatlaydi;
openclaw.internal.faqat misol. - iOS/Android tugunlari
local.va siz sozlagan keng hududli domenni birgalikda ko‘rib chiqadi.
47. Gateway konfiguratsiyasi (tavsiya etiladi)
49. Bir martalik DNS server sozlamasi (gateway xosti)
- Bu CoreDNS’ni o‘rnatadi va uni quyidagicha sozlaydi:
-
- 53‑portda faqat gateway’ning Tailscale interfeyslarida tinglaydi
-
- tanlangan domeningizni (misol:
openclaw.internal.)~/.openclaw/dns/<domain>.dbdan xizmat qiladi
- tanlangan domeningizni (misol:
- Tailnet’ga ulangan mashinadan tekshiring:
6. Tailscale DNS sozlamalari
- Tailscale admin konsolida:
-
- Gateway’ning tailnet IP manziliga (UDP/TCP 53) yo‘naltirilgan nameserver qo‘shing.
-
- Discovery domeningiz shu nameserver’dan foydalanishi uchun split DNS qo‘shing.
- Mijozlar tailnet DNS’ni qabul qilgach, iOS tugunlari multicast’siz discovery domeningizda
_openclaw-gw._tcpni ko‘ra oladi.
11. Gateway tinglovchi xavfsizligi (tavsiya etiladi)
-
Gateway WS porti (standart
18789) sukut bo‘yicha loopback’ga bog‘lanadi. 13. LAN/tailnet kirish uchun, aniq bog‘lang va autentifikatsiyani yoqilgan holda qoldiring. - Faqat tailnet sozlamalari uchun:
-
~/.openclaw/openclaw.jsonfaylidagateway.bind: "tailnet"ni o‘rnating.
-
- Gateway’ni qayta ishga tushiring (yoki macOS menyubar ilovasini qayta ishga tushiring).
17. Nimalar e’lon qilinadi
- Faqat Gateway
_openclaw-gw._tcpni e’lon qiladi.
19. Xizmat turlari
-
_openclaw-gw._tcp— gateway transport beacon (macOS/iOS/Android tugunlari tomonidan ishlatiladi).
21. TXT kalitlari (maxfiy bo‘lmagan ishoralar)
- Gateway UI jarayonlarini qulay qilish uchun kichik, maxfiy bo‘lmagan ishoralarni e’lon qiladi:
role=gatewaydisplayName=<friendly name>lanHost=<hostname>.localgatewayPort=<port>(Gateway WS + HTTP)-
gatewayTls=1(faqat TLS yoqilganida)
-
gatewayTlsSha256=<sha256>(faqat TLS yoqilgan va fingerprint mavjud bo‘lganda)
canvasPort=<port>(faqat canvas host yoqilganda; hozirdagatewayPortbilan bir xil)-
sshPort=<port>(o‘zgartirilmagan bo‘lsa, sukut bo‘yicha 22)
transport=gateway-
cliPath=<path>(ixtiyoriy; ishga tushiriladiganopenclawkirish nuqtasiga mutlaq yo‘l)
-
tailnetDns=<magicdns>(Tailnet mavjud bo‘lganda ixtiyoriy ishora)
- Bonjour/mDNS TXT yozuvlari autentifikatsiyalanmagan. Mijozlar TXT ni ishonchli marshrutlash manbasi sifatida qabul qilmasliklari kerak.
- Mijozlar marshrutlashni aniqlangan xizmat endpointi (SRV + A/AAAA) orqali amalga oshirishlari kerak.
lanHost,tailnetDns,gatewayPortvagatewayTlsSha256ni faqat maslahat sifatida qabul qiling. - TLS pinlash hech qachon e’lon qilingan
gatewayTlsSha256ga oldin saqlangan pinni bekor qilishga ruxsat bermasligi kerak. - iOS/Android tugunlari discovery asosidagi to‘g‘ridan-to‘g‘ri ulanishlarni faqat TLS sifatida qabul qilishi va birinchi marta ko‘rilgan fingerprintga ishonishdan oldin foydalanuvchining aniq tasdig‘ini talab qilishi kerak.
34. macOS’da nosozliklarni tuzatish
- Foydali o‘rnatilgan vositalar:
-
- Instansiyalarni ko‘rish:
-
- Bitta instansiyani aniqlash (
<instance>ni almashtiring):
- Bitta instansiyani aniqlash (
- Agar ko‘rish ishlasa, lekin aniqlash ishlamasa, odatda LAN siyosati yoki mDNS rezolver muammosiga duch kelasiz.
41. Gateway loglarida nosozliklarni tuzatish
- Gateway aylanuvchi log faylini yozadi (ishga tushishda quyidagicha chop etiladi:
gateway log file: ...). 43. Ayniqsabonjour:qatorlariga e’tibor bering:
bonjour: advertise failed ...-
- `bonjour: …
- name conflict resolved
/hostname conflict resolved47.bonjour: watchdog detected non-announced service …`
-
- iOS tugunida nosozliklarni tuzatish
Keng tarqalgan nosozlik holatlari
- Loglarni olish uchun:
- Settings → Gateway → Advanced → Discovery Debug Logs
- Settings → Gateway → Advanced → Discovery Logs → reproduce → Copy
Common failure modes
- Bonjour doesn’t cross networks: use Tailnet or SSH.
workdir,env- Sleep / interface churn: macOS may temporarily drop mDNS results; retry.
- Browse works but resolve fails: keep machine names simple (avoid emojis or punctuation), then restart the Gateway. The service instance name derives from the host name, so overly complex names can confuse some resolvers.
Escaped instance names (\032)
Bonjour/DNS‑SD often escapes bytes in service instance names as decimal \DDD
sequences (e.g. spaces become \032).
- This is normal at the protocol level.
- Multicast bloklangan: ba’zi Wi‑Fi tarmoqlari mDNS’ni o‘chirib qo‘yadi.
Disabling / configuration
OPENCLAW_DISABLE_BONJOUR=1disables advertising (legacy:OPENCLAW_DISABLE_BONJOUR).gateway.bindin~/.openclaw/openclaw.jsoncontrols the Gateway bind mode.OPENCLAW_SSH_PORToverrides the SSH port advertised in TXT (legacy:OPENCLAW_SSH_PORT).OPENCLAW_TAILNET_DNSpublishes a MagicDNS hint in TXT (legacy:OPENCLAW_TAILNET_DNS).OPENCLAW_CLI_PATHoverrides the advertised CLI path (legacy:OPENCLAW_CLI_PATH).
Related docs
- Discovery policy and transport selection: Discovery
- Node pairing + approvals: Gateway pairing