---
read_when:
    - إعداد التحكم عن بُعد في Mac أو تصحيحه
summary: مسار عمل تطبيق macOS للتحكم في Gateway بعيد لـ OpenClaw
title: التحكم عن بُعد
x-i18n:
    generated_at: "2026-07-03T23:33:29Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 4d1ac5065011ef16085b3349ee7224fe3e806a6de61feaac2dcd5c9ed264227e
    source_path: platforms/mac/remote.md
    workflow: 16
---

يتيح هذا التدفق لتطبيق macOS أن يعمل كوحدة تحكم عن بُعد كاملة لـ Gateway OpenClaw يعمل على مضيف آخر (سطح مكتب/خادم). يمكن للتطبيق الاتصال مباشرة بعناوين URL موثوقة لـ Gateway على LAN/Tailnet أو إدارة نفق SSH عندما يكون Gateway البعيد مقتصرًا على loopback فقط. تعيد فحوصات الصحة، وتمرير إيقاظ الصوت، ودردشة الويب استخدام إعدادات البعيد نفسها من _الإعدادات → عام_.

## الأوضاع

- **محلي (هذا الـ Mac)**: يعمل كل شيء على الحاسوب المحمول. لا يوجد SSH.
- **بعيد عبر SSH (الافتراضي)**: تُنفَّذ أوامر OpenClaw على المضيف البعيد. يفتح تطبيق Mac اتصال SSH باستخدام `-o BatchMode` بالإضافة إلى الهوية/المفتاح الذي تختاره وتمرير منفذ محلي.
- **بعيد مباشر (ws/wss)**: لا يوجد نفق SSH. يتصل تطبيق Mac بعنوان URL الخاص بـ Gateway مباشرة (على سبيل المثال، عبر LAN أو Tailscale أو Tailscale Serve أو وكيل عكسي عام عبر HTTPS).

## وسائل النقل البعيدة

يدعم الوضع البعيد وسيلتي نقل:

- **نفق SSH** (الافتراضي): يستخدم `ssh -N -L ...` لتمرير منفذ Gateway إلى localhost. سيرى Gateway عنوان IP الخاص بالعقدة كـ `127.0.0.1` لأن النفق يعمل عبر loopback.
- **مباشر (ws/wss)**: يتصل مباشرة بعنوان URL الخاص بـ Gateway. يرى Gateway عنوان IP الحقيقي للعميل.

يعطّل التطبيق تعدد اتصالات SSH وتشغيل ما بعد المصادقة في الخلفية لعمليات SSH التي يملكها التطبيق، حتى يتمكن من مراقبة العملية الدقيقة وإعادة تشغيلها حتى عندما يفعّل الاسم المستعار المحدد `ControlMaster` أو `ForkAfterAuthentication`.

التحقق من مفتاح مضيف SSH صارم افتراضيًا لأن بيانات اعتماد Gateway تمر عبر هذا النفق. بالنسبة إلى اسم مستعار مُدار لـ SSH تنوي صراحة استخدام سلوك الثقة الخاص به، فعّله باستخدام `openclaw-mac configure-remote --ssh-target <alias> --ssh-host-key-policy openssh` أو اضبط `gateway.remote.sshHostKeyPolicy` على `"openssh"`. يستخدم هذا التفعيل سياسة مفتاح مضيف OpenSSH الفعلية؛ راجع الاسم المستعار وأي إعدادات مطابقة لـ `Host *` أو إعدادات النظام أولًا. يؤدي تغيير هدف SSH في التطبيق أو باستخدام `configure-remote` إلى إعادة تعيين السياسة إلى `strict` ما لم تفعّلها صراحة مرة أخرى.

في وضع نفق SSH، تُحفظ أسماء مضيفي LAN/tailnet المكتشفة باسم
`gateway.remote.sshTarget`. يبقي التطبيق `gateway.remote.url` على نقطة نهاية
النفق المحلية، على سبيل المثال `ws://127.0.0.1:18789`، بحيث تستخدم CLI ودردشة الويب
وخدمة مضيف العقدة المحلية جميعها وسيلة نقل loopback الآمنة نفسها.
عندما يعيد الاكتشاف عناوين IP خامًا لـ Tailnet وأسماء مضيفين مستقرة، يفضّل التطبيق
Tailscale MagicDNS أو أسماء LAN حتى تتحمل الاتصالات البعيدة تغييرات العنوان
بشكل أفضل.
إذا كان منفذ النفق المحلي يختلف عن منفذ Gateway البعيد، فاضبط
`gateway.remote.remotePort` على المنفذ على المضيف البعيد.

