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: اجرای مرورگر قابلمشاهده بهصراحت روی میزبانی بدون نشست دسکتاپ درخواست شده است. وقتی هر دو متغیرDISPLAYوWAYLAND_DISPLAYتنظیم نشده باشند، نمایههای مدیریتشده محلی در Linux به حالت بدون رابط گرافیکی بازمیگردند. اگرOPENCLAW_BROWSER_HEADLESS=0،browser.headless: falseیاbrowser.profiles.<name>.headless: falseرا تنظیم کردهاید، آن بازنویسی حالت دارای رابط گرافیکی را حذف کنید،OPENCLAW_BROWSER_HEADLESS=1را تنظیم کنید،Xvfbرا راهاندازی کنید، برای یک اجرای مدیریتشده یکباره دستورopenclaw browser start --headlessرا اجرا کنید، یا OpenClaw را در یک نشست دسکتاپ واقعی اجرا کنید.
راهحل ۱: نصب 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 }}راهحل ۲: استفاده از 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 قدیمی یا
فضای ذخیرهسازی کند، وقتی Chrome برای در دسترس قرار دادن نقطه پایانی HTTP مربوط
به CDP به زمان بیشتری نیاز دارد، مقدار browser.localLaunchTimeoutMs را افزایش
دهید. وقتی راهاندازی موفق است اما openclaw browser start همچنان
not reachable after start را گزارش میکند، مقدار
browser.localCdpReadyTimeoutMs را افزایش دهید.
مشکل: هیچ زبانه 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://را میپذیرند. برای کشف/json/versionاز HTTP(S) استفاده کنید، یا وقتی سرویس مرورگر شما نشانی مستقیم سوکت DevTools را ارائه میدهد، از WS(S) استفاده کنید.