Gateway
Keşif ve taşıma mekanizmaları
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 şekilde eşleşmesi.
Tüm ağ keşfi/reklamı Node Gateway içinde gerçekleşir
(openclaw gateway); istemciler (Mac uygulaması, iOS) yalnızca tüketicidir.
Terimler
- Gateway: duruma (oturumlar, eşleştirme, Node kayıt defteri) sahip olan 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ı mümkündür.
- Gateway WS (denetim düzlemi): varsayılan olarak
127.0.0.1:18789üzerindeki WebSocket uç noktasıdır;gateway.bindaracılığıyla LAN/tailnet'e bağlayın. - Doğrudan WS aktarımı: LAN/tailnet'e dönük bir Gateway WS uç noktasıdır (SSH yoktur).
- SSH aktarımı (geri dönüş seçeneği):
127.0.0.1:18789bağlantı noktasını 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).
Neden hem doğrudan bağlantı hem de SSH vardır?
- Doğrudan WS, aynı ağda ve bir tailnet içinde en iyi kullanıcı deneyimini sunar: Bonjour üzerinden LAN otomatik keşfi, Gateway'in yönettiği eşleştirme token'ları ve ACL'ler ve kabuk erişimi gerektirmemesi.
- SSH evrensel geri dönüş seçeneğidir: ilgisiz ağlar arasında bile SSH erişiminizin olduğu her yerde ç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, mümkün olan en iyi şekilde çalışır ve ağlar arasında geçiş yapmaz. OpenClaw ayrıca
aynı Gateway işaretinin yapılandırılmış geniş alan DNS-SD
alan adı üzerinden taranmasını destekler; böylece keşif hem aynı LAN'daki local. öğesini hem de ağlar arası keşif için yapılandırılmış
tek noktaya yayın DNS-SD alan adını kapsayabilir.
Paketle birlikte gelen bonjour Plugin etkinleştirildiğinde Gateway, WS uç noktasını Bonjour üzerinden duyurur;
istemciler tarama yapıp bir "Gateway seçin" listesi gösterir,
ardından seçilen uç noktayı saklar.
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 etkinleştirildiğinde. gatewayTlsSha256=<sha256>Yalnızca TLS etkinleştirildiğinde ve parmak izi kullanılabilir olduğunda. tailnetDns=<magicdns>İsteğe bağlı ipucu; Tailscale kullanılabilir olduğunda 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 olarak22kullanır).cliPath=<path>sshPortile aynıdiscovery.mdns.mode="full"koşulu; CLI yolu için uzaktan kurulum ipucu.Gelecekteki bir tuval ana makinesi 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 bir değer ayarlamadığından bugün hiçbir zaman yayınlanmaz.
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 önceden saklanmış bir sabitlemeyi geçersiz kılmasına asla izin vermemelidir. - Seçilen yol güvenli/TLS tabanlı olduğunda iOS/Android Node'ları ilk kez bir sabitleme kaydetmeden önce açık bir "bu parmak izine güven" onayı (bant dışı doğrulama) istemelidir.
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=1, duyuruyu zorla devre dışı bırakır;discovery.mdns.mode="off"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 katılımdır;discovery.mdns.mode="off"değerini geçersiz kılmaz. Paketle birlikte gelenbonjourPlugin, macOS ana makinelerinde (enabledByDefaultOnPlatforms: ["darwin"]) otomatik başlatılır ve algılanan kapsayıcıların içinde otomatik devre dışı bırakılır; Linux, Windows ve diğer kapsayıcılı dağıtımlar açıkçaplugins enable bonjourgerektirir.~/.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ınlar.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 yayınlar (geniş alan işaretleri dâhil).
macOS uygulaması, Gateway keşfinde ham Tailscale IP'leri yerine MagicDNS adlarını tercih eder;
MagicDNS otomatik olarak güncel IP'ye çözümlendiği için tailnet IP'leri değiştiğinde (Node yeniden başlatmaları,
CGNAT yeniden ataması) bu yöntem güvenilirliğini korur.
Mobil Node eşleştirmesinde keşif ipuçları, tailnet/genel yollarda aktarım güvenliğini asla gevşetmez:
- iOS/Android yine de ilk tailnet/genel bağlantı için güvenli bir yol
(
wss://veya Tailscale Serve/Funnel) gerektirir. - Keşfedilen ham bir tailnet IP'si, düz metin uzak
ws://kullanım izni değil, bir yönlendirme ipucudur. - Özel LAN üzerinden doğrudan bağlantı
ws://desteği sürer. - 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) Manuel / SSH hedefi
Doğrudan bir yol olmadığında (veya doğrudan bağlantı devre dışı bırakıldığında), istemciler geri döngü Gateway bağlantı noktasını yönlendirerek her zaman SSH üzerinden bağlanabilir. Bkz. Uzaktan erişim.
Aktarım seçimi (istemci politikası)
- Eşleştirilmiş bir doğrudan uç nokta yapılandırılmış ve erişilebilir durumdaysa onu kullanın.
- Aksi takdirde keşif,
local.veya yapılandırılmış geniş alan alan adı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 yollardaki 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ğruluk kaynağı Gateway'dir:
- Eşleştirme istekleri Gateway'de oluşturulur/onaylanır/reddedilir (bkz. Gateway eşleştirmesi).
- Gateway, kimlik doğrulamayı (token/anahtar çifti), kapsamları/ACL'leri (her yönteme yönelik ham bir proxy 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ın sahibidir 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 geri dönüş seçeneği 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.