返回顶部
b

browser-vps-setup-skill

Set up a remote-controlled Chrome browser on a Linux VPS with noVNC visual access (via SSH tunnel) and optional authenticated HTTP proxy. Use when the user wants to run a browser on a VPS, control it remotely, view it via noVNC, or route browser traffic through a proxy.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
527
下载量
0
收藏
概述
安装方式
版本历史

browser-vps-setup-skill

# Browser on VPS — Setup Set up Chrome on a Linux VPS so: - The agent can control it (open pages, click, fill forms, take screenshots) via OpenClaw browser tool - The user can watch and interact via noVNC in their local browser (over SSH tunnel) - Optionally: all traffic routes through an authenticated HTTP proxy (for anti-captcha) --- ## Step 1: Install dependencies ```bash apt-get install -y xvfb x11vnc novnc # Install real Google Chrome (NOT snap — snap breaks automation) wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -O /tmp/chrome.deb apt-get install -y /tmp/chrome.deb || apt --fix-broken install -y ``` --- ## Step 2: Start the browser stack ```bash # Clean stale locks rm -f /tmp/.X99-lock ~/.openclaw/browser/openclaw/user-data/SingletonLock 2>/dev/null # Virtual display Xvfb :99 -screen 0 1280x800x24 & sleep 2 # VNC server (localhost only, no password) x11vnc -display :99 -forever -nopw -localhost -quiet & sleep 1 # noVNC web UI on port 6080 (localhost only) websockify --web /usr/share/novnc 6080 localhost:5900 & sleep 1 # Chrome with CDP on port 18800 DISPLAY=:99 google-chrome-stable --no-sandbox --disable-gpu \ --remote-debugging-port=18800 \ --user-data-dir=~/.openclaw/browser/openclaw/user-data \ --window-size=1280,800 & ``` --- ## Step 3: Connect visually from your laptop ```bash ssh -L 6080:localhost:6080 root@YOUR_VPS_IP ``` Then open **http://localhost:6080/vnc.html** → click **Connect**. You'll see the Chrome window live. You and the agent control it simultaneously. --- ## Step 4: Configure OpenClaw In `~/.openclaw/openclaw.json` add: ```json { "browser": { "enabled": true, "executablePath": "/usr/bin/google-chrome-stable", "attachOnly": true, "headless": false, "noSandbox": true } } ``` Then restart: `openclaw gateway restart` The agent can now use the `browser` tool to navigate, click, type, screenshot, etc. --- ## Step 5 (Optional): Authenticated HTTP proxy If you need a proxy (e.g. mobile proxy for anti-captcha), Chrome can't pass username/password in `--proxy-server`. Solution: run a local Python bridge that forwards with auth injected automatically. ```bash python3 -c " import socket, threading, base64, select UPSTREAM_HOST = 'PROXY_IP' # e.g. 87.236.22.82 UPSTREAM_PORT = PROXY_PORT # e.g. 19423 USERNAME = 'PROXY_USER' PASSWORD = 'PROXY_PASS' LOCAL_PORT = 18801 auth = base64.b64encode(f'{USERNAME}:{PASSWORD}'.encode()).decode() def handle(client): try: data = b'' while b'\r\n\r\n' not in data: data += client.recv(4096) upstream = socket.create_connection((UPSTREAM_HOST, UPSTREAM_PORT)) if b'Proxy-Authorization' not in data: data = data.replace(b'\r\n\r\n', f'\r\nProxy-Authorization: Basic {auth}\r\n\r\n'.encode(), 1) upstream.sendall(data) while True: r, _, _ = select.select([client, upstream], [], [], 30) if not r: break for s in r: d = s.recv(65536) if not d: return (upstream if s is client else client).sendall(d) except: pass finally: try: client.close() except: pass try: upstream.close() except: pass srv = socket.socket() srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) srv.bind(('127.0.0.1', LOCAL_PORT)) srv.listen(50) print('Local proxy on 127.0.0.1:18801') while True: c, _ = srv.accept() threading.Thread(target=handle, args=(c,), daemon=True).start() " & ``` Then restart Chrome with proxy: ```bash pkill -9 chrome rm -f ~/.openclaw/browser/openclaw/user-data/SingletonLock DISPLAY=:99 google-chrome-stable --no-sandbox --disable-gpu \ --remote-debugging-port=18800 \ --user-data-dir=~/.openclaw/browser/openclaw/user-data \ --window-size=1280,800 \ --proxy-server="http://127.0.0.1:18801" & ``` Verify: ask the agent to open `https://api.ipify.org` — it should show the proxy IP, not the VPS IP. --- ## Firewall (recommended) ```bash ufw default deny incoming ufw default allow outgoing ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw --force enable ``` noVNC (6080), VNC (5900), and CDP (18800) are all localhost-only — never exposed publicly. --- ## After reboot All processes (Xvfb, x11vnc, websockify, Chrome) must be restarted. Ask the agent: > "Start the browser stack on the VPS" The agent should run Step 2 commands from this skill.

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 browser-vps-setup-skill-1776419960 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 browser-vps-setup-skill-1776419960 技能

通过命令行安装

skillhub install browser-vps-setup-skill-1776419960

下载 Zip 包

⬇ 下载 browser-vps-setup-skill v1.0.0

文件大小: 2.95 KB | 发布时间: 2026-4-17 18:54

v1.0.0 最新 2026-4-17 18:54
Initial release: Easily set up a remotely controllable Chrome browser on a Linux VPS with noVNC visual access and optional authenticated proxy.

- Provides detailed steps to install, run, and access Chrome via noVNC on Ubuntu/Debian VPS.
- Enables simultaneous control by both agent (automation) and user (visual/interactive via browser).
- Includes config for integration with OpenClaw agents.
- Offers an optional local Python proxy bridge for authenticated HTTP proxies.
- Security note: visual access and control ports are localhost-only; includes recommended firewall settings.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部