openclaw node
شغّل مضيف Node بدون واجهة يتصل بـ Gateway WebSocket ويعرض
system.run / system.which على هذا الجهاز.
لماذا تستخدم مضيف Node؟
استخدم مضيف Node عندما تريد من الوكلاء تشغيل أوامر على أجهزة أخرى في شبكتك دون تثبيت تطبيق macOS companion كامل هناك. حالات الاستخدام الشائعة:- تشغيل الأوامر على أجهزة Linux/Windows بعيدة (خوادم البناء، أجهزة المختبر، NAS).
- إبقاء exec معزولاً في sandbox على Gateway، مع تفويض عمليات التشغيل المعتمدة إلى مضيفين آخرين.
- توفير هدف تنفيذ خفيف وبدون واجهة للأتمتة أو عُقد CI.
وكيل المتصفح (بدون إعداد)
تعلن مضيفات Node تلقائياً عن وكيل متصفح إذا لم يكنbrowser.enabled
معطلاً على العقدة. يتيح هذا للوكيل استخدام أتمتة المتصفح على تلك العقدة
دون إعداد إضافي.
افتراضياً، يعرّض الوكيل سطح ملف تعريف المتصفح العادي للعقدة. إذا ضبطت
nodeHost.browserProxy.allowProfiles، يصبح الوكيل مقيّداً:
يُرفض استهداف ملفات التعريف غير المدرجة في قائمة السماح، وتُحظر مسارات
إنشاء/حذف ملفات التعريف الدائمة عبر الوكيل.
عطّله على العقدة عند الحاجة:
التشغيل (في المقدمة)
--host <host>: مضيف Gateway WebSocket (الافتراضي:127.0.0.1)--port <port>: منفذ Gateway WebSocket (الافتراضي:18789)--context-path <path>: مسار سياق Gateway WebSocket (مثل/openclaw-gw). يُضاف إلى WebSocket URL.--tls: استخدم TLS لاتصال Gateway--tls-fingerprint <sha256>: بصمة شهادة TLS المتوقعة (sha256)--node-id <id>: تجاوز معرّف العقدة (يمسح رمز الاقتران)--display-name <name>: تجاوز اسم عرض العقدة
مصادقة Gateway لمضيف Node
يحلopenclaw node run وopenclaw node install مصادقة Gateway من config/env (لا توجد أعلام --token/--password على أوامر العقدة):
- يتم فحص
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORDأولاً. - ثم خيار الرجوع إلى الإعداد المحلي:
gateway.auth.token/gateway.auth.password. - في الوضع المحلي، لا يرث مضيف Node عمداً
gateway.remote.token/gateway.remote.password. - إذا تم تكوين
gateway.auth.token/gateway.auth.passwordصراحةً عبر SecretRef ولم يُحل، يفشل حل مصادقة العقدة بشكل مغلق (دون إخفاء عبر رجوع بعيد). - في
gateway.mode=remote، تكون حقول العميل البعيد (gateway.remote.token/gateway.remote.password) مؤهلة أيضاً وفق قواعد أسبقية الوضع البعيد. - لا يراعي حل مصادقة مضيف Node إلا متغيرات env من نمط
OPENCLAW_GATEWAY_*.
ws://، تُقبل عناوين حلقة الإرجاع، وعناوين IP
الخاصة الحرفية، و.local، ومضيفات Tailnet *.ts.net. بالنسبة إلى أسماء
private-DNS الموثوقة الأخرى، اضبط OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1؛ ومن دونه
يفشل بدء العقدة بشكل مغلق ويطلب منك استخدام wss://، أو نفق SSH، أو
Tailscale. هذا اشتراك على مستوى بيئة العملية، وليس مفتاح config في
openclaw.json.
يثبّته openclaw node install داخل خدمة العقدة المُدارة عندما يكون
موجوداً في بيئة أمر التثبيت.
الخدمة (في الخلفية)
ثبّت مضيف Node بدون واجهة كخدمة مستخدم.--host <host>: مضيف Gateway WebSocket (الافتراضي:127.0.0.1)--port <port>: منفذ Gateway WebSocket (الافتراضي:18789)--context-path <path>: مسار سياق Gateway WebSocket (مثل/openclaw-gw). يُضاف إلى WebSocket URL.--tls: استخدم TLS لاتصال Gateway--tls-fingerprint <sha256>: بصمة شهادة TLS المتوقعة (sha256)--node-id <id>: تجاوز معرّف العقدة (يمسح رمز الاقتران)--display-name <name>: تجاوز اسم عرض العقدة--runtime <runtime>: وقت تشغيل الخدمة (nodeأوbun)--force: أعد التثبيت/اكتب فوق الموجود إذا كان مثبتاً بالفعل
openclaw node run لمضيف Node في المقدمة (بدون خدمة).
تقبل أوامر الخدمة --json لمخرجات قابلة للقراءة آلياً.
يعيد مضيف Node محاولة تشغيل Gateway وإغلاق الشبكة داخل العملية. إذا أبلغ
Gateway عن إيقاف مصادقة نهائي للرمز/كلمة المرور/bootstrap، يسجّل مضيف Node
تفاصيل الإغلاق ويخرج بقيمة غير صفرية حتى يتمكن launchd/systemd من إعادة تشغيله
بإعدادات وبيانات اعتماد جديدة. تبقى إيقافات الاقتران المطلوبة في مسار
المقدمة حتى يمكن اعتماد الطلب المعلّق.
الاقتران
ينشئ الاتصال الأول طلب اقتران جهاز معلّقاً (role: node) على Gateway.
اعتمده عبر:
role: node جديد
دون نطاقات مطلوبة. ما تزال عملاء المشغّل/المتصفح، وControl UI، وWebChat، وترقيات الدور،
والنطاق، والبيانات الوصفية، أو المفتاح العام تتطلب اعتماداً يدوياً.
إذا أعادت العقدة محاولة الاقتران مع تفاصيل مصادقة متغيرة (الدور/النطاقات/المفتاح العام)،
يتم تجاوز الطلب المعلّق السابق ويُنشأ requestId جديد.
شغّل openclaw devices list مرة أخرى قبل الاعتماد.
يخزن مضيف Node معرّف العقدة، والرمز، واسم العرض، ومعلومات اتصال Gateway في
~/.openclaw/node.json.
موافقات exec
system.run محمي بموافقات exec المحلية:
$OPENCLAW_STATE_DIR/exec-approvals.json، أو~/.openclaw/exec-approvals.jsonعندما لا يكون المتغير مضبوطاً- موافقات exec
openclaw approvals --node <id|name|ip>(تحرير من Gateway)
systemRunPlan قانونية
قبل المطالبة. يستخدم توجيه system.run المعتمد لاحقاً تلك الخطة المخزنة
نفسها، لذلك تُرفض التعديلات على حقول command/cwd/session بعد إنشاء طلب
الموافقة بدلاً من تغيير ما تنفذه العقدة.