Tailscale (لوحة تحكّم Gateway)
يمكن لـ OpenClaw تهيئة Tailscale Serve (ضمن tailnet) أو Funnel (عام) تلقائيًا للوحة تحكّم Gateway ومنفذ WebSocket. يحافظ ذلك على ربط Gateway بـ loopback بينما توفّر Tailscale بروتوكول HTTPS والتوجيه، و(في Serve) رؤوس الهوية.أوضاع
serve: Serve ضمن tailnet فقط عبرtailscale serve. تبقى البوابة على127.0.0.1.funnel: HTTPS عام عبرtailscale funnel. يتطلّب OpenClaw كلمة مرور مشتركة.off: الافتراضي (لا أتمتة لـ Tailscale).
المصادقة
عيّنgateway.auth.mode للتحكّم في المصافحة:
token(الافتراضي عندما يتم تعيينOPENCLAW_GATEWAY_TOKEN)password(سرّ مشترك عبرOPENCLAW_GATEWAY_PASSWORDأو التهيئة)
tailscale.mode = "serve" وgateway.auth.allowTailscale هو true،
يمكن لطلبات وكيل Serve الصالحة المصادقة عبر رؤوس هوية Tailscale
(tailscale-user-login) دون تقديم رمز/كلمة مرور. يتحقّق OpenClaw من
الهوية عبر حلّ عنوان x-forwarded-for باستخدام برنامج Tailscale
المحلّي (tailscale whois) ومطابقته مع الرأس قبل قبوله.
لا يتعامل OpenClaw مع الطلب على أنّه Serve إلا إذا وصل من loopback
مع رؤوس Tailscale x-forwarded-for وx-forwarded-proto وx-forwarded-host.
لفرض بيانات اعتماد صريحة، عيّن gateway.auth.allowTailscale: false أو
افرِض gateway.auth.mode: "password".
أمثلة التهيئة
ضمن tailnet فقط (Serve)
https://<magicdns>/ (أو gateway.controlUi.basePath الذي قمت بتهيئته)
ضمن tailnet فقط (الربط بعنوان Tailnet IP)
استخدم هذا عندما تريد أن يستمع Gateway مباشرةً على عنوان Tailnet IP (من دون Serve/Funnel).- واجهة التحكّم:
http://<tailscale-ip>:18789/ - ويب سوكِت:
ws://<tailscale-ip>:18789
http://127.0.0.1:18789) في هذا الوضع.
الإنترنت العام (Funnel + كلمة مرور مشتركة)
OPENCLAW_GATEWAY_PASSWORD بدل حفظ كلمة مرور على القرص.
أمثلة CLI
ملاحظات
- يتطلّب Tailscale Serve/Funnel تثبيت CLI الخاص بـ
tailscaleوتسجيل الدخول. - يرفض
tailscale.mode: "funnel"البدء ما لم يكن وضع المصادقة هوpasswordلتجنّب التعرّض العام. - عيّن
gateway.tailscale.resetOnExitإذا أردت من OpenClaw التراجع عن تهيئةtailscale serveأوtailscale funnelعند الإيقاف. gateway.bind: "tailnet"هو ربط مباشر بـ Tailnet (من دون HTTPS، ولا Serve/Funnel).- يفضّل
gateway.bind: "auto"loopback؛ استخدمtailnetإذا أردت tailnet فقط. - يعرّض Serve/Funnel فقط واجهة تحكّم Gateway + WS. تتصل العُقد عبر نقطة نهاية Gateway WS نفسها، لذا يمكن أن يعمل Serve للوصول إلى العُقد.
التحكم في المتصفح (البوابة البعيدة + المتصفح المحلي)
إذا شغّلت Gateway على جهاز وتريد قيادة متصفّح على جهاز آخر، فشغّل مضيف عُقدة على جهاز المتصفّح وأبقِ الجهازين ضمن tailnet نفسه. سيقوم Gateway بتمرير إجراءات المتصفّح إلى العُقدة؛ لا حاجة إلى خادم تحكّم منفصل أو عنوان Serve. تجنب Funnel للتحكم في المتصفح؛ معالجة اقتران العقدة مثل وصول المشغل.متطلبات Tailscale والقيود
- يتطلّب Serve تمكين HTTPS لـ tailnet الخاص بك؛ وسيطالبك CLI إذا كان مفقودًا.
- يحقن Serve رؤوس هوية Tailscale؛ بينما لا يفعل Funnel ذلك.
- يتطلّب Funnel Tailscale الإصدار 1.38.3+ وMagicDNS وتمكين HTTPS وسِمة funnel للعُقدة.
- يدعم Funnel فقط المنافذ
443و8443و10000عبر TLS. - يتطلّب Funnel على macOS نسخة تطبيق Tailscale مفتوحة المصدر.
تعلّم المزيد
- نظرة عامة على Tailscale Serve: https://tailscale.com/kb/1312/serve
- أمر
tailscale serve: https://tailscale.com/kb/1242/tailscale-serve - نظرة عامة على Tailscale Funnel: https://tailscale.com/kb/1223/tailscale-funnel
- أمر
tailscale funnel: https://tailscale.com/kb/1311/tailscale-funnel