OpenClaw dapat mengonfigurasi otomatis Tailscale Serve (tailnet) atau Funnel (publik) untuk dasbor Gateway dan port WebSocket. Ini menjaga Gateway tetap terikat ke loopback sementara Tailscale menyediakan HTTPS, perutean, dan (untuk Serve) header identitas.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Mode
serve: Serve khusus tailnet melaluitailscale serve. Gateway tetap berada di127.0.0.1.funnel: HTTPS publik melaluitailscale funnel. OpenClaw memerlukan kata sandi bersama.off: Default (tanpa otomatisasi Tailscale).
off berarti OpenClaw tidak mengelola Serve atau Funnel; ini tidak berarti daemon Tailscale lokal dihentikan atau keluar dari akun.
Auth
Aturgateway.auth.mode untuk mengontrol handshake:
none(hanya ingress privat)token(default saatOPENCLAW_GATEWAY_TOKENdiatur)password(rahasia bersama melaluiOPENCLAW_GATEWAY_PASSWORDatau konfigurasi)trusted-proxy(reverse proxy sadar identitas; lihat Auth Proxy Tepercaya)
tailscale.mode = "serve" dan gateway.auth.allowTailscale bernilai true, auth Control UI/WebSocket dapat menggunakan header identitas Tailscale (tailscale-user-login) tanpa menyediakan token/kata sandi. OpenClaw memverifikasi identitas dengan me-resolve alamat x-forwarded-for melalui daemon Tailscale lokal (tailscale whois) dan mencocokkannya dengan header sebelum menerimanya. OpenClaw hanya memperlakukan permintaan sebagai Serve saat permintaan tiba dari loopback dengan header x-forwarded-for, x-forwarded-proto, dan x-forwarded-host milik Tailscale.
Untuk sesi operator Control UI yang menyertakan identitas perangkat browser, jalur Serve yang terverifikasi ini juga melewati perjalanan pulang-pergi pemasangan perangkat. Ini tidak melewati identitas perangkat browser: klien tanpa perangkat tetap ditolak, dan koneksi node-role atau WebSocket non-Control UI tetap mengikuti pemeriksaan pemasangan dan auth normal.
Endpoint HTTP API (misalnya /v1/*, /tools/invoke, dan /api/channels/*) tidak menggunakan auth header identitas Tailscale. Endpoint tersebut tetap mengikuti mode auth HTTP normal gateway: auth rahasia bersama secara default, atau setup trusted-proxy / ingress privat none yang dikonfigurasi secara sengaja.
Alur tanpa token ini mengasumsikan host gateway tepercaya. Jika kode lokal yang tidak tepercaya mungkin berjalan di host yang sama, nonaktifkan gateway.auth.allowTailscale dan wajibkan auth token/kata sandi sebagai gantinya.
Untuk mewajibkan kredensial rahasia bersama eksplisit, atur gateway.auth.allowTailscale: false dan gunakan gateway.auth.mode: "token" atau "password".
Contoh konfigurasi
Khusus tailnet (Serve)
https://<magicdns>/ (atau gateway.controlUi.basePath yang Anda konfigurasi)
Khusus tailnet (ikat ke IP Tailnet)
Gunakan ini saat Anda ingin Gateway mendengarkan langsung di IP Tailnet (tanpa Serve/Funnel).- Control UI:
http://<tailscale-ip>:18789/ - WebSocket:
ws://<tailscale-ip>:18789
Loopback (
http://127.0.0.1:18789) tidak akan berfungsi dalam mode ini.Internet publik (Funnel + kata sandi bersama)
OPENCLAW_GATEWAY_PASSWORD daripada melakukan commit kata sandi ke disk.
Contoh CLI
Catatan
- Tailscale Serve/Funnel memerlukan CLI
tailscaleterinstal dan sudah masuk. tailscale.mode: "funnel"menolak untuk memulai kecuali mode auth adalahpassworduntuk menghindari eksposur publik.- Atur
gateway.tailscale.resetOnExitjika Anda ingin OpenClaw membatalkan konfigurasitailscale serveatautailscale funnelsaat shutdown. - Atur
gateway.tailscale.preserveFunnel: trueuntuk menjaga rutetailscale funnelyang dikonfigurasi secara eksternal tetap aktif di antara restart gateway. Saat diaktifkan dan gateway berjalan dalammode: "serve", OpenClaw memeriksatailscale funnel statussebelum menerapkan ulang Serve dan melewatinya saat rute Funnel sudah mencakup port gateway. Kebijakan Funnel khusus kata sandi yang dikelola OpenClaw tidak berubah. gateway.bind: "tailnet"adalah pengikatan Tailnet langsung (tanpa HTTPS, tanpa Serve/Funnel).gateway.bind: "auto"mengutamakan loopback; gunakantailnetjika Anda menginginkan khusus Tailnet.- Serve/Funnel hanya mengekspos UI kontrol Gateway + WS. Node terhubung melalui endpoint WS Gateway yang sama, sehingga Serve dapat berfungsi untuk akses node.
Kontrol browser (Gateway jarak jauh + browser lokal)
Jika Anda menjalankan Gateway di satu mesin tetapi ingin mengendalikan browser di mesin lain, jalankan host node di mesin browser dan pertahankan keduanya pada tailnet yang sama. Gateway akan mem-proxy tindakan browser ke node; tidak diperlukan server kontrol terpisah atau URL Serve. Hindari Funnel untuk kontrol browser; perlakukan pemasangan node seperti akses operator.Prasyarat + batasan Tailscale
- Serve memerlukan HTTPS diaktifkan untuk tailnet Anda; CLI akan meminta jika belum ada.
- Serve menyuntikkan header identitas Tailscale; Funnel tidak.
- Funnel memerlukan Tailscale v1.38.3+, MagicDNS, HTTPS diaktifkan, dan atribut node funnel.
- Funnel hanya mendukung port
443,8443, dan10000melalui TLS. - Funnel di macOS memerlukan varian aplikasi Tailscale sumber terbuka.
Pelajari lebih lanjut
- Ikhtisar Tailscale Serve: https://tailscale.com/kb/1312/serve
- Perintah
tailscale serve: https://tailscale.com/kb/1242/tailscale-serve - Ikhtisar Tailscale Funnel: https://tailscale.com/kb/1223/tailscale-funnel
- Perintah
tailscale funnel: https://tailscale.com/kb/1311/tailscale-funnel