---
read_when:
    - تريد دفاعًا متعمقًا ضد هجمات SSRF وإعادة ربط DNS
    - تكوين وكيل أمامي خارجي لحركة مرور وقت تشغيل OpenClaw
summary: كيفية توجيه حركة مرور HTTP وWebSocket في وقت تشغيل OpenClaw عبر وكيل تصفية يديره المشغّل
title: وكيل الشبكة
x-i18n:
    generated_at: "2026-05-01T07:43:58Z"
    model: gpt-5.5
    provider: openai
    source_hash: 9207d349e4410e38631ae7665be19b536e4a4128a4e80dd095e802804dfd66a3
    source_path: security/network-proxy.md
    workflow: 16
---

# وكيل الشبكة

يمكن لـ OpenClaw توجيه حركة مرور HTTP وWebSocket وقت التشغيل عبر وكيل إعادة توجيه يديره المشغّل. هذا دفاع اختياري متعدد الطبقات لعمليات النشر التي تريد تحكمًا مركزيًا في الخروج، وحماية أقوى من SSRF، وقابلية أفضل لتدقيق الشبكة.

لا يشحن OpenClaw وكيلاً أو ينزّله أو يبدأه أو يهيئه أو يصادق عليه. أنت تشغّل تقنية الوكيل التي تناسب بيئتك، ويوجّه OpenClaw عملاء HTTP وWebSocket المحليين العاديين للعملية عبره.

## لماذا تستخدم وكيلاً؟

يوفر الوكيل للمشغّلين نقطة تحكم شبكية واحدة لحركة HTTP وWebSocket الصادرة. يمكن أن يكون ذلك مفيدًا حتى خارج تقوية الحماية من SSRF:

- السياسة المركزية: حافظ على سياسة خروج واحدة بدلاً من الاعتماد على كل موضع استدعاء HTTP في التطبيق لضبط قواعد الشبكة بشكل صحيح.
- فحوصات وقت الاتصال: قيّم الوجهة بعد تحليل DNS ومباشرة قبل أن يفتح الوكيل الاتصال الصاعد.
- دفاع ضد إعادة ربط DNS: قلّل الفجوة بين فحص DNS على مستوى التطبيق والاتصال الصادر الفعلي.
- تغطية JavaScript أوسع: وجّه عملاء `fetch` و`node:http` و`node:https` وWebSocket وaxios وgot وnode-fetch والعملاء المشابهين عبر المسار نفسه.
- قابلية التدقيق: سجّل الوجهات المسموح بها والمرفوضة عند حد الخروج.
- التحكم التشغيلي: افرض قواعد الوجهات أو تقسيم الشبكة أو حدود المعدل أو قوائم السماح الصادرة دون إعادة بناء OpenClaw.

توجيه الوكيل حاجز حماية على مستوى العملية لخروج HTTP وWebSocket العادي. يمنح المشغّلين مسارًا مغلقًا عند الفشل لتوجيه عملاء HTTP المدعومين في JavaScript عبر وكيل الترشيح الخاص بهم، لكنه ليس صندوق عزل شبكيًا على مستوى نظام التشغيل ولا يجعل OpenClaw يصادق على سياسة وجهات الوكيل.

## كيف يوجّه OpenClaw حركة المرور

عندما تكون `proxy.enabled=true` ويتم تكوين عنوان URL للوكيل، توجّه عمليات وقت التشغيل المحمية مثل `openclaw gateway run` و`openclaw node run` و`openclaw agent --local` خروج HTTP وWebSocket العادي عبر الوكيل المكوّن:

```text
OpenClaw process
  fetch                  -> operator-managed filtering proxy -> public internet
  node:http and https    -> operator-managed filtering proxy -> public internet
  WebSocket clients      -> operator-managed filtering proxy -> public internet
```

العقد العام هو سلوك التوجيه، وليس خطافات Node الداخلية المستخدمة لتنفيذه. يستخدم عملاء WebSocket لمستوى التحكم في OpenClaw Gateway مسارًا مباشرًا ضيقًا لحركة RPC الخاصة بـ Gateway عبر local loopback عندما يستخدم عنوان URL الخاص بـ Gateway القيمة `localhost` أو عنوان IP حلقيًا حرفيًا مثل `127.0.0.1` أو `[::1]`. يجب أن يكون مسار مستوى التحكم هذا قادرًا على الوصول إلى Gateways الحلقية حتى عندما يحظر وكيل المشغّل الوجهات الحلقية. ما تزال طلبات HTTP وWebSocket العادية وقت التشغيل تستخدم الوكيل المكوّن.

داخليًا، يستخدم OpenClaw خطافي توجيه على مستوى العملية لهذه الميزة:

