الوصول البعيد
Tailscale
يمكن لـ OpenClaw تكوين Serve (tailnet) أو Funnel (عام) تلقائيًا في Tailscale للوحة تحكم البوابة ومنفذ WebSocket. هذا يحافظ على ارتباط البوابة بـ loopback بينما يوفر Tailscale HTTPS والتوجيه و (لـ Serve) رؤوس هوية.
الأوضاع
serve: Serve داخل الشبكة الذيلية فقط عبر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، يمكن لواجهة تحكم المستخدم/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. لا تزال نقاط نهاية واجهة برمجة التطبيقات HTTP (على سبيل المثال /v1/* و /tools/invoke و /api/channels/*) تتطلب مصادقة بالرمز/كلمة المرور. يفترض هذا التدفق بدون رمز أن مضيف البوابة موثوق به. إذا كان هناك رمز محلي غير موثوق قد يعمل على نفس المضيف، قم بتعطيل gateway.auth.allowTailscale واشترط مصادقة بالرمز/كلمة مرور بدلاً من ذلك. لاشتراط بيانات اعتماد صريحة، اضبط gateway.auth.allowTailscale: false أو فرض gateway.auth.mode: "password".
أمثلة التكوين
داخل الشبكة الذيلية فقط (Serve)
{
gateway: {
bind: "loopback",
tailscale: { mode: "serve" },
},
}
افتح: https:/// (أو gateway.controlUi.basePath الذي قمت بتكوينه)