استكشاف أخطاء WSL2 + Windows + Chrome البعيد عبر CDP وإصلاحها
يغطي هذا الدليل إعداد المضيف المنقسم الشائع حيث:- يعمل OpenClaw Gateway داخل WSL2
- يعمل Chrome على Windows
- يجب أن يعبر التحكم بالمتصفح الحد الفاصل بين WSL2 وWindows
اختر وضع المتصفح الصحيح أولًا
لديك نمطان صالحان:الخيار 1: CDP بعيد خام من WSL2 إلى Windows
استخدم ملف تعريف متصفح بعيد يشير من WSL2 إلى نقطة نهاية CDP خاصة بـ Chrome على Windows. اختر هذا عندما:- يبقى Gateway داخل WSL2
- يعمل Chrome على Windows
- تحتاج إلى أن يعبر التحكم بالمتصفح الحد الفاصل بين WSL2 وWindows
الخيار 2: Chrome MCP محلي على المضيف
استخدمexisting-session / user فقط عندما يعمل Gateway نفسه على المضيف نفسه الذي يعمل عليه Chrome.
اختر هذا عندما:
- يعمل OpenClaw وChrome على الجهاز نفسه
- تريد حالة المتصفح المحلية المسجل دخولها
- لا تحتاج إلى نقل المتصفح عبر مضيفات مختلفة
- لا تحتاج إلى مسارات متقدمة مُدارة/خاصة بـ raw-CDP فقط مثل
responsebodyأو تصدير PDF أو اعتراض التنزيلات أو الإجراءات الدفعية
البنية العاملة
الشكل المرجعي:- يشغّل WSL2 البوابة على
127.0.0.1:18789 - يفتح Windows واجهة التحكم في متصفح عادي على
http://127.0.0.1:18789/ - يكشف Chrome على Windows نقطة نهاية CDP على المنفذ
9222 - يستطيع WSL2 الوصول إلى نقطة نهاية CDP هذه على Windows
- يوجّه OpenClaw ملف تعريف المتصفح إلى العنوان القابل للوصول من WSL2
لماذا يبدو هذا الإعداد مربكًا
قد تتداخل عدة حالات فشل:- لا يستطيع WSL2 الوصول إلى نقطة نهاية CDP على Windows
- تُفتح واجهة التحكم من مصدر غير آمن
- لا تتطابق
gateway.controlUi.allowedOriginsمع مصدر الصفحة - الرمز المميز أو الإقران مفقود
- يشير ملف تعريف المتصفح إلى العنوان الخطأ
القاعدة الحرجة لواجهة التحكم
عندما تُفتح الواجهة من Windows، استخدم localhost الخاص بـ Windows إلا إذا كان لديك إعداد HTTPS مقصود. استخدم:http://127.0.0.1:18789/
لا تستخدم عنوان LAN افتراضيًا لواجهة التحكم. فقد يؤدي HTTP العادي على عنوان LAN أو عنوان tailnet إلى سلوك متعلق بالمصدر غير الآمن/مصادقة الجهاز، وهو أمر غير مرتبط بـ CDP نفسه. راجع واجهة التحكم.
تحقّق على طبقات
اعمل من الأعلى إلى الأسفل. لا تتجاوز المراحل.الطبقة 1: التحقق من أن Chrome يقدّم CDP على Windows
شغّل Chrome على Windows مع تفعيل التصحيح البعيد:الطبقة 2: التحقق من أن WSL2 يستطيع الوصول إلى نقطة النهاية على Windows
من WSL2، اختبر العنوان الدقيق الذي تخطط لاستخدامه فيcdpUrl:
- يعيد
/json/versionبيانات JSON تحتوي على معلومات Browser / Protocol-Version - يعيد
/json/listبيانات JSON (والمصفوفة الفارغة مقبولة إذا لم تكن هناك صفحات مفتوحة)
- لا يعرّض Windows المنفذ إلى WSL2 بعد
- العنوان غير صحيح من جهة WSL2
- لا يزال جدار الحماية / إعادة توجيه المنفذ / الوكيل المحلي مفقودًا
الطبقة 3: إعداد ملف تعريف المتصفح الصحيح
بالنسبة إلى raw remote CDP، وجّه OpenClaw إلى العنوان القابل للوصول من WSL2:- استخدم العنوان القابل للوصول من WSL2، وليس العنوان الذي يعمل فقط على Windows
- أبقِ
attachOnly: trueللمتصفحات المُدارة خارجيًا - يمكن أن تكون
cdpUrlمن النوعhttp://أوhttps://أوws://أوwss:// - استخدم HTTP(S) عندما تريد أن يكتشف OpenClaw المسار
/json/version - استخدم WS(S) فقط عندما يمنحك مزوّد المتصفح عنوان socket مباشرًا لـ DevTools
- اختبر عنوان URL نفسه باستخدام
curlقبل أن تتوقع نجاح OpenClaw
الطبقة 4: التحقق من طبقة واجهة التحكم بشكل منفصل
افتح الواجهة من Windows:http://127.0.0.1:18789/
ثم تحقّق من:
- أن مصدر الصفحة يطابق ما تتوقعه
gateway.controlUi.allowedOrigins - أن مصادقة الرمز المميز أو الإقران مضبوطة بشكل صحيح
- أنك لا تعالج مشكلة مصادقة في واجهة التحكم كما لو كانت مشكلة في المتصفح
الطبقة 5: التحقق من التحكم الكامل بالمتصفح من البداية إلى النهاية
من WSL2:- تُفتح علامة التبويب في Chrome على Windows
- يعيد
openclaw browser tabsالهدف - تعمل الإجراءات اللاحقة (
snapshotوscreenshotوnavigate) من ملف التعريف نفسه
أخطاء شائعة مضللة
تعامل مع كل رسالة على أنها مؤشر خاص بطبقة معينة:control-ui-insecure-auth- مشكلة في مصدر الواجهة / السياق الآمن، وليست مشكلة في نقل CDP
token_missing- مشكلة في إعدادات المصادقة
pairing required- مشكلة في اعتماد الجهاز
Remote CDP for profile "remote" is not reachable- لا يستطيع WSL2 الوصول إلى
cdpUrlالمضبوط
- لا يستطيع WSL2 الوصول إلى
Browser attachOnly is enabled and CDP websocket for profile "remote" is not reachable- استجابت نقطة نهاية HTTP، لكن تعذّر مع ذلك فتح WebSocket الخاص بـ DevTools
- استمرار تجاوزات viewport / الوضع الداكن / اللغة المحلية / عدم الاتصال بعد جلسة بعيدة
- شغّل
openclaw browser stop --browser-profile remote - يؤدي هذا إلى إغلاق جلسة التحكم النشطة وتحرير حالة محاكاة Playwright/CDP من دون إعادة تشغيل البوابة أو المتصفح الخارجي
- شغّل
gateway timeout after 1500ms- غالبًا ما تكون ما تزال مشكلة وصول CDP أو نقطة نهاية بعيدة بطيئة/غير قابلة للوصول
No Chrome tabs found for profile="user"- تم اختيار ملف تعريف Chrome MCP محلي حيث لا توجد علامات تبويب محلية متاحة على المضيف
قائمة تحقق سريعة للفرز
- Windows: هل يعمل
curl http://127.0.0.1:9222/json/version؟ - WSL2: هل يعمل
curl http://WINDOWS_HOST_OR_IP:9222/json/version؟ - إعدادات OpenClaw: هل تستخدم
browser.profiles.<name>.cdpUrlهذا العنوان الدقيق القابل للوصول من WSL2؟ - واجهة التحكم: هل تفتح
http://127.0.0.1:18789/بدلًا من عنوان LAN؟ - هل تحاول استخدام
existing-sessionعبر WSL2 وWindows بدلًا من raw remote CDP؟
الخلاصة العملية
يكون هذا الإعداد عادةً قابلًا للتنفيذ. الجزء الصعب هو أن نقل المتصفح، وأمان مصدر واجهة التحكم، والرمز المميز/الإقران، يمكن أن يفشل كل منها بشكل مستقل مع أنها تبدو متشابهة من جهة المستخدم. عند الشك:- تحقّق أولًا من نقطة نهاية Chrome على Windows محليًا
- ثم تحقّق من نقطة النهاية نفسها من WSL2
- وبعدها فقط ابدأ في تصحيح إعدادات OpenClaw أو مصادقة واجهة التحكم