OpenClaw 浏览器自动化测试的那些坑(一):Linux Snap 版本的 Chromium 无法使用托管模式

OpenClaw 浏览器自动化测试的那些坑(一):Linux Snap 版本的 Chromium 无法使用托管模式

本文记录了在 Linux 服务器上配置 OpenClaw 浏览器自动化功能时,遇到的 Snap 版本 Chromium 无法使用托管模式的坑及解决方案

前言

在部署 OpenClaw AI 助手时,浏览器自动化功能是一个非常强大的特性。它能让 AI 拥有"眼睛"和"双手",实现网页自动化操控。然而,在 Ubuntu 24.04 服务器上配置这个功能时,却遇到一个意想不到的坑------Snap 版本的 Chromium 无法使用托管模式。

问题现象

在腾讯云 Ubuntu 24.04 LTS 服务器上部署 OpenClaw 后,尝试通过 AI 打开网页时遇到错误:

复制代码
我无法访问浏览器控制服务。请先启动 OpenClaw 网关...

检查浏览器服务状态:

bash 复制代码
openclaw browser status

输出显示:

yaml 复制代码
profile: openclaw
enabled: true
running: false
cdpReady: false
detectedBrowser: Chromium
detectedPath: /usr/bin/chromium-browser

尝试手动启动浏览器:

bash 复制代码
openclaw browser start

依然报错:

复制代码
Error: Browser attachOnly is enabled and profile "openclaw" is not running.

根因分析

Ubuntu 24.04 的 Chromium 其实是 Snap 版本

执行以下命令验证:

bash 复制代码
file /usr/bin/chromium-browser

输出:

复制代码
/usr/bin/chromium-browser: POSIX shell script, ASCII text executable

原来 chromium-browser 只是一个 shell 脚本,用于启动 Snap 容器中的 Chromium!

为什么 Snap 版本无法工作?

Snap 是一种沙盒化的包管理系统,Snap 版本的 Chromium 运行在独立的沙盒环境中,有以下限制:

  1. CDP 端口无法暴露:OpenClaw 需要通过 Chrome DevTools Protocol (CDP) 控制浏览器,但 Snap 版本的 Chromium 由于安全隔离,无法将 CDP 端口映射到主机
  2. 沙盒限制:Snap 应用的沙盒机制会阻止外部进程对浏览器进行控制
  3. 存根程序/usr/bin/chromium-browser 只是一个启动器,真正的浏览器在 Snap 容器的另一端

这导致 OpenClaw 的托管模式(managed mode)完全无法使用,因为 OpenClaw 需要直接启动和控制浏览器进程。

解决方案

方案一:安装官方 Google Chrome(推荐)

这是最直接有效的解决方案。

1. 下载安装包
bash 复制代码
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
2. 安装 Chrome
bash 复制代码
sudo dpkg -i google-chrome-stable_current_amd64.deb

如果遇到依赖问题,执行:

bash 复制代码
sudo apt --fix-broken install -y
3. 验证安装
bash 复制代码
which google-chrome-stable
# 输出:/usr/bin/google-chrome-stable

google-chrome-stable --version
# 输出:Google Chrome 144.0.7559.132

方案二:安装系统级的 Chromium(通过仓库)

如果不希望安装 Google Chrome,可以添加 Debian/Untrusted 仓库:

bash 复制代码
sudo apt update
sudo apt install chromium

注意:Ubuntu 24.04 默认仓库中的 chromium 依然是 Snap 版本,需要使用 Debian 的仓库。

配置 OpenClaw

编辑 OpenClaw 配置文件,指定 Chrome 可执行文件路径:

bash 复制代码
nano ~/.openclaw/openclaw.json

添加或修改 browser 配置段:

json 复制代码
{
  "browser": {
    "enabled": true,
    "executablePath": "/usr/bin/google-chrome-stable",
    "headless": true,
    "noSandbox": true,
    "attachOnly": false,
    "defaultProfile": "openclaw"
  }
}

