Khắc phục lỗi Browser (Linux)
Vấn đề: “Failed to start Chrome CDP on port 18800”
Server điều khiển browser của OpenClaw không thể khởi động Chrome/Brave/Edge/Chromium và báo lỗi:
{"error":"Error: Failed to start Chrome CDP on port 18800 for profile \"openclaw\"."}
Nguyên nhân
Trên Ubuntu (và nhiều distro Linux khác), Chromium mặc định được cài đặt dưới dạng snap package. Cơ chế AppArmor confinement của snap can thiệp vào cách OpenClaw khởi động và giám sát tiến trình browser.
Lệnh apt install chromium chỉ cài một stub package chuyển hướng đến snap:
Note, selecting 'chromium-browser' instead of 'chromium'
chromium-browser is already the newest version (2:1snap1-0ubuntu2).
Đây KHÔNG phải browser thật — chỉ là một wrapper.
Giải pháp 1: Cài Google Chrome (Khuyên dùng)
Cài package .deb chính thức của Google Chrome, không bị sandbox bởi snap:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt --fix-broken install -y # nếu có lỗi dependency
Sau đó cập nhật config OpenClaw (~/.openclaw/openclaw.json):
{
"browser": {
"enabled": true,
"executablePath": "/usr/bin/google-chrome-stable",
"headless": true,
"noSandbox": true
}
}
Giải pháp 2: Dùng Snap Chromium với Attach-Only Mode
Nếu các bạn bắt buộc phải dùng snap Chromium, hãy cấu hình OpenClaw để attach vào browser đã khởi động thủ công:
- Cập nhật config:
{
"browser": {
"enabled": true,
"attachOnly": true,
"headless": true,
"noSandbox": true
}
}
- Khởi động Chromium thủ công:
chromium-browser --headless --no-sandbox --disable-gpu \
--remote-debugging-port=18800 \
--user-data-dir=$HOME/.openclaw/browser/openclaw/user-data \
about:blank &
- Tùy chọn: tạo systemd user service để tự động khởi động Chrome:
# ~/.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:blank
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
Kích hoạt bằng lệnh: systemctl --user enable --now openclaw-browser.service
Kiểm tra Browser hoạt động
Kiểm tra trạng thái:
curl -s http://127.0.0.1:18791/ | jq '{running, pid, chosenBrowser}'
Test browsing:
curl -s -X POST http://127.0.0.1:18791/start
curl -s http://127.0.0.1:18791/tabs
Tham khảo Config
| Tùy chọn | Mô tả | Mặc định |
|---|---|---|
browser.enabled | Bật điều khiển browser | true |
browser.executablePath | Đường dẫn đến file binary browser dựa trên Chromium (Chrome/Brave/Edge/Chromium) | tự động phát hiện (ưu tiên browser mặc định nếu là Chromium-based) |
browser.headless | Chạy không có GUI | false |
browser.noSandbox | Thêm flag --no-sandbox (cần thiết cho một số cấu hình Linux) | false |
browser.attachOnly | Không khởi động browser, chỉ attach vào browser đang chạy | false |
browser.cdpPort | Port của Chrome DevTools Protocol | 18800 |
Vấn đề: “Chrome extension relay is running, but no tab is connected”
Các bạn đang dùng profile chrome (extension relay). Nó yêu cầu browser extension OpenClaw phải được attach vào một tab đang hoạt động.
Cách khắc phục:
- Dùng managed browser:
openclaw browser start --browser-profile openclaw(hoặc setbrowser.defaultProfile: "openclaw"). - Dùng extension relay: cài extension, mở một tab, và click vào icon extension OpenClaw để attach.
Lưu ý:
- Profile
chromesử dụng Chromium browser mặc định của hệ thống khi có thể. - Profile
openclawlocal tự động gáncdpPort/cdpUrl; chỉ set những giá trị này cho remote CDP.