Gateway
Keşif ve taşıma yöntemleri
OpenClaw'ın birbiriyle ilişkili ancak birbirinden farklı iki keşif sorunu vardır:
- Operatör uzaktan denetimi: başka bir yerde çalışan Gateway'i denetleyen macOS menü çubuğu uygulaması.
- Node eşleştirme: iOS/Android'in (ve gelecekteki Node'ların) bir Gateway bulması ve güvenli biçimde eşleşmesi.
Tüm ağ keşfi/duyurusu Node Gateway (openclaw gateway) içinde gerçekleşir; istemciler (Mac uygulaması, iOS) yalnızca tüketicidir.
Terimler
- Gateway: durumu (oturumlar, eşleştirme, Node kayıt defteri) yöneten ve kanalları çalıştıran, uzun süre çalışan tek bir süreç. Çoğu kurulumda ana makine başına bir tane kullanılır; yalıtılmış çoklu Gateway kurulumları da mümkündür.
- Gateway WS (denetim düzlemi): varsayılan olarak
127.0.0.1:18789adresindeki WebSocket uç noktasıdır;gateway.bindaracılığıyla LAN/tailnet'e bağlayın. - Doğrudan WS aktarımı: LAN/tailnet'e yönelik bir Gateway WS uç noktasıdır (SSH kullanılmaz).
- SSH aktarımı (yedek seçenek):
127.0.0.1:18789adresini SSH üzerinden yönlendirerek uzaktan denetim. - Eski TCP köprüsü (kaldırıldı): eski Node aktarımıdır (bkz. Köprü protokolü); artık keşif için duyurulmaz ve güncel derlemelerin parçası değildir.
Protokol ayrıntıları: Gateway protokolü, Köprü protokolü (eski).
Hem doğrudan bağlantı hem SSH neden var?
- Doğrudan WS, aynı ağda ve bir tailnet içinde en iyi kullanıcı deneyimini sağlar: Bonjour aracılığıyla LAN'da otomatik keşif, Gateway tarafından yönetilen eşleştirme belirteçleri ve ACL'ler ve kabuk erişimi gerektirmemesi.
- SSH, evrensel yedek seçenektir: SSH erişiminizin olduğu her yerde, birbiriyle ilgisiz ağlar arasında bile çalışır; çok noktaya yayın/mDNS sorunlarından etkilenmez ve SSH dışında yeni bir gelen bağlantı noktası gerektirmez.
Keşif girdileri
1) Bonjour / DNS-SD
Çok noktaya yayın Bonjour, en iyi çaba esasına göre çalışır ve ağlar arasında geçiş yapmaz. OpenClaw ayrıca aynı Gateway işaretinin yapılandırılmış bir geniş alan DNS-SD etki alanı üzerinden taranmasını destekler; böylece keşif, aynı LAN'daki local. alanını ve ağlar arası keşif için yapılandırılmış tek noktaya yayın DNS-SD etki alanını kapsayabilir.
Paketle gelen bonjour Plugin'i etkinleştirildiğinde Gateway, WS uç noktasını Bonjour aracılığıyla duyurur; istemciler tarama yapıp bir "Gateway seçin" listesi gösterir ve ardından seçilen uç noktayı kaydeder.
Sorun giderme ve işaret ayrıntıları: Bonjour.
Hizmet işareti ayrıntıları
-
Hizmet türü:
_openclaw-gw._tcp(Gateway aktarım işareti). -
TXT anahtarları (gizli değildir):
Anahtar Notlar role=gatewayHer zaman bulunur. transport=gatewayHer zaman bulunur. displayName=<name>Operatör tarafından yapılandırılan görünen ad. lanHost=<hostname>.localYalnızca LAN mDNS duyurucusu; geniş alan DNS-SD tarafından yazılmaz. gatewayPort=18789Gateway WS + HTTP bağlantı noktası. gatewayTls=1Yalnızca TLS etkin olduğunda. gatewayTlsSha256=<sha256>Yalnızca TLS etkin olduğunda ve parmak izi mevcut olduğunda. tailnetDns=<magicdns>İsteğe bağlı ipucu; Tailscale kullanılabiliyorsa otomatik olarak algılanır. sshPort=<port>Yalnızca discovery.mdns.mode="full"olduğunda bulunur; hem LAN duyurucusunda hem de geniş alan DNS-SD'de varsayılan"minimal"modunda atlanır (SSH varsayılanı22'dir).cliPath=<path>sshPortile aynıdiscovery.mdns.mode="full"koşuluna bağlıdır; CLI yolu için bir uzak kurulum ipucudur.Gelecekteki bir tuval ana makine bağlantı noktası için Plugin keşif sözleşmesinde bir
canvasPortTXT anahtarı tanımlanmıştır; ancak güncel hiçbir kod yolu değer atamadığından şu anda hiçbir zaman yayımlanmaz.
Güvenlik notları:
- Bonjour/mDNS TXT kayıtlarının kimliği doğrulanmaz. İstemciler TXT değerlerini yalnızca kullanıcı deneyimi ipuçları olarak değerlendirmelidir.
- Yönlendirme (ana makine/bağlantı noktası), TXT tarafından sağlanan
lanHost,tailnetDnsveyagatewayPortyerine çözümlenmiş hizmet uç noktasını (SRV + A/AAAA) tercih etmelidir. - TLS sabitleme, duyurulan bir
gatewayTlsSha256değerinin daha önce kaydedilmiş bir sabitlemeyi geçersiz kılmasına asla izin vermemelidir. - Seçilen rota güvenli/TLS tabanlı olduğunda iOS/Android Node'ları, ilk kez görülen bir sabitlemeyi kaydetmeden önce açık bir "bu parmak izine güven" onayı (bant dışı doğrulama) gerektirmelidir.
Etkinleştirme, devre dışı bırakma ve geçersiz kılma:
openclaw plugins enable bonjour, LAN çok noktaya yayın duyurusunu etkinleştirir.openclaw.jsoniçindekidiscovery.mdns.mode, mDNS yayınını denetler:"minimal"(varsayılan),"full"(hem LAN işaretine hem de tüm geniş alan DNS-SD bölgelerinecliPath/sshPortekler) veya"off"(mDNS'yi devre dışı bırakır).OPENCLAW_DISABLE_BONJOUR=1duyuruyu zorla devre dışı bırakır;discovery.mdns.mode="off"ise bunu bağımsız olarak devre dışı bırakır.OPENCLAW_DISABLE_BONJOUR=0, algılanan bir kapsayıcı (Docker, containerd, Kubernetes, LXC) içinde Plugin'in otomatik devre dışı bırakmasını geçersiz kılan açık bir etkinleştirmedir;discovery.mdns.mode="off"ayarını geçersiz kılmaz. Paketle gelenbonjourPlugin'i macOS ana makinelerinde otomatik olarak başlar (enabledByDefaultOnPlatforms: ["darwin"]) ve algılanan kapsayıcıların içinde otomatik olarak devre dışı kalır; Linux, Windows ve diğer kapsayıcılı dağıtımlar açıkçaplugins enable bonjourkomutunun çalıştırılmasını gerektirir.~/.openclaw/openclaw.jsoniçindekigateway.bind, Gateway bağlama modunu denetler.OPENCLAW_SSH_PORT, duyurulan SSH bağlantı noktasını geçersiz kılar (yalnızcadiscovery.mdns.mode="full"olduğunda etkili olur).OPENCLAW_TAILNET_DNS, birtailnetDnsipucu (MagicDNS) yayımlar.OPENCLAW_CLI_PATH, duyurulan CLI yolunu geçersiz kılar.
2) Tailnet (ağlar arası)
Farklı fiziksel ağlardaki Gateway'ler için Bonjour yardımcı olmaz. Önerilen doğrudan hedef, bir Tailscale MagicDNS adı (tercih edilir) veya kararlı bir tailnet IP adresidir.
Gateway, Tailscale altında çalıştığını algılarsa istemciler için isteğe bağlı bir ipucu olarak tailnetDns değerini yayımlar (geniş alan işaretleri dâhil). macOS uygulaması, Gateway keşfinde ham Tailscale IP adresleri yerine MagicDNS adlarını tercih eder. MagicDNS otomatik olarak güncel IP adresini çözümlediğinden bu yaklaşım, tailnet IP adresleri değiştiğinde (Node yeniden başlatmaları, CGNAT yeniden ataması) güvenilirliğini korur.
Mobil Node eşleştirmesinde keşif ipuçları, tailnet/genel rotalardaki aktarım güvenliğini hiçbir zaman gevşetmez:
- iOS/Android yine de ilk tailnet/genel bağlantıda güvenli bir bağlantı yolu (
wss://veya Tailscale Serve/Funnel) gerektirir. - Keşfedilmiş ham bir tailnet IP adresi, bir yönlendirme ipucudur; uzak
ws://bağlantısının düz metin olarak kullanılmasına izin vermez. - Özel LAN'da doğrudan
ws://bağlantısı desteklenmeye devam eder. - Mobil Node'larda en basit Tailscale yolu için Tailscale Serve kullanın; böylece hem keşif hem de kurulum aynı güvenli MagicDNS uç noktasına çözümlenir.
3) El ile / SSH hedefi
Doğrudan rota olmadığında (veya doğrudan bağlantı devre dışı bırakıldığında), istemciler local loopback Gateway bağlantı noktasını yönlendirerek her zaman SSH üzerinden bağlanabilir. Bkz. Uzaktan erişim.
Aktarım seçimi (istemci ilkesi)
- Eşleştirilmiş bir doğrudan uç nokta yapılandırılmış ve erişilebilir durumdaysa onu kullanın.
- Aksi takdirde keşif,
local.üzerinde veya yapılandırılmış geniş alan etki alanında bir Gateway bulursa tek dokunuşla "Bu Gateway'i kullan" seçeneğini sunun ve bunu doğrudan uç nokta olarak kaydedin. - Aksi takdirde bir tailnet DNS/IP yapılandırılmışsa doğrudan bağlantıyı deneyin. Tailnet/genel rotalardaki mobil Node'lar için doğrudan bağlantı, düz metin uzak
ws://değil, güvenli bir uç nokta anlamına gelir. - Aksi takdirde SSH'ye geri dönün.
Eşleştirme ve kimlik doğrulama (doğrudan aktarım)
Node/istemci kabulünde doğruluğun kaynağı Gateway'dir:
- Eşleştirme istekleri Gateway'de oluşturulur/onaylanır/reddedilir (bkz. Gateway eşleştirme).
- Gateway; kimlik doğrulamayı (belirteç/anahtar çifti), kapsamları/ACL'leri (her yönteme erişim sağlayan ham bir vekil değildir) ve hız sınırlarını uygular.
Bileşenlere göre sorumluluklar
- Gateway: keşif işaretlerini duyurur, eşleştirme kararlarını yönetir ve WS uç noktasını barındırır.
- macOS uygulaması: Gateway seçmenize yardımcı olur, eşleştirme istemlerini gösterir ve SSH'yi yalnızca yedek seçenek olarak kullanır.
- iOS/Android Node'ları: kolaylık sağlamak için Bonjour'u tarar ve eşleştirilmiş Gateway WS'ye bağlanır.