openclaw node
شغّل مضيف عقدة headless يتصل بـ Gateway WebSocket ويكشف
system.run / system.which على هذا الجهاز.
لماذا تستخدم مضيف عقدة؟
استخدم مضيف عقدة عندما تريد أن تقوم الوكلاء بتشغيل الأوامر على أجهزة أخرى في شبكتك من دون تثبيت تطبيق macOS مصاحب كامل هناك. حالات الاستخدام الشائعة:- تشغيل الأوامر على أجهزة Linux/Windows بعيدة (خوادم بناء، أجهزة مختبر، NAS).
- إبقاء exec ضمن صندوق حماية على البوابة، مع تفويض عمليات التشغيل المعتمدة إلى مضيفين آخرين.
- توفير هدف تنفيذ خفيف وheadless لعمليات الأتمتة أو عقد CI.
وكيل المتصفح (بدون إعداد)
تعلن مضيفات العقد تلقائيًا عن وكيل متصفح إذا لم يتم تعطيلbrowser.enabled على العقدة. يتيح هذا للوكيل استخدام أتمتة المتصفح على تلك العقدة
من دون إعداد إضافي.
بشكل افتراضي، يكشف الوكيل عن سطح ملف تعريف المتصفح العادي للعقدة. وإذا
ضبطت nodeHost.browserProxy.allowProfiles، يصبح الوكيل مقيِّدًا:
يتم رفض استهداف ملفات التعريف غير الموجودة في قائمة السماح، كما تُحظر
مسارات إنشاء/حذف ملفات التعريف الدائمة عبر الوكيل.
عطّله على العقدة عند الحاجة:
التشغيل (الواجهة الأمامية)
--host <host>: مضيف Gateway WebSocket (الافتراضي:127.0.0.1)--port <port>: منفذ Gateway WebSocket (الافتراضي:18789)--tls: استخدام TLS لاتصال البوابة--tls-fingerprint <sha256>: بصمة شهادة TLS المتوقعة (sha256)--node-id <id>: تجاوز معرّف العقدة (يمسح رمز الاقتران)--display-name <name>: تجاوز الاسم المعروض للعقدة
مصادقة البوابة لمضيف العقدة
يقومopenclaw node run وopenclaw node install بتحليل مصادقة البوابة من الإعداد/البيئة (لا توجد علامات --token/--password على أوامر node):
- يتم التحقق أولًا من
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD. - ثم الرجوع إلى الإعداد المحلي:
gateway.auth.token/gateway.auth.password. - في الوضع المحلي، لا يرث مضيف العقدة عمدًا
gateway.remote.token/gateway.remote.password. - إذا تم إعداد
gateway.auth.token/gateway.auth.passwordصراحةً عبر SecretRef وكان غير محلول، يفشل تحليل مصادقة العقدة بشكل مغلق (من دون رجوع بعيد يخفي المشكلة). - في
gateway.mode=remote، تكون حقول العميل البعيد (gateway.remote.token/gateway.remote.password) مؤهلة أيضًا وفق قواعد أسبقية الوضع البعيد. - لا يحترم تحليل مصادقة مضيف العقدة إلا متغيرات البيئة
OPENCLAW_GATEWAY_*.
الخدمة (الخلفية)
ثبّت مضيف عقدة headless كخدمة مستخدم.--host <host>: مضيف Gateway WebSocket (الافتراضي:127.0.0.1)--port <port>: منفذ Gateway WebSocket (الافتراضي:18789)--tls: استخدام TLS لاتصال البوابة--tls-fingerprint <sha256>: بصمة شهادة TLS المتوقعة (sha256)--node-id <id>: تجاوز معرّف العقدة (يمسح رمز الاقتران)--display-name <name>: تجاوز الاسم المعروض للعقدة--runtime <runtime>: بيئة تشغيل الخدمة (nodeأوbun)--force: إعادة التثبيت/الاستبدال إذا كان مثبتًا بالفعل
openclaw node run للحصول على مضيف عقدة في الواجهة الأمامية (من دون خدمة).
تقبل أوامر الخدمة الخيار --json لإخراج قابل للقراءة آليًا.
الاقتران
ينشئ أول اتصال طلب اقتران جهاز معلقًا (role: node) على البوابة.
وافق عليه عبر:
requestId جديد.
شغّل openclaw devices list مرة أخرى قبل الموافقة.
يخزّن مضيف العقدة معرّف العقدة، والرمز، والاسم المعروض، ومعلومات اتصال البوابة في
~/.openclaw/node.json.
موافقات exec
يتم تقييدsystem.run بواسطة موافقات exec المحلية:
~/.openclaw/exec-approvals.json- موافقات Exec
openclaw approvals --node <id|name|ip>(للتعديل من البوابة)
systemRunPlan
قياسي قبل المطالبة. ثم تعيد عملية إعادة توجيه system.run المعتمدة لاحقًا استخدام تلك
الخطة المخزنة، لذلك يتم رفض التعديلات على حقول command/cwd/session بعد إنشاء
طلب الموافقة بدلًا من تغيير ما ستنفذه العقدة.