remote-chrome

使用Xvfb、x11vnc和noVNC启动、停止、重启或检查远程Chrome浏览器服务状态。

安装

概览

什么是remote-chrome

remote-chrome 是一个用于在远程服务器上启动和管理 Chrome 浏览器的工具,通过虚拟化技术(Xvfb)和 VNC 协议实现无头环境下的图形化浏览器访问。它集成了 x11vnc 和 noVNC,支持用户通过网页界面或传统 VNC 客户端远程控制远程 Chrome 实例,同时开放 Chrome DevTools 端口以支持远程调试。该工具专为需要自动化测试、网页抓取或远程演示等场景设计,尤其适合缺乏图形界面的云服务器环境。所有操作均可通过简单的 Shell 脚本完成,无需复杂配置即可快速部署。 该工具的核心优势在于其轻量化和易用性:启动脚本自动检测系统依赖项(如 Xvfb、x11vnc、noVNC 等),若缺少相关组件会给出明确的安装指引。一旦服务运行,用户可通过 http://:6080 访问基于浏览器的 noVNC 客户端,或使用标准 VNC 连接至 :5900。此外,Chrome 默认开启远程调试端口(9222),便于与自动化框架集成。状态监控脚本可实时查看进程信息、内存占用、当前打开的标签页以及 VNC 密码,极大提升了运维效率。 remote-chrome 的设计充分考虑了实际生产需求,支持自定义端口、屏幕分辨率、代理设置等多种参数,并兼容常见的环境变量(如 HTTP_PROXY)。它还提供了前台运行模式(-f)和详细日志输出(-v)选项,方便开发者调试和排查问题。无论是作为 agent-browser 技能链的一部分进行程序化控制,还是用于人工验证自动化流程,remote-chrome 都能提供稳定可靠的远程浏览器访问能力。

核心功能特点

  1. 通过 Xvfb 实现无显示器的虚拟图形环境运行 Chrome
  2. 集成 x11vnc 和 noVNC 提供网页端及传统 VNC 访问方式
  3. 自动检测并提示缺失的系统依赖项(如 Xvfb、noVNC 等)
  4. 内置 start/stop/status 脚本简化服务生命周期管理
  5. 支持自定义 VNC、noVNC 和 Chrome 调试端口
  6. 可配置屏幕分辨率、代理服务器及绕过列表

适用场景

remote-chrome 特别适合在 Linux 服务器上运行 Chrome 浏览器,尤其是在没有物理显示器或无图形界面的云主机环境中。例如,在持续集成(CI)流水线中执行端到端测试时,传统浏览器无法在无头模式下直接渲染页面,而 remote-chrome 可提供完整的视觉交互能力,使测试人员能够观察 UI 变化并进行手动验证。另一个典型应用场景是网页数据采集(Web Scraping),某些动态加载内容必须依赖真实浏览器行为才能正确获取数据,此时 remote-chrome 可作为稳定的后端服务长期运行。 对于开发者和自动化工程师而言,remote-chrome 是实现“人机协同”的理想选择。一方面,可以通过 agent-browser 等工具对 Chrome 进行程序化操作,完成表单填写、点击按钮、爬取信息等任务;另一方面,借助 noVNC 提供的可视化界面,可以随时暂停脚本执行,实时检查页面状态,确认自动化逻辑是否符合预期。这种双重控制方式不仅提高了调试效率,也降低了因脚本错误导致的数据丢失风险。此外,由于所有资源均在本地服务器上运行,网络延迟低且安全性高,非常适合企业内部使用。