- يغطي توجيه مرسِل Undici `fetch` والعملاء المدعومين بـ undici ووسائل النقل التي توفر مرسِل undici خاصًا بها.
- يغطي توجيه `global-agent` مستدعي Node الأساسيين `node:http` و`node:https`، بما في ذلك كثير من المكتبات المبنية فوق `http.request` و`https.request` و`http.get` و`https.get`. يفرض وضع الوكيل المُدار ذلك الوكيل العام حتى لا تتجاوز وكلاء HTTP الصريحة في Node وكيل المشغّل عن طريق الخطأ.

تملك بعض plugins وسائل نقل مخصصة تحتاج إلى توصيل صريح للوكيل حتى مع وجود توجيه على مستوى العملية. على سبيل المثال، يستخدم نقل Telegram Bot API مرسِل HTTP/1 خاصًا به من undici، ولذلك يحترم بيئة وكيل العملية إضافة إلى احتياطي `OPENCLAW_PROXY_URL` المُدار في مسار النقل الخاص بذلك المالك.

يجب أن يستخدم عنوان URL الخاص بالوكيل `http://`. ما تزال وجهات HTTPS مدعومة عبر الوكيل باستخدام HTTP `CONNECT`؛ يعني هذا فقط أن OpenClaw يتوقع مستمع وكيل إعادة توجيه HTTP عاديًا مثل `http://127.0.0.1:3128`.

أثناء نشاط الوكيل، يمسح OpenClaw القيم `no_proxy` و`NO_PROXY` و`GLOBAL_AGENT_NO_PROXY`. تستند قوائم التجاوز هذه إلى الوجهة، لذا فإن ترك `localhost` أو `127.0.0.1` هناك سيسمح لأهداف SSRF عالية المخاطر بتجاوز وكيل الترشيح.

عند إيقاف التشغيل، يستعيد OpenClaw بيئة الوكيل السابقة ويعيد تعيين حالة توجيه العملية المخزنة مؤقتًا.

## مصطلحات الوكيل ذات الصلة

- `proxy.enabled` / `proxy.proxyUrl`: توجيه وكيل إعادة التوجيه الصادر لخروج وقت تشغيل OpenClaw. توثق هذه الصفحة تلك الميزة.
- `gateway.auth.mode: "trusted-proxy"`: مصادقة وكيل عكسي واردة ومدركة للهوية للوصول إلى Gateway. راجع [مصادقة الوكيل الموثوق](/ar/gateway/trusted-proxy-auth).
- `openclaw proxy`: وكيل تصحيح محلي وفاحص التقاط للتطوير والدعم. راجع [openclaw proxy](/ar/cli/proxy).
- إعدادات الوكيل الخاصة بقناة أو موفر: تجاوزات خاصة بالمالك لنقل معين. فضّل وكيل الشبكة المُدار عندما يكون الهدف هو التحكم المركزي في الخروج عبر وقت التشغيل.

## التكوين

```yaml
proxy:
  enabled: true
  proxyUrl: http://127.0.0.1:3128
```

يمكنك أيضًا توفير عنوان URL عبر البيئة، مع إبقاء `proxy.enabled=true` في التكوين:

```bash
OPENCLAW_PROXY_URL=http://127.0.0.1:3128 openclaw gateway run
```

تكون لـ `proxy.proxyUrl` أسبقية على `OPENCLAW_PROXY_URL`.

إذا كانت `enabled=true` لكن لم يتم تكوين عنوان URL صالح للوكيل، تفشل الأوامر المحمية عند بدء التشغيل بدلاً من الرجوع إلى الوصول المباشر إلى الشبكة.

بالنسبة إلى خدمات Gateway المُدارة التي تبدأ باستخدام `openclaw gateway start`، فضّل تخزين عنوان URL في التكوين:

```bash
openclaw config set proxy.enabled true
openclaw config set proxy.proxyUrl http://127.0.0.1:3128
openclaw gateway install --force
openclaw gateway start
```

الاحتياطي البيئي هو الأنسب للتشغيل في المقدمة. إذا استخدمته مع خدمة مثبّتة، فضع `OPENCLAW_PROXY_URL` في بيئة الخدمة الدائمة، مثل `$OPENCLAW_STATE_DIR/.env` أو `~/.openclaw/.env`، ثم أعد تثبيت الخدمة حتى يبدأ launchd أو systemd أو Scheduled Tasks تشغيل Gateway بتلك القيمة.

بالنسبة إلى أوامر `openclaw --container ...`، يمرر OpenClaw `OPENCLAW_PROXY_URL` إلى CLI الفرعي المستهدف للحاوية عند تعيينه. يجب أن يكون عنوان URL قابلاً للوصول من داخل الحاوية؛ تشير `127.0.0.1` إلى الحاوية نفسها، لا المضيف. يرفض OpenClaw عناوين URL الحلقية للوكيل للأوامر المستهدفة للحاوية ما لم تتجاوز فحص السلامة هذا صراحةً.