أتمتة المتصفح في الوضع البعيد يملكها مضيف عقدة CLI، وليس عقدة تطبيق macOS
الأصلية. يبدأ التطبيق خدمة مضيف العقدة المثبتة عندما يكون ذلك ممكنًا؛ إذا كنت تحتاج إلى التحكم في المتصفح من ذلك الـ Mac، فثبّتها/ابدأها باستخدام
`openclaw node install ...` و `openclaw node start` (أو شغّل
`openclaw node run ...` في المقدمة)، ثم استهدف تلك العقدة القادرة على تشغيل المتصفح.

## المتطلبات المسبقة على المضيف البعيد

1. ثبّت Node + pnpm وابنِ/ثبّت OpenClaw CLI (`pnpm install && pnpm build && pnpm link --global`).
2. تأكد من أن `openclaw` موجود في PATH للأصداف غير التفاعلية (أنشئ رابطًا رمزيًا إلى `/usr/local/bin` أو `/opt/homebrew/bin` إذا لزم الأمر).
3. لنقل SSH فقط: افتح SSH بمصادقة المفتاح. نوصي بعناوين IP الخاصة بـ **Tailscale** للوصول المستقر خارج LAN.

## إعداد تطبيق macOS

لإعداد التطبيق مسبقًا من دون تدفق الترحيب:

```bash
openclaw-mac configure-remote \
  --ssh-target user@gateway.local \
  --local-port 18789 \
  --remote-port 18789 \
  --token "$OPENCLAW_GATEWAY_TOKEN"
```

بالنسبة إلى Gateway يمكن الوصول إليه بالفعل على LAN موثوقة أو Tailnet، تجاوز SSH بالكامل:

```bash
openclaw-mac configure-remote \
  --direct-url ws://192.168.0.202:18789 \
  --token "$OPENCLAW_GATEWAY_TOKEN"
```

يكتب هذا إعدادات البعيد، ويعلّم الإعداد الأولي كمكتمل، ويتيح للتطبيق امتلاك
وسيلة النقل المحددة عند بدء التشغيل.

1. افتح _الإعدادات → عام_.
2. ضمن **تشغيل OpenClaw**، اختر **بعيد** واضبط:
   - **النقل**: **نفق SSH** أو **مباشر (ws/wss)**.
   - **هدف SSH**: `user@host` (اختياريًا `:port`).
     - إذا كان Gateway على LAN نفسها ويعلن عبر Bonjour، فاختره من القائمة المكتشفة لملء هذا الحقل تلقائيًا.
   - **عنوان URL لـ Gateway** (مباشر فقط): `wss://gateway.example.ts.net` (أو `ws://...` للمحلي/LAN).
   - **ملف الهوية** (متقدم): المسار إلى مفتاحك.
   - **جذر المشروع** (متقدم): مسار نسخة العمل البعيدة المستخدم للأوامر.
   - **مسار CLI** (متقدم): مسار اختياري إلى نقطة إدخال/ملف ثنائي قابل للتشغيل لـ `openclaw` (يُملأ تلقائيًا عند الإعلان عنه).
3. اضغط **اختبار البعيد**. يشير النجاح إلى أن `openclaw status --json` البعيد يعمل بشكل صحيح. تعني حالات الفشل عادةً مشكلات في PATH/CLI؛ يعني رمز الخروج 127 أن CLI غير موجود عن بُعد.
4. ستعمل فحوصات الصحة ودردشة الويب الآن تلقائيًا عبر وسيلة النقل المحددة.

## دردشة الويب

- **نفق SSH**: تتصل دردشة الويب بـ Gateway عبر منفذ تحكم WebSocket الممرّر (الافتراضي 18789).
- **مباشر (ws/wss)**: تتصل دردشة الويب مباشرة بعنوان URL المُعد لـ Gateway.
- لم يعد هناك خادم HTTP منفصل لـ WebChat.

## الأذونات

- يحتاج المضيف البعيد إلى موافقات TCC نفسها المطلوبة محليًا (الأتمتة، تسهيلات الاستخدام، تسجيل الشاشة، الميكروفون، التعرف على الكلام، الإشعارات). شغّل الإعداد الأولي على ذلك الجهاز لمنحها مرة واحدة.
- تعلن العقد عن حالة أذوناتها عبر `node.list` / `node.describe` حتى تعرف الوكلاء ما هو متاح.

