Tools
การแก้ไขปัญหาเบราว์เซอร์
ปัญหา: ไม่สามารถเริ่ม Chrome CDP บนพอร์ต 18800
{ "error": "ข้อผิดพลาด: ไม่สามารถเริ่ม Chrome CDP บนพอร์ต 18800 สำหรับโปรไฟล์ \"openclaw\" ได้" }สาเหตุหลัก
บน Ubuntu และ Linux ดิสโทรส่วนใหญ่ apt install chromium จะติดตั้งตัวครอบ snap
ไม่ใช่เบราว์เซอร์จริง:
หมายเหตุ กำลังเลือก 'chromium-browser' แทน 'chromium'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: มีการร้องขอเบราว์เซอร์แบบแสดงหน้าต่างอย่างชัดเจน บนโฮสต์ที่ไม่มีเซสชันเดสก์ท็อป โปรไฟล์ภายในเครื่องที่มีการจัดการจะกลับไปใช้ โหมด headless บน 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 |
ทำงานโดยไม่มี GUI | false |
OPENCLAW_BROWSER_HEADLESS |
การบังคับใช้ระดับโปรเซสสำหรับโหมด headless ของเบราว์เซอร์ภายในเครื่องที่มีการจัดการ | ไม่ได้ตั้งค่า |
browser.noSandbox |
เพิ่มแฟล็ก --no-sandbox (จำเป็นสำหรับการตั้งค่า Linux บางรูปแบบ) |
false |
browser.attachOnly |
ไม่เริ่มเบราว์เซอร์ แนบกับเบราว์เซอร์ที่มีอยู่เท่านั้น | false |
บน Raspberry Pi, โฮสต์ VPS รุ่นเก่า หรือพื้นที่จัดเก็บข้อมูลที่ช้า ให้ใช้เบราว์เซอร์ที่เริ่ม
ด้วยตนเองพร้อม attachOnly เมื่อ Chrome ต้องใช้เวลาในการเปิดเผยปลายทาง HTTP ของ CDP
หรือเตรียมพร้อมนานกว่ากำหนดเวลาของเบราว์เซอร์ที่มีการจัดการจะอนุญาต
ปัญหา: ไม่พบแท็บ 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 โดยตรง