Remote access
Tailscale
OpenClaw, Gateway panosu ve WebSocket portu için Tailscale Serve (tailnet) veya Funnel (genel) yapılandırmasını otomatik olarak yapabilir. Böylece Gateway local loopback'a bağlı kalırken Tailscale HTTPS, yönlendirme ve (Serve için) kimlik üstbilgileri sağlar.
Modlar
gateway.tailscale.mode:
| Mod | Davranış |
|---|---|
serve |
tailscale serve üzerinden yalnızca tailnet'e açık Serve. Gateway 127.0.0.1 üzerinde kalır. |
funnel |
tailscale funnel üzerinden genel HTTPS. Paylaşılan parola gerektirir. |
off (varsayılan) |
Tailscale otomasyonu yoktur. |
Durum ve denetim çıktıları, bu OpenClaw Serve/Funnel modu için Tailscale erişimi ifadesini kullanır. off, OpenClaw'ın Serve veya Funnel'ı yönetmediği anlamına gelir; yerel Tailscale hizmetinin durdurulduğu veya oturumunun kapatıldığı anlamına gelmez.
Yapılandırma örnekleri
Yalnızca tailnet (Serve)
{ gateway: { bind: "loopback", tailscale: { mode: "serve" }, },}Şunu açın: https://<magicdns>/ (veya yapılandırdığınız gateway.controlUi.basePath)
Control UI'ı cihaz ana bilgisayar adı yerine adlandırılmış bir Tailscale Service üzerinden kullanıma açmak için gateway.tailscale.serviceName değerini Service adına ayarlayın:
{ gateway: { bind: "loopback", tailscale: { mode: "serve", serviceName: "svc:openclaw" }, },}Başlangıçta cihaz ana bilgisayar adı yerine Service URL'si https://openclaw.<tailnet-name>.ts.net/ olarak bildirilir. Tailscale Services, ana bilgisayarın tailnet'inizde onaylanmış ve etiketlenmiş bir Node olmasını gerektirir — bunu etkinleştirmeden önce etiketi yapılandırın ve Service'i Tailscale'de onaylayın; aksi takdirde Gateway başlatılırken tailscale serve --service=... başarısız olur.
Yalnızca tailnet (Tailnet IP'sine bağlanma)
Gateway'in Serve/Funnel olmadan doğrudan Tailnet IP'sini dinlemesi için bunu kullanın:
{ gateway: { bind: "tailnet", auth: { mode: "token", token: "your-token" }, },}Başka bir Tailnet cihazından bağlanın:
- Control UI:
http://<tailscale-ip>:18789/ - WebSocket:
ws://<tailscale-ip>:18789
Genel internet (Funnel + paylaşılan parola)
{ gateway: { bind: "loopback", tailscale: { mode: "funnel" }, auth: { mode: "password", password: "replace-me" }, },}Parolayı diske kaydetmek yerine OPENCLAW_GATEWAY_PASSWORD kullanmayı tercih edin.
CLI örnekleri
openclaw gateway --tailscale serveopenclaw gateway --tailscale funnel --auth passwordKimlik doğrulama
gateway.auth.mode, el sıkışmayı denetler:
| Mod | Kullanım amacı |
|---|---|
none |
Yalnızca özel giriş |
token (OPENCLAW_GATEWAY_TOKEN ayarlandığında varsayılan) |
Paylaşılan belirteç |
password |
OPENCLAW_GATEWAY_PASSWORD veya yapılandırma üzerinden paylaşılan gizli değer |
trusted-proxy |
Kimlik bilgisine duyarlı ters proxy; bkz. Güvenilir Proxy Kimlik Doğrulaması |
Tailscale kimlik üstbilgileri (yalnızca Serve)
tailscale.mode: "serve" ve gateway.auth.allowTailscale değeri true olduğunda Control UI/WebSocket kimlik doğrulaması, belirteç/parola yerine Tailscale kimlik üstbilgilerini (tailscale-user-login) kullanabilir. OpenClaw, isteğin x-forwarded-for adresini yerel Tailscale hizmeti (tailscale whois) üzerinden çözümleyip kabul etmeden önce üstbilgideki oturum açma bilgisiyle eşleştirerek üstbilgiyi doğrular. Bir istek, yalnızca local loopback üzerinden gelip Tailscale'in x-forwarded-for, x-forwarded-proto ve x-forwarded-host üstbilgilerini taşıdığında bu yola uygun olur.
Bu belirteçsiz akış, Gateway ana bilgisayarının güvenilir olduğunu varsayar. Güvenilmeyen yerel kod aynı ana bilgisayarda çalışabiliyorsa gateway.auth.allowTailscale: false olarak ayarlayın ve bunun yerine belirteç/parola ile kimlik doğrulamasını zorunlu kılın.
Atlamanın kapsamı:
- Yalnızca Control UI WebSocket kimlik doğrulama yüzeyine uygulanır. HTTP API uç noktaları (
/v1/*,/tools/invoke,/api/channels/*vb.) hiçbir zaman Tailscale kimlik üstbilgisi doğrulamasını kullanmaz; her zaman Gateway'in normal HTTP kimlik doğrulama modunu izler. - Tarayıcı cihaz kimliğini zaten taşıyan Control UI operatör oturumlarında doğrulanmış bir Tailscale kimliği, başlangıç belirteci/QR eşleştirme gidiş dönüşünü atlar.
- Cihaz kimliğinin kendisini atlamaz: cihazı olmayan istemciler yine reddedilir ve Node rolü bağlantıları normal eşleştirme ve kimlik doğrulama kontrollerinden geçmeye devam eder.
Notlar
- Tailscale Serve/Funnel,
tailscaleCLI'ın yüklü ve oturum açmış olmasını gerektirir. tailscale.mode: "funnel", genel erişimi önlemek için kimlik doğrulama modupasswordolmadığı sürece başlatmayı reddeder.gateway.tailscale.serviceNameyalnızca Serve moduna uygulanır vetailscale serve --service=<name>komutuna iletilir. Değer, Tailscale'insvc:<dns-label>biçimini kullanmalıdır; örneğinsvc:openclaw. Tailscale, Service ana bilgisayarlarının etiketlenmiş Node'lar olmasını gerektirir ve Serve'in Service'i yayımlayabilmesi için yönetici konsolu onayı gerekebilir.gateway.tailscale.resetOnExit, kapanış sırasındatailscale serve/tailscale funnelyapılandırmasını geri alır.gateway.tailscale.preserveFunnel: true, harici olarak yapılandırılmış birtailscale funnelrotasını Gateway yeniden başlatmaları boyunca etkin tutar.mode: "serve"ile OpenClaw, Serve'i yeniden uygulamadan öncetailscale funnel statusdurumunu denetler ve bir Funnel rotası Gateway portunu zaten kapsıyorsa bu işlemi atlar. OpenClaw tarafından yönetilen Funnel'ın yalnızca parola politikası değişmez.gateway.bind: "tailnet", bir Tailnet IPv4 kullanılabilir olduğunda doğrudan Tailnet bağlantısının (HTTPS yok, Serve/Funnel yok) yanı sıra zorunlu yerel127.0.0.1adresini kullanır; aksi takdirde yalnızca local loopback'a geri döner.gateway.bind: "auto"local loopback'ı tercih eder; aynı ana bilgisayardaki local loopback erişimini korurken ağ erişimini Tailnet ile sınırlamak içintailnetkullanın.- Serve/Funnel yalnızca Gateway Control UI + WS'yi kullanıma açar. Node'lar aynı Gateway WS uç noktası üzerinden bağlandığından Serve, Node erişimi için de çalışır.
Tailscale ön koşulları ve sınırları
- Serve, tailnet'iniz için HTTPS'nin etkinleştirilmesini gerektirir; eksikse CLI sizden etkinleştirmenizi ister.
- Serve, Tailscale kimlik üstbilgileri ekler; Funnel eklemez.
- Funnel; Tailscale v1.38.3+, MagicDNS, etkinleştirilmiş HTTPS ve bir Funnel Node niteliği gerektirir.
- Funnel, TLS üzerinden yalnızca
443,8443ve10000portlarını destekler. - macOS'ta Funnel, açık kaynaklı Tailscale uygulaması sürümünü gerektirir.
Tarayıcı denetimi (uzak Gateway + yerel tarayıcı)
Gateway'i bir makinede çalıştırıp başka bir makinedeki tarayıcıyı yönetmek için tarayıcı makinesinde bir Node ana bilgisayarı çalıştırın ve her ikisini de aynı tailnet'te tutun. Gateway, tarayıcı eylemlerini Node'a proxy'ler; ayrı bir denetim sunucusu veya Serve URL'si gerekmez.
Tarayıcı denetimi için Funnel kullanmaktan kaçının; Node eşleştirmesini operatör erişimi gibi değerlendirin.
Daha fazla bilgi
- Tailscale Serve'a genel bakış: https://tailscale.com/kb/1312/serve
tailscale servekomutu: https://tailscale.com/kb/1242/tailscale-serve- Tailscale Funnel'a genel bakış: https://tailscale.com/kb/1223/tailscale-funnel
tailscale funnelkomutu: https://tailscale.com/kb/1311/tailscale-funnel