يمكن لـ OpenClaw تكوين Tailscale Serve (tailnet) أو Funnel (عام) تلقائيًا للوحة معلومات Gateway ومنفذ WebSocket. يُبقي ذلك Gateway مرتبطًا بـ loopback بينما يوفّر Tailscale HTTPS والتوجيه و(في Serve) ترويسات الهوية.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.
الأوضاع
serve: Serve مقتصر على Tailnet عبرtailscale serve. يبقى gateway على127.0.0.1.funnel: HTTPS عام عبرtailscale funnel. يتطلب OpenClaw كلمة مرور مشتركة.off: الافتراضي (لا توجد أتمتة لـ Tailscale).
off أن OpenClaw لا يدير Serve أو Funnel؛ ولا يعني أن عفريت Tailscale المحلي متوقف أو تم تسجيل خروجه.
المصادقة
اضبطgateway.auth.mode للتحكم في المصافحة:
none(دخول خاص فقط)token(الافتراضي عند تعيينOPENCLAW_GATEWAY_TOKEN)password(سر مشترك عبرOPENCLAW_GATEWAY_PASSWORDأو الإعدادات)trusted-proxy(وكيل عكسي مدرك للهوية؛ راجع مصادقة الوكيل الموثوق)
tailscale.mode = "serve" وgateway.auth.allowTailscale هو true، يمكن لمصادقة Control UI/WebSocket استخدام ترويسات هوية Tailscale (tailscale-user-login) من دون تقديم رمز/كلمة مرور. يتحقق OpenClaw من الهوية عبر حل عنوان x-forwarded-for بواسطة عفريت Tailscale المحلي (tailscale whois) ومطابقته مع الترويسة قبل قبوله. لا يتعامل OpenClaw مع الطلب على أنه Serve إلا عندما يصل من loopback مع ترويسات Tailscale وهي x-forwarded-for وx-forwarded-proto وx-forwarded-host.
بالنسبة إلى جلسات مشغل Control UI التي تتضمن هوية جهاز المتصفح، يتخطى مسار Serve المتحقق هذا أيضًا رحلة إقران الجهاز. وهو لا يتجاوز هوية جهاز المتصفح: تظل العملاء من دون جهاز مرفوضة، وتظل اتصالات WebSocket ذات دور العقدة أو غير الخاصة بـ Control UI تتبع فحوص الإقران والمصادقة العادية.
لا تستخدم نقاط نهاية HTTP API (مثل /v1/* و/tools/invoke و/api/channels/*) مصادقة ترويسات هوية Tailscale. فهي لا تزال تتبع وضع مصادقة HTTP العادي لـ gateway: مصادقة السر المشترك افتراضيًا، أو إعداد none مكوّنًا عن قصد لوكيل موثوق / دخول خاص.
يفترض هذا التدفق بلا رمز أن مضيف gateway موثوق. إذا كان يمكن تشغيل كود محلي غير موثوق على المضيف نفسه، فعطّل gateway.auth.allowTailscale واشترط مصادقة الرمز/كلمة المرور بدلًا من ذلك.
لاشتراط بيانات اعتماد صريحة بسر مشترك، اضبط gateway.auth.allowTailscale: false واستخدم gateway.auth.mode: "token" أو "password".
أمثلة الإعدادات
مقتصر على Tailnet (Serve)
https://<magicdns>/ (أو gateway.controlUi.basePath الذي قمت بتكوينه)
مقتصر على Tailnet (الربط بعنوان IP الخاص بـ Tailnet)
استخدم هذا عندما تريد أن يستمع Gateway مباشرة على عنوان IP الخاص بـ Tailnet (من دون Serve/Funnel).- Control UI:
http://<tailscale-ip>:18789/ - WebSocket:
ws://<tailscale-ip>:18789
لن يعمل Loopback (
http://127.0.0.1:18789) في هذا الوضع.الإنترنت العام (Funnel + كلمة مرور مشتركة)
OPENCLAW_GATEWAY_PASSWORD على حفظ كلمة مرور في القرص.
أمثلة CLI
ملاحظات
- يتطلب Tailscale Serve/Funnel تثبيت
tailscaleCLI وتسجيل الدخول. - يرفض
tailscale.mode: "funnel"البدء ما لم يكن وضع المصادقةpasswordلتجنب التعرض العام. - اضبط
gateway.tailscale.resetOnExitإذا أردت أن يتراجع OpenClaw عن إعداداتtailscale serveأوtailscale funnelعند إيقاف التشغيل. - اضبط
gateway.tailscale.preserveFunnel: trueللإبقاء على مسارtailscale funnelمكوّن خارجيًا نشطًا عبر عمليات إعادة تشغيل gateway. عند تمكين ذلك وتشغيل gateway فيmode: "serve"، يتحقق OpenClaw منtailscale funnel statusقبل إعادة تطبيق Serve ويتخطاه عندما يغطي مسار Funnel منفذ gateway بالفعل. لا تتغير سياسة Funnel المُدارة من OpenClaw والمقتصرة على كلمة المرور. gateway.bind: "tailnet"هو ربط مباشر بـ Tailnet (لا HTTPS، ولا Serve/Funnel).- يفضل
gateway.bind: "auto"loopback؛ استخدمtailnetإذا أردت Tailnet فقط. - لا يكشف Serve/Funnel إلا واجهة تحكم Gateway + WS. تتصل العقد عبر نقطة نهاية Gateway WS نفسها، لذلك يمكن أن يعمل Serve للوصول إلى العقد.
التحكم في المتصفح (Gateway بعيد + متصفح محلي)
إذا شغّلت Gateway على جهاز لكنك تريد تشغيل متصفح على جهاز آخر، فشغّل مضيف عقدة على جهاز المتصفح وأبقِ الاثنين على tailnet نفسها. سيوكّل Gateway إجراءات المتصفح إلى العقدة؛ لا حاجة إلى خادم تحكم منفصل أو عنوان URL لـ Serve. تجنب Funnel للتحكم في المتصفح؛ عامل إقران العقد مثل وصول المشغل.متطلبات Tailscale المسبقة + الحدود
- يتطلب Serve تمكين HTTPS لـ tailnet الخاصة بك؛ يطلب CLI ذلك إذا كان مفقودًا.
- يحقن Serve ترويسات هوية Tailscale؛ أما Funnel فلا يفعل.
- يتطلب Funnel إصدار Tailscale v1.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