Bonjour / mDNS डिस्कवरी
- OpenClaw एक LAN‑only सुविधा के रूप में Bonjour (mDNS / DNS‑SD) का उपयोग करता है ताकि एक सक्रिय Gateway (WebSocket endpoint) को खोजा जा सके। 14. यह best‑effort है और SSH या Tailnet‑आधारित कनेक्टिविटी का विकल्प नहीं है।
Tailscale पर वाइड‑एरिया Bonjour (Unicast DNS‑SD)
- यदि node और gateway अलग‑अलग नेटवर्क पर हैं, तो multicast mDNS सीमा पार नहीं करेगा। 16. आप Tailscale पर unicast DNS‑SD (“Wide‑Area Bonjour”) पर स्विच करके वही discovery UX बनाए रख सकते हैं।
- Gateway होस्ट पर एक DNS सर्वर चलाएँ (Tailnet के माध्यम से पहुँचा जा सकने योग्य)।
- एक समर्पित ज़ोन के अंतर्गत
_openclaw-gw._tcpके लिए DNS‑SD रिकॉर्ड प्रकाशित करें (उदाहरण:openclaw.internal.)। - Tailscale split DNS कॉन्फ़िगर करें ताकि आपका चुना हुआ डोमेन क्लाइंट्स (iOS सहित) के लिए उसी DNS सर्वर के माध्यम से रेज़ॉल्व हो।
- OpenClaw किसी भी discovery domain का समर्थन करता है;
openclaw.internal.केवल एक उदाहरण है। - iOS/Android nodes
local.और आपके कॉन्फ़िगर किए गए wide‑area domain दोनों को ब्राउज़ करते हैं।
Gateway विन्यास (अनुशंसित)
एक‑बार DNS सर्वर सेटअप (Gateway होस्ट)
- केवल Gateway के Tailscale इंटरफ़ेस पर पोर्ट 53 पर सुनता है
- आपकी चुनी हुई डोमेन (उदाहरण:
openclaw.internal.) को~/.openclaw/dns/<domain>.dbसे सर्व करता है
Tailscale DNS सेटिंग्स
Tailscale एडमिन कंसोल में:- Gateway के Tailnet IP (UDP/TCP 53) की ओर संकेत करने वाला एक नेमसर्वर जोड़ें।
- split DNS जोड़ें ताकि आपकी डिस्कवरी डोमेन उसी नेमसर्वर का उपयोग करे।
_openclaw-gw._tcp ब्राउज़ कर सकते हैं।
Gateway लिस्नर सुरक्षा (अनुशंसित)
- Gateway WS पोर्ट (डिफ़ॉल्ट
18789) डिफ़ॉल्ट रूप से loopback पर bind होता है। 20. LAN/tailnet एक्सेस के लिए, स्पष्ट रूप से bind करें और auth सक्षम रखें।
~/.openclaw/openclaw.jsonमेंgateway.bind: "tailnet"सेट करें।- Gateway को पुनः प्रारंभ करें (या macOS मेनूबार ऐप को रीस्टार्ट करें)।
क्या विज्ञापित होता है
केवल Gateway ही_openclaw-gw._tcp विज्ञापित करता है।
सेवा प्रकार
_openclaw-gw._tcp— Gateway ट्रांसपोर्ट बीकन (macOS/iOS/Android नोड्स द्वारा उपयोग किया जाता है)।
TXT कुंजियाँ (गैर‑गुप्त संकेत)
UI फ़्लो को सुविधाजनक बनाने के लिए Gateway छोटे गैर‑गुप्त संकेत विज्ञापित करता है:role=gatewaydisplayName=<friendly name>lanHost=<hostname>.localgatewayPort=<port>(Gateway WS + HTTP)gatewayTls=1(केवल तब जब TLS सक्षम हो)gatewayTlsSha256=<sha256>(केवल तब जब TLS सक्षम हो और फ़िंगरप्रिंट उपलब्ध हो)canvasPort=<port>(केवल तब जब कैनवास होस्ट सक्षम हो; डिफ़ॉल्ट18793)sshPort=<port>(यदि ओवरराइड न किया गया हो तो डिफ़ॉल्ट 22)transport=gatewaycliPath=<path>(वैकल्पिक; रन करने योग्यopenclawएंट्रीपॉइंट का पूर्ण पथ)tailnetDns=<magicdns>(वैकल्पिक संकेत जब Tailnet उपलब्ध हो)
- Bonjour/mDNS TXT रिकॉर्ड प्रमाणित नहीं होते हैं। क्लाइंट्स को TXT को प्रामाणिक रूटिंग के रूप में नहीं मानना चाहिए।
- क्लाइंट्स को resolved service endpoint (SRV + A/AAAA) का उपयोग करके रूट करना चाहिए।
lanHost,tailnetDns,gatewayPort, औरgatewayTlsSha256को केवल संकेत के रूप में मानें। - TLS pinning को कभी भी विज्ञापित
gatewayTlsSha256को पहले से संग्रहीत pin को ओवरराइड करने की अनुमति नहीं देनी चाहिए। - iOS/Android नोड्स को discovery-आधारित direct connects को केवल TLS के रूप में मानना चाहिए और पहली बार के fingerprint पर भरोसा करने से पहले स्पष्ट उपयोगकर्ता पुष्टि की आवश्यकता होनी चाहिए।
macOS पर डिबगिंग
यदि ब्राउज़िंग काम करती है लेकिन रेज़ॉल्व विफल होता है, तो आमतौर पर यह LAN नीति या mDNS रेज़ॉल्वर समस्या होती है।-
इंस्टेंस ब्राउज़ करें:
-
एक इंस्टेंस रेज़ॉल्व करें (
<instance>को बदलें):
Gateway लॉग्स में डिबगिंग
- Gateway एक rolling log फ़ाइल लिखता है (startup पर प्रिंट होती है जैसे
gateway log file: ...)। 22.bonjour:लाइनों को देखें, विशेष रूप से:
bonjour: advertise failed ...-
bonjour: ...24. name conflict resolved/hostname conflict resolved`
bonjour: watchdog detected non-announced service ...
iOS नोड पर डिबगिंग
iOS नोडNWBrowser का उपयोग करके _openclaw-gw._tcp की खोज करता है।
लॉग में ब्राउज़र स्थिति संक्रमण और परिणाम‑सेट परिवर्तनों का विवरण होता है।
- Settings → Gateway → Advanced → Discovery Debug Logs
- Settings → Gateway → Advanced → Discovery Logs → पुनरुत्पादन करें → Copy
एस्केप किए गए इंस्टेंस नाम (\032)
- Bonjour नेटवर्क पार नहीं करता: Tailnet या SSH का उपयोग करें।
- मल्टीकास्ट अवरुद्ध: कुछ Wi‑Fi नेटवर्क mDNS को अक्षम करते हैं।
- स्लीप / इंटरफ़ेस बदलाव: macOS अस्थायी रूप से mDNS परिणाम छोड़ सकता है; पुनः प्रयास करें।
-
- Browse काम करता है लेकिन resolve विफल होता है: मशीन नाम सरल रखें (emojis या punctuation से बचें), फिर Gateway को रीस्टार्ट करें। 26. service instance नाम host name से निकाला जाता है, इसलिए अत्यधिक जटिल नाम कुछ resolvers को भ्रमित कर सकते हैं।
एस्केप किए गए इंस्टेंस नाम (\032)
Bonjour/DNS‑SD अक्सर सेवा इंस्टेंस नामों में बाइट्स को दशमलव \DDD
क्रमों के रूप में एस्केप करता है (उदाहरण: स्पेस \032 बन जाते हैं)।
OPENCLAW_DISABLE_BONJOUR=1विज्ञापन को अक्षम करता है (लेगेसी:OPENCLAW_DISABLE_BONJOUR)।~/.openclaw/openclaw.jsonमेंgateway.bindGateway बाइंड मोड को नियंत्रित करता है।
संबंधित दस्तावेज़
- डिस्कवरी नीति और ट्रांसपोर्ट चयन: Discovery
- नोड पेयरिंग + अनुमोदन: Gateway pairing
OPENCLAW_SSH_PORTTXT में विज्ञापित SSH पोर्ट को ओवरराइड करता है (लेगेसी:OPENCLAW_SSH_PORT)।OPENCLAW_TAILNET_DNSTXT में MagicDNS संकेत प्रकाशित करता है (लेगेसी:OPENCLAW_TAILNET_DNS)।OPENCLAW_CLI_PATHविज्ञापित CLI पथ को ओवरराइड करता है (लेगेसी:OPENCLAW_CLI_PATH)।
संबंधित दस्तावेज़
- डिस्कवरी नीति और ट्रांसपोर्ट चयन: Discovery
- नोड पेयरिंग + अनुमोदन: Gateway pairing