Triển khai Browserless Sandbox trên VPS cho phép OpenClaw điều khiển một trình duyệt Chromium chạy riêng trong Docker thông qua Chrome DevTools Protocol (CDP), thay vì phụ thuộc hoàn toàn vào trình duyệt cài trực tiếp trên VPS. Cách triển khai này giúp môi trường browser ổn định hơn, dễ cô lập, dễ quản lý phiên làm việc và phù hợp với các tác vụ AI Agent cần truy cập website 24/7.
Browserless Sandbox là gì?
Browserless là nền tảng cung cấp trình duyệt Chrome/Chromium cho các ứng dụng automation. Thay vì mở Chrome trực tiếp, ứng dụng có thể kết nối đến Browserless thông qua WebSocket hoặc Chrome DevTools Protocol – CDP rồi điều khiển trình duyệt từ xa. Browserless hỗ trợ Puppeteer, Playwright và các hệ thống AI Agent có khả năng kết nối CDP.
Trong trường hợp OpenClaw, chúng ta có thể chạy Browserless bằng Docker ngay trên VPS:
OpenClaw
│
│ CDP / WebSocket
▼
Browserless
│
▼
Chromium
│
▼
Website
Browserless Container đóng vai trò như một browser sandbox riêng biệt. OpenClaw gửi lệnh đến Browserless, còn Chromium chịu trách nhiệm mở trang web, click, nhập dữ liệu, đọc nội dung hoặc chụp ảnh màn hình.
OpenClaw hiện hỗ trợ trực tiếp các remote CDP profile, trong đó, tài liệu chính thức cũng đưa Browserless làm một ví dụ cụ thể.

Browserless có giúp OpenClaw vượt Anti-Bot và CAPTCHA không?
Có thể giúp giảm một số vấn đề liên quan đến browser automation, nhưng Browserless Open Source không phải công cụ tự động vượt CAPTCHA.
Đây là điểm cần đặc biệt lưu ý. Browserless hiện có nhiều nhóm sản phẩm khác nhau:
Khả năng Browserless Open Source Browserless Cloud/Enterprise Chromium trong Docker Có Có Remote CDP Có Có Puppeteer/Playwright Có Có Quản lý browser session Có Có BrowserQL Không Có Stealth nâng cao Không Có CAPTCHA assistance Không Có tùy sản phẩm/tính năng Công cụ fingerprint nâng cao Không Có
Hướng dẫn triển khai Browserless Sandbox trên VPS cho OpenClaw
Ví dụ dưới đây giả định:
- VPS chạy Ubuntu.
- OpenClaw đã được cài đặt.
- Bạn có quyền sudo.
- Browserless chưa được cài.
Bước 1: Cài Docker và nano (nếu chưa có) trên VPS
Kiểm tra trước:
docker --version
Nếu chưa có Docker, chạy:
curl -fsSL https://get.docker.com | sh

Sau đó bật Docker:
sudo systemctl enable --now docker
Kiểm tra lại:
docker --version

Nếu Docker trả về phiên bản hiện tại, có thể chuyển sang bước cài trình soạn thảo nano:
apt update
apt install nano -y
Bước 2: Tạo Browserless Container
Tạo thư mục:
sudo mkdir -p /opt/browserless
cd /opt/browserless
Tạo token ngẫu nhiên:
openssl rand -hex 24

Hãy lưu chuỗi vừa tạo.
Tiếp theo tạo file:
sudo nano .env
Thêm:
BROWSERLESS_TOKEN=TOKEN_CUA_BAN
Thay TOKEN_CUA_BAN bằng token vừa tạo.

Tiếp tục tạo Docker Compose:
sudo nano docker-compose.yml
Thêm:
services:
browserless:
image: ghcr.io/browserless/chromium:latest
container_name: browserless
restart: unless-stopped
shm_size: "2gb"
ports:
- "127.0.0.1:3000:3000"
environment:
TOKEN: "${BROWSERLESS_TOKEN}"
CONCURRENT: "2"
EXTERNAL: "ws://127.0.0.1:3000"

Sau đó chạy:
sudo docker compose up -d
Kiểm tra container:
sudo docker ps
Bạn sẽ thấy container có tên:
browserless

Browserless hiện khuyến nghị tăng /dev/shm cho Chromium khi chạy Docker vì dung lượng mặc định của Docker khá nhỏ và có thể khiến Chrome thiếu bộ nhớ dùng chung.
Bước 3: Kiểm tra Browserless
Có thể xem log bằng:
sudo docker logs browserless --tail 50
Sau đó thử endpoint:
curl "http://127.0.0.1:3000/pressure?token=TOKEN_CUA_BAN"
Nếu Browserless trả về dữ liệu trạng thái, container đã hoạt động.
Bạn cũng có thể kiểm tra:
curl "http://127.0.0.1:3000/json/version?token=TOKEN_CUA_BAN"
Browserless sẽ cung cấp thông tin về browser/CDP endpoint.
Bước 4: Kết nối Browserless với OpenClaw
OpenClaw lưu cấu hình browser trong ~/.openclaw/openclaw.json.
Mở file:
nano ~/.openclaw/openclaw.json
Nếu file đã có cấu hình khác, chỉ cần thêm hoặc ghép phần browser, không xóa các cấu hình đang sử dụng.
Ví dụ:
{
browser: {
enabled: true,
defaultProfile: "browserless",
profiles: {
browserless: {
cdpUrl: "ws://127.0.0.1:3000?token=TOKEN_CUA_BAN",
attachOnly: true
}
}
}
}
Thay TOKEN_CUA_BAN bằng token Browserless thực tế.

Theo tài liệu OpenClaw, khi Browserless chạy ngoài OpenClaw nhưng sử dụng địa chỉ loopback như 127.0.0.1, profile nên đặt attachOnly: true. Nếu bỏ tùy chọn này, OpenClaw có thể hiểu nhầm cổng Browserless là browser do OpenClaw tự quản lý và báo lỗi cổng đang được sử dụng.
Bước 5: Kiểm tra Browserless Profile
Chạy:
openclaw browser –browser-profile browserless doctor
Tiếp theo:
openclaw browser --browser-profile browserless tabs
Thử mở một website đơn giản:
openclaw browser --browser-profile browserless open https://example.com
Sau đó lấy snapshot:
openclaw browser --browser-profile browserless snapshot
OpenClaw hiện cung cấp browser doctor để kiểm tra CDP, profile và khả năng kết nối trình duyệt.
Nếu cấu hình chưa được nhận, có thể restart Gateway an toàn:
openclaw gateway restart --safe
Các phiên bản OpenClaw hiện tại hỗ trợ restart Gateway trực tiếp bằng CLI.
Bước 6: Cho phép OpenClaw Agent sử dụng Browserless
Nếu defaultProfile: "browserless" đã được thiết lập, các tác vụ browser của OpenClaw có thể sử dụng profile Browserless làm mặc định.
Ví dụ prompt:
Mở https://example.com bằng browser.
Đọc tiêu đề trang và nội dung chính.
Tóm tắt nội dung thành 5 ý ngắn.
Luồng xử lý sẽ trở thành:
Prompt
↓
OpenClaw Agent
↓
Browser Tool
↓
Browserless
↓
Chromium
↓
Website
Nếu OpenClaw Agent đang chạy trong sandbox riêng, browser tool có thể mặc định sử dụng browser bên trong sandbox thay vì browser của host.
Trong trường hợp thực sự cần Agent truy cập Browserless trên host, OpenClaw hỗ trợ:
{
agents: {
defaults: {
sandbox: {
browser: {
allowHostControl: true
}
}
}
}
}
Chỉ bật tùy chọn này khi cần thiết vì quyền điều khiển browser của Agent sẽ được mở rộng sang host.
Các lỗi thường gặp khi kết nối OpenClaw với Browserless
Lỗi connection refused
Kiểm tra Browserless:
sudo docker ps
Nếu container không chạy, hãy gửi lệnh:
cd /opt/browserless
sudo docker compose up -d
OpenClaw báo CDP không kết nối được
Chạy:
openclaw browser --browser-profile browserless doctor
Sau đó kiểm tra:
sudo docker logs browserless --tail 50
Nếu OpenClaw và Browserless cùng VPS, kiểm tra cdpUrl:
ws://127.0.0.1:3000

Báo cổng 3000 đang được sử dụng
Kiểm tra:
sudo ss -lntp | grep 3000
Nếu Browserless đang sử dụng cổng này thì đây là trạng thái bình thường.
Quan trọng hơn là profile OpenClaw phải có:
attachOnly: true
Browserless hoạt động nhưng OpenClaw không mở được website
Thử:
openclaw browser --browser-profile browserless tabs
Nếu tabs hoạt động nhưng:
openclaw browser --browser-profile browserless open https://example.com
thất bại, vấn đề có thể nằm ở chính sách điều hướng/SSRF thay vì CDP.
Tài liệu OpenClaw cũng khuyến nghị phân biệt hai nhóm lỗi này bằng chuỗi kiểm tra doctor → tabs → open.
Website vẫn xuất hiện CAPTCHA
Điều này không đồng nghĩa Browserless bị lỗi. Browserless Open Source không bao gồm CAPTCHA solving hoặc BrowserQL stealth.
Hãy kiểm tra:
- Website có cho phép automation hay không.
- Tần suất truy cập có quá cao không.
- Session có liên tục bị tạo mới không.
- Tài khoản có đang bị yêu cầu xác minh không.
- Website có API chính thức thay cho browser automation không.
Nếu CAPTCHA là bước xác minh bắt buộc, nên chuyển tác vụ sang human-in-the-loop.
Những lưu ý khi sử dụng Browserless trên VPS
- Không mở cổng Browserless trực tiếp ra Internet nếu không cần thiết.
- Luôn đặt TOKEN cho Browserless.
- Không lưu token Browserless lên GitHub hoặc repository công khai.
- Chỉ dùng attachOnly: true với Browserless/CDP do dịch vụ bên ngoài OpenClaw quản lý.
- Giới hạn CONCURRENT phù hợp với RAM và CPU của VPS.
- Tăng shm_size để Chromium ổn định hơn khi chạy Docker.
- Theo dõi docker logs browserless khi browser thường xuyên crash.
- Không xem Browserless Open Source như một công cụ CAPTCHA bypass.
- Ưu tiên API chính thức khi website cung cấp API phù hợp.
- Chỉ tự động hóa những website và tài khoản mà bạn được quyền truy cập.

Kết luận
Triển khai Browserless Sandbox trên VPS giúp OpenClaw có một trình duyệt riêng: tách biệt, an toàn và chạy liên tục. Chỉ với Docker và vài dòng cấu hình, bạn đã có nền tảng vững chắc. Để xử lý Anti-Bot và Captcha ở mức cao, hãy kết hợp thêm Stealth, proxy dân cư hoặc dùng Browserless Cloud. Bắt đầu từ bản tự dựng, thử nghiệm trên vài tác vụ thật, rồi nâng cấp khi cần.
Các bài viết liên quan:
- Hướng dẫn cài đặt và sử dụng ClawHub CLI trên OpenClaw
- Hướng dẫn cài đặt OpenClaw Skills trên ClawHub không cần code
- Hướng dẫn cách lấy API Token Slack để kết nối với OpenClaw
- Hướng dẫn sửa lỗi Tool Loop trong OpenClaw
- Hướng dẫn cách lấy API Token Telegram để kết nối với OpenClaw
- Hướng dẫn nâng cấp OpenClaw trên Docker và VPS an toàn
- Hướng dẫn kết nối Zalo với OpenClaw
- Hướng dẫn chuyển từ Cron cũ sang Automations trong OpenClaw cho người mới
- Hướng dẫn tạo Custom Skills cho OpenClaw
- Hướng dẫn kết nối Codex (ChatGPT OAuth) với OpenClaw
- Hướng dẫn kết nối Discord với OpenClaw
Những câu hỏi thường gặp
OpenClaw và Browserless có thể nằm trên hai máy khác nhau không?
Được. Điều kiện là OpenClaw truy cập được địa chỉ CDP. Cách an toàn là dùng đường hầm SSH hoặc Nginx kèm HTTPS và token, tránh mở cổng 3000 công khai.
Browserless trên VPS có tự vượt được Captcha không?
Bản mã nguồn mở thì chưa. Tính năng giải Captcha và Stealth nâng cao thuộc gói Cloud hoặc Enterprise. Bản tự dựng miễn phí chủ yếu giúp bạn có trình duyệt cô lập, ổn định cho OpenClaw.
Tự dựng Browserless trên VPS có miễn phí không?
Image mã nguồn mở dùng được miễn phí theo giấy phép SSPL-1.0, nhưng bạn vẫn trả tiền thuê VPS. Với dự án thương mại mã nguồn đóng, bạn cần giấy phép thương mại.
Nên chọn Browserless Cloud hay tự dựng trên VPS?
Nếu ưu tiên vượt Anti-Bot và Captcha nhanh, Cloud tiện hơn vì có sẵn Stealth, proxy và giải Captcha. Nếu ưu tiên kiểm soát dữ liệu và chi phí cố định, tự dựng trên VPS phù hợp hơn.