## متطلبات الوكيل

سياسة الوكيل هي حد الأمان. لا يستطيع OpenClaw التحقق من أن الوكيل يحظر الأهداف الصحيحة.

كوّن الوكيل ليقوم بما يلي:

- الارتباط فقط بـ loopback أو واجهة خاصة موثوقة.
- تقييد الوصول بحيث لا يستطيع استخدامه إلا عملية OpenClaw أو المضيف أو الحاوية أو حساب الخدمة.
- تحليل الوجهات بنفسه وحظر عناوين IP للوجهات بعد تحليل DNS.
- تطبيق السياسة وقت الاتصال لكل من طلبات HTTP العادية وأنفاق HTTPS `CONNECT`.
- رفض التجاوزات المستندة إلى الوجهة للنطاقات الحلقية والخاصة والمحلية للرابط والبيانات الوصفية والبث المتعدد والمحجوزة أو نطاقات التوثيق.
- تجنّب قوائم السماح لأسماء المضيفين ما لم تكن تثق تمامًا بمسار تحليل DNS.
- تسجيل الوجهة والقرار والحالة والسبب دون تسجيل أجسام الطلبات أو ترويسات التفويض أو ملفات تعريف الارتباط أو الأسرار الأخرى.
- إبقاء سياسة الوكيل تحت التحكم في الإصدارات ومراجعة التغييرات مثل التكوينات الحساسة أمنيًا.

## الوجهات المحظورة الموصى بها

استخدم قائمة الحظر هذه كنقطة بداية لأي وكيل إعادة توجيه أو جدار حماية أو سياسة خروج.

توجد منطقية التصنيف على مستوى تطبيق OpenClaw في `src/infra/net/ssrf.ts` و`src/shared/net/ip.ts`. خطافات التكافؤ ذات الصلة هي `BLOCKED_HOSTNAMES` و`BLOCKED_IPV4_SPECIAL_USE_RANGES` و`BLOCKED_IPV6_SPECIAL_USE_RANGES` و`RFC2544_BENCHMARK_PREFIX` ومعالجة حارس IPv4 المضمّن لـ NAT64 و6to4 وTeredo وISATAP والأشكال المعينة من IPv4. هذه الملفات مراجع مفيدة عند صيانة سياسة وكيل خارجية، لكن OpenClaw لا يصدّر هذه القواعد أو يفرضها تلقائيًا في وكيلك.

| النطاق أو المضيف                                                                      | سبب الحظر                                              |
| ------------------------------------------------------------------------------------ | ---------------------------------------------------- |
| `127.0.0.0/8`, `localhost`, `localhost.localdomain`                                  | IPv4 loopback                                        |
| `::1/128`                                                                            | IPv6 loopback                                        |
| `0.0.0.0/8`, `::/128`                                                                | عناوين غير محددة وعناوين هذه الشبكة                  |
| `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`                                      | شبكات RFC1918 الخاصة                                  |
| `169.254.0.0/16`, `fe80::/10`                                                        | عناوين محلية للرابط ومسارات بيانات وصفية سحابية شائعة |
| `169.254.169.254`, `metadata.google.internal`                                        | خدمات البيانات الوصفية السحابية                       |
| `100.64.0.0/10`                                                                      | مساحة عناوين NAT مشتركة على مستوى الناقل              |
| `198.18.0.0/15`, `2001:2::/48`                                                       | نطاقات القياس المرجعي                                 |
| `192.0.0.0/24`, `192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24`, `2001:db8::/32` | نطاقات استخدام خاص وتوثيق                             |
| `224.0.0.0/4`, `ff00::/8`                                                            | بث متعدد                                              |
| `240.0.0.0/4`                                                                        | IPv4 محجوز                                            |
| `fc00::/7`, `fec0::/10`                                                              | نطاقات IPv6 محلية/خاصة                                |
| `100::/64`, `2001:20::/28`                                                           | نطاقات إسقاط IPv6 وORCHIDv2                           |
| `64:ff9b::/96`, `64:ff9b:1::/48`                                                     | بادئات NAT64 مع IPv4 مضمن                             |
| `2002::/16`, `2001::/32`                                                             | 6to4 وTeredo مع IPv4 مضمن                             |
| `::/96`, `::ffff:0:0/96`                                                             | IPv6 متوافق مع IPv4 ومعيّن من IPv4                    |

إذا وثّق موفر السحابة أو منصة الشبكة لديك مضيفي بيانات وصفية إضافيين أو نطاقات محجوزة، فأضفها أيضًا.

## التحقق

تحقق من الوكيل من المضيف أو الحاوية أو حساب الخدمة نفسه الذي يشغّل OpenClaw:

```bash
openclaw proxy validate --proxy-url http://127.0.0.1:3128
```

افتراضيًا، عند عدم توفير وجهات مخصصة، يتحقق الأمر من نجاح `https://example.com/` ويبدأ كناري loopback مؤقتًا يجب ألا يصل إليه الوكيل. ينجح فحص الرفض الافتراضي عندما يعيد الوكيل استجابة رفض غير 2xx أو يحظر الكناري بفشل في النقل؛ ويفشل إذا وصلت استجابة ناجحة إلى الكناري. إذا لم يكن أي وكيل مفعّلًا ومكوّنًا، يبلغ التحقق عن مشكلة في التكوين؛ استخدم `--proxy-url` لفحص تمهيدي لمرة واحدة قبل تغيير التكوين. استخدم `--allowed-url` و`--denied-url` لاختبار التوقعات الخاصة بالنشر. الوجهات المرفوضة المخصصة مغلقة عند الفشل: أي استجابة HTTP تعني أن الوجهة كانت قابلة للوصول عبر الوكيل، وأي خطأ نقل يُبلغ عنه باعتباره غير حاسم لأن OpenClaw لا يستطيع إثبات أن الوكيل حظر أصلًا قابلًا للوصول. عند فشل التحقق، يخرج الأمر بالرمز 1.

استخدم `--json` للأتمتة. يحتوي خرج JSON على النتيجة الإجمالية، ومصدر تكوين الوكيل الفعلي، وأي أخطاء تكوين، وكل فحص وجهة. يتم تنقيح بيانات اعتماد عنوان URL للوكيل في خرج النص وJSON:

```json
{
  "ok": true,
  "config": {
    "enabled": true,
    "proxyUrl": "http://127.0.0.1:3128/",
    "source": "override",
    "errors": []
  },
  "checks": [
    {
      "kind": "allowed",
      "url": "https://example.com/",
      "ok": true,
      "status": 200
    }
  ]
}
```

يمكنك أيضًا التحقق يدويًا باستخدام `curl`:

```bash
curl -x http://127.0.0.1:3128 https://example.com/
curl -x http://127.0.0.1:3128 http://127.0.0.1/
curl -x http://127.0.0.1:3128 http://169.254.169.254/
```

ينبغي أن ينجح الطلب العام. وينبغي أن يحظر الوكيل طلبات حلقة الرجوع والبيانات الوصفية. بالنسبة إلى `openclaw proxy validate`، يمكن لاختبار حلقة الرجوع الكناري المدمج أن يميّز بين رفض الوكيل وأصل يمكن الوصول إليه. لا تملك فحوصات `--denied-url` المخصصة ذلك الاختبار الكناري، لذلك تعامل مع كل من استجابات HTTP وإخفاقات النقل الملتبسة كإخفاقات في التحقق، ما لم يكشف وكيلك إشارة رفض خاصة بالنشر يمكنك التحقق منها بشكل منفصل.

ثم فعّل توجيه الوكيل في OpenClaw:

```bash
openclaw config set proxy.enabled true
openclaw config set proxy.proxyUrl http://127.0.0.1:3128
openclaw gateway run
```

أو اضبط:

```yaml
proxy:
  enabled: true
  proxyUrl: http://127.0.0.1:3128
```

## الحدود

- يحسّن الوكيل التغطية لعملاء HTTP وWebSocket في JavaScript المحليين للعملية، لكنه ليس وضع حماية شبكيًا على مستوى نظام التشغيل.
- قد تتجاوز مآخذ `net` و`tls` و`http2` الخام والإضافات الأصلية والعمليات الفرعية توجيه الوكيل على مستوى Node ما لم ترث متغيرات بيئة الوكيل وتحترمها.
- ينبغي إدراج واجهات WebUI المحلية الخاصة بالمستخدم وخوادم النماذج المحلية في قائمة السماح ضمن سياسة وكيل المشغّل عند الحاجة؛ لا يوفّر OpenClaw تجاوزًا عامًا للشبكة المحلية لها.
- يقتصر تجاوز وكيل مستوى التحكم في Gateway عمدًا على `localhost` وعناوين IP الحرفية لحلقة الرجوع. استخدم `ws://127.0.0.1:18789` أو `ws://[::1]:18789` أو `ws://localhost:18789` لاتصالات مستوى التحكم المباشرة المحلية في Gateway؛ تُوجَّه أسماء المضيف الأخرى مثل حركة المرور العادية المعتمدة على اسم المضيف.
- لا يفحص OpenClaw سياسة الوكيل الخاصة بك ولا يختبرها ولا يصادق عليها.
- تعامل مع تغييرات سياسة الوكيل كتغييرات تشغيلية حساسة أمنيًا.