## ملاحظات أمنية

- فضّل الربط عبر loopback على المضيف البعيد والاتصال عبر SSH أو Tailscale Serve أو عنوان URL مباشر موثوق لـ Tailnet/LAN.
- يتطلب نفق SSH مفتاح مضيف موثوقًا بالفعل افتراضيًا. وثّق مفتاح المضيف أولًا حتى يكون موجودًا في ملف known-hosts المُعد، أو اختر صراحة `gateway.remote.sshHostKeyPolicy: "openssh"` لاسم مستعار مُدار تقبل سياسة الثقة الخاصة به في OpenSSH.
- إذا ربطت Gateway بواجهة غير loopback، فاشترط مصادقة Gateway صالحة: رمز، كلمة مرور، أو وكيل عكسي واعٍ بالهوية مع `gateway.auth.mode: "trusted-proxy"`.
- راجع [الأمان](/ar/gateway/security) و[Tailscale](/ar/gateway/tailscale).

## تدفق تسجيل الدخول إلى WhatsApp (بعيد)

- شغّل `openclaw channels login --verbose` **على المضيف البعيد**. امسح رمز QR باستخدام WhatsApp على هاتفك.
- أعد تشغيل تسجيل الدخول على ذلك المضيف إذا انتهت صلاحية المصادقة. سيُظهر فحص الصحة مشكلات الربط.

## استكشاف الأخطاء وإصلاحها

- **exit 127 / غير موجود**: `openclaw` غير موجود في PATH للأصداف غير الخاصة بتسجيل الدخول. أضفه إلى `/etc/paths` أو ملف rc الخاص بالصدفة، أو أنشئ رابطًا رمزيًا إلى `/usr/local/bin`/`/opt/homebrew/bin`.
- **فشل مسبار الصحة**: تحقق من إمكانية الوصول عبر SSH وPATH، وأن Baileys مسجّل الدخول (`openclaw status --json`).
- **دردشة الويب عالقة**: تأكد من أن Gateway يعمل على المضيف البعيد وأن المنفذ الممرّر يطابق منفذ WS الخاص بـ Gateway؛ تتطلب الواجهة اتصال WS سليمًا.
- **عنوان IP للعقدة يظهر 127.0.0.1**: هذا متوقع مع نفق SSH. بدّل **النقل** إلى **مباشر (ws/wss)** إذا كنت تريد أن يرى Gateway عنوان IP الحقيقي للعميل.
- **لوحة التحكم تعمل لكن قدرات Mac غير متصلة**: يعني ذلك أن اتصال المشغّل/التحكم الخاص بالتطبيق سليم، لكن اتصال العقدة المرافقة غير متصل أو يفتقد سطح أوامره. افتح قسم جهاز شريط القوائم وتحقق مما إذا كان الـ Mac بحالة `paired · disconnected`. بالنسبة إلى نقاط نهاية Tailscale Serve ذات النمط `wss://*.ts.net`، يكتشف التطبيق دبابيس أوراق TLS القديمة بعد تدوير الشهادة، ويمسح الدبوس القديم عندما يثق macOS بالشهادة الجديدة، ثم يعيد المحاولة تلقائيًا. إذا لم تكن الشهادة موثوقة من النظام أو لم يكن المضيف اسم Tailscale Serve، فاضبط `gateway.remote.tlsFingerprint` على بصمة الشهادة المتوقعة، وراجع الشهادة، أو بدّل إلى **بعيد عبر SSH**.
- **إيقاظ الصوت**: تُمرَّر عبارات التشغيل تلقائيًا في الوضع البعيد؛ لا حاجة إلى مُمرِّر منفصل.

## أصوات الإشعارات

اختر الأصوات لكل إشعار من السكربتات باستخدام `openclaw` و`node.invoke`، مثل:

```bash
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound Glass
```

لم يعد هناك مفتاح تبديل عام لـ "الصوت الافتراضي" في التطبيق؛ يختار المستدعون صوتًا (أو لا شيء) لكل طلب.

## ذات صلة

- [تطبيق macOS](/ar/platforms/macos)
- [الوصول البعيد](/ar/gateway/remote)
