Tools
استكشاف أخطاء المتصفح وإصلاحها
المشكلة: تعذّر بدء Chrome CDP على المنفذ 18800
{ "error": "Error: Failed to start Chrome CDP on port 18800 for profile \"openclaw\"." }السبب الجذري
على Ubuntu ومعظم توزيعات Linux، يثبّت الأمر apt install chromium غلاف snap
بدلاً من متصفح فعلي:
Note, selecting 'chromium-browser' instead of 'chromium'chromium-browser is already the newest version (2:1snap1-0ubuntu2).يتداخل عزل AppArmor الخاص بـ snap مع الطريقة التي يستخدمها OpenClaw لتشغيل عملية المتصفح ومراقبتها.
أعطال التشغيل الشائعة الأخرى على Linux:
The profile appears to be in use by another Chromium process: ملفات قفلSingleton*قديمة في دليل ملف التعريف المُدار. يزيل OpenClaw هذه الأقفال ويعيد المحاولة مرة واحدة عندما يشير القفل إلى عملية متوقفة أو عملية على مضيف مختلف.Missing X server or $DISPLAY: طُلب متصفح مرئي صراحةً على مضيف لا يحتوي على جلسة سطح مكتب. تعود ملفات التعريف المحلية المُدارة إلى الوضع عديم الواجهة على Linux عندما لا يكون كل منDISPLAYوWAYLAND_DISPLAYمعيّنًا. إذا عيّنتOPENCLAW_BROWSER_HEADLESS=0أوbrowser.headless: falseأوbrowser.profiles.<name>.headless: false، فأزل تجاوز وضع الواجهة هذا، أو عيّنOPENCLAW_BROWSER_HEADLESS=1، أو شغّلXvfb، أو نفّذopenclaw browser start --headlessلعملية تشغيل مُدارة لمرة واحدة، أو شغّل OpenClaw ضمن جلسة سطح مكتب فعلية.
الحل 1: تثبيت Google Chrome (موصى به)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.debsudo dpkg -i google-chrome-stable_current_amd64.debsudo apt --fix-broken install -y # إذا كانت هناك أخطاء في التبعياتحدّث ~/.openclaw/openclaw.json:
{ "browser": { "enabled": true, "executablePath": "/usr/bin/google-chrome-stable", "headless": true, "noSandbox": true }}الحل 2: استخدام Chromium من snap في وضع الإرفاق فقط
إذا كان عليك الاحتفاظ بـ Chromium من snap، فاضبط OpenClaw ليتصل بمتصفح مشغّل يدويًا بدلاً من تشغيله:
{ "browser": { "enabled": true, "attachOnly": true, "headless": true, "noSandbox": true }}شغّل Chromium يدويًا:
chromium-browser --headless --no-sandbox --disable-gpu \ --remote-debugging-port=18800 \ --user-data-dir=$HOME/.openclaw/browser/openclaw/user-data \ about:blank &يمكنك اختياريًا تشغيله تلقائيًا باستخدام خدمة مستخدم systemd:
# ~/.config/systemd/user/openclaw-browser.service[Unit]Description=OpenClaw Browser (Chrome CDP)After=network.target [Service]ExecStart=/snap/bin/chromium --headless --no-sandbox --disable-gpu --remote-debugging-port=18800 --user-data-dir=%h/.openclaw/browser/openclaw/user-data about:blankRestart=on-failureRestartSec=5 [Install]WantedBy=default.targetsystemctl --user enable --now openclaw-browser.serviceالتحقق من عمل المتصفح
curl -s http://127.0.0.1:18791/ | jq '{running, pid, chosenBrowser}'curl -s -X POST http://127.0.0.1:18791/startcurl -s http://127.0.0.1:18791/tabsمرجع الإعدادات
| الخيار | الوصف | القيمة الافتراضية |
|---|---|---|
browser.enabled |
تفعيل التحكم في المتصفح | true |
browser.executablePath |
مسار ملف متصفح تنفيذي مستند إلى Chromium (Chrome/Brave/Edge/Chromium) | يُكتشف تلقائيًا (مع تفضيل متصفح نظام التشغيل الافتراضي إذا كان مستندًا إلى Chromium) |
browser.headless |
التشغيل دون واجهة رسومية | false |
OPENCLAW_BROWSER_HEADLESS |
تجاوز لكل عملية لوضع المتصفح المحلي المُدار عديم الواجهة | غير معيّن |
browser.noSandbox |
إضافة العلامة --no-sandbox (مطلوبة لبعض إعدادات Linux) |
false |
browser.attachOnly |
عدم تشغيل متصفح؛ الاتصال بمتصفح موجود فقط | false |
browser.cdpPortRangeStart |
منفذ CDP المحلي الأول لملفات التعريف التي تُسند منافذها تلقائيًا | 18800 (مشتق من منفذ Gateway) |
browser.localLaunchTimeoutMs |
مهلة اكتشاف Chrome المحلي المُدار، حتى 120000 |
15000 |
browser.localCdpReadyTimeoutMs |
مهلة انتظار جاهزية CDP بعد التشغيل المحلي المُدار، حتى 120000 |
8000 |
يجب أن تكون قيمتا المهلة عددين صحيحين موجبين لا يتجاوزان 120000 مللي ثانية؛
وتُرفض القيم الأخرى عند تحميل الإعدادات. على Raspberry Pi أو مضيفات VPS
الأقدم أو وحدات التخزين البطيئة، ارفع browser.localLaunchTimeoutMs عندما
يحتاج Chrome إلى مزيد من الوقت لإتاحة نقطة نهاية HTTP الخاصة بـ CDP. ارفع
browser.localCdpReadyTimeoutMs عندما ينجح التشغيل، لكن يظل
openclaw browser start يعرض not reachable after start.
المشكلة: لم يُعثر على علامات تبويب Chrome لملف التعريف profile="user"
أنت تستخدم ملف التعريف user (existing-session / Chrome MCP)، ولا توجد
علامات تبويب مفتوحة يمكن الاتصال بها.
خيارات الإصلاح:
- استخدم المتصفح المُدار بدلاً من ذلك:
openclaw browser --browser-profile openclaw start(أو عيّنbrowser.defaultProfile: "openclaw"). - أبقِ Chrome المحلي قيد التشغيل مع علامة تبويب مفتوحة واحدة على الأقل، ثم
أعد المحاولة باستخدام
--browser-profile user.
ملاحظات:
- ملف التعريف
userمخصص للمضيف فقط. على خوادم Linux أو الحاويات أو المضيفات البعيدة، يُفضّل استخدام ملفات تعريف CDP بدلاً منه. - يشترك
userوملفات تعريفexisting-sessionالأخرى في القيود الحالية لـ Chrome MCP: الإجراءات المعتمدة على المراجع فقط، وملف واحد لكل عملية رفع، وعدم السماح بتجاوزاتtimeoutMsلمربعات الحوار، وعدم دعمwait --load networkidle، وكذلك عدم دعمresponsebodyأو تصدير PDF أو اعتراض التنزيلات أو الإجراءات المجمّعة. - تُسند ملفات تعريف برنامج التشغيل المحلي
openclawقيمتيcdpPortوcdpUrlتلقائيًا؛ لا تضبطهما يدويًا إلا لـ CDP البعيد. - تقبل ملفات تعريف CDP البعيدة البروتوكولات
http://وhttps://وws://وwss://. استخدم HTTP(S) لاكتشاف/json/version، أو WS(S) عندما توفر خدمة المتصفح عنوان URL مباشرًا لمقبس DevTools.