配置项说明

配置项 说明
enabled true 启用浏览器功能
executablePath /usr/bin/google-chrome-stable 指定 Chrome 路径,避免使用 Snap 版
headless true 无头模式,服务器环境必须开启
noSandbox true 禁用沙盒,服务器环境需要
attachOnly false 允许 OpenClaw 自动启动浏览器
defaultProfile openclaw 使用托管模式

重启服务

bash 复制代码
openclaw gateway restart

验证测试

检查浏览器状态

bash 复制代码
openclaw browser status

正确输出:

yaml 复制代码
profile: openclaw
enabled: true
running: true
cdpReady: true
detectedBrowser: custom
detectedPath: /usr/bin/google-chrome-stable

测试打开网页

bash 复制代码
openclaw browser open https://www.baidu.com

测试截图

bash 复制代码
openclaw browser screenshot

输出:

复制代码
MEDIA:~/.openclaw/media/browser/xxx.png

常见问题排查

问题 1:attachOnly 模式

如果遇到错误:

复制代码
Error: Browser attachOnly is enabled and profile "openclaw" is not running.

说明配置文件中 attachOnly 设置为 true。需要将其改为 false 或删除该字段,让 OpenClaw 能够自动启动浏览器。

问题 2:中文显示为方块

如果截图中的中文显示为 □□□,需要安装中文字体:

bash 复制代码
sudo apt install -y fonts-noto-cjk fonts-wqy-zenhei

问题 3:配置文件字段错误

如果重启时报错:

复制代码
Invalid config: browser: Unrecognized key: "mode"

说明使用了不存在的字段。查阅官方文档,使用正确的配置字段。

总结

Ubuntu 24.04 默认的 Chromium 是 Snap 版本,由于沙盒隔离和 CDP 端口无法暴露的原因,无法在 OpenClaw 的托管模式下工作。解决方案是安装官方的 Google Chrome 或系统级的 Chromium,并在配置文件中指定正确的可执行文件路径。

这个问题的根本原因在于 Snap 应用的沙盒化设计与传统浏览器控制需求的冲突。在服务器环境下,选择非 Snap 版本的浏览器是确保功能正常的关键。


系列文章预告

  • OpenClaw 浏览器自动化测试的那些坑(二):计划中
  • OpenClaw 浏览器自动化测试的那些坑(三):计划中

如果你觉得这篇文章对你有帮助,欢迎点赞、收藏!

本文记录于 2026 年 2 月,基于 OpenClaw v2026.2.13 版本

相关推荐
2401_834636999 分钟前
Linux 负载均衡全实战:Nginx+HAProxy+LVS 从原理到落地
linux·nginx·负载均衡
猿小猴子11 分钟前
主流 AI IDE 之一的「DeepSeek-Reasonix 」介绍
人工智能·ai·deepseek·reasonix
装不满的克莱因瓶14 分钟前
链式法则如何传递参数误差 —— 深入理解神经网络中的梯度传播
人工智能·python·深度学习·神经网络·数学·机器学习·ai
Anastasiozzzz15 分钟前
从有限状态机到智能体图:传统 FSM 与 Agent Graph的演进
java·人工智能·python·ai
鹏大师运维5 小时前
为什么信创电脑装软件总提示“软件包架构不匹配”?
linux·运维·架构·国产化·麒麟·deb·统信uos
007张三丰6 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
程序员cxuan6 小时前
为每个任务配一套 harness:Claude Code 里的动态工作流
人工智能
程序员cxuan6 小时前
Claude Fable 5 来了
人工智能·后端·程序员
云边云科技_云网融合6 小时前
云边云科技亮相 2026 WOD 制造业数智化博览会 云网融合赋能制造焕新
人工智能·科技·安全·制造
Σίσυφος19006 小时前
激光三角 光平面标定-多高度误差分析
人工智能·计算机视觉·平面