Tools
عیبیابی مرورگر
مشکل: راهاندازی Chrome CDP روی پورت 18800 ناموفق بود
{ "error": "خطا: راهاندازی Chrome CDP روی پورت 18800 برای پروفایل \"openclaw\" ناموفق بود." }علت اصلی
در Ubuntu و بیشتر توزیعهای Linux، apt install chromium یک پوشش snap نصب
میکند، نه یک مرورگر واقعی:
توجه، بهجای 'chromium'، 'chromium-browser' انتخاب میشودchromium-browser از قبل جدیدترین نسخه است (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: استفاده از snap Chromium در حالت فقط اتصال
اگر باید snap Chromium را نگه دارید، 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 (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 |
در Raspberry Pi، میزبانهای VPS قدیمیتر یا فضای ذخیرهسازی کند، وقتی Chrome برای در دسترس قرار دادن نقطه پایانی HTTP مربوط به CDP
یا آمادهشدن به زمانی بیش از مهلت مرورگر مدیریتشده نیاز دارد، از مرورگری که بهصورت دستی راهاندازی شده
و attachOnly استفاده کنید.
مشکل: هیچ زبانه 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) استفاده کنید.