简要总结
Browser Troubleshooting
这页说明书是来帮忙解决一个“小麻烦”的。有时候,在 Linux 电脑上,OpenClaw 这个工具想打开一个叫 Chrome 的浏览器来工作,但是打不开,会显示一个错误。这页纸就是告诉你为什么会这样,以及我们怎么把它修好。如果你在用 OpenClaw 时,浏览器怎么也启动不了,就可以来看看这里。
五岁小孩版解释
有时候,OpenClaw 想帮你打开一个浏览器(比如 Chrome、Brave、Edge 或者 Chromium)来工作,但它会失败,并且告诉你一个错误信息,说“在 18800 号港口启动 Chrome CDP 失败了”。你可以把“CDP”想象成是 OpenClaw 和浏览器之间说悄悄话用的一个专用对讲机。
为什么会这样呢?在很多 Linux 电脑上,特别是 Ubuntu,系统自带的那个 Chromium 浏览器是一个特殊的“快照”包。这个“快照”包就像给浏览器穿上了一件很紧的防护服,让 OpenClaw 没办法和它正常地打招呼、一起玩。所以,我们需要换一种方法来请浏览器帮忙。
这里有两个主要的解决办法,第一个办法更简单,推荐你试试。
第一个办法:安装谷歌 Chrome 浏览器(推荐) 这个办法是去请一个没有穿“快照”防护服的 Chrome 浏览器来帮忙。
- 下载 Chrome 浏览器。打开电脑的“终端”,输入下面三行命令,就像告诉电脑去一个地方把 Chrome 浏览器请回家。
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.debsudo dpkg -i google-chrome-stable_current_amd64.debsudo apt --fix-broken install -y注意:输入sudo开头的命令时,电脑可能会问你要密码,就像进家门需要钥匙一样。 - 告诉 OpenClaw 新朋友在哪里。我们需要修改 OpenClaw 的一个小本子(配置文件),告诉它:“嘿,以后请用这个新来的 Chrome 浏览器吧!”。
打开这个文件:
~/.openclaw/openclaw.json,找到browser那一部分,把它改成下面这样:
这里{ "browser": { "enabled": true, "executablePath": "/usr/bin/google-chrome-stable", "headless": true, "noSandbox": true } }executablePath就是 Chrome 浏览器住的地方(路径),headless: true意思是让浏览器在后台默默工作,不弹出窗口,noSandbox: true是告诉浏览器不要开启另一个保护模式(沙盒),这样 OpenClaw 才能和它顺利通话。
第二个办法:继续用“快照”版 Chromium,但换个方式启动 如果你一定要用系统自带的那个“快照”版 Chromium,也可以。但我们需要换一种方式:我们先自己手动把浏览器叫醒,然后让 OpenClaw 去和它牵手。
- 告诉 OpenClaw 新的牵手方式。还是修改那个小本子 (
~/.openclaw/openclaw.json),把browser部分改成:
看,这里多了一个{ "browser": { "enabled": true, "attachOnly": true, "headless": true, "noSandbox": true } }attachOnly: true,意思就是“我只牵手,不负责叫醒你”。 - 我们手动叫醒浏览器。在终端里输入一长串命令来启动 Chromium 浏览器,并且告诉它在 18800 号港口准备好对讲机。
chromium-browser --headless --no-sandbox --disable-gpu --remote-debugging-port=18800 --user-data-dir=$HOME/.openclaw/browser/openclaw/user-data about:blank &这串命令有点长,要小心别输错哦。最后那个&符号是让它在后台运行的意思。 - (可选)让电脑开机自动叫醒浏览器。如果你觉得每次都要手动输入命令太麻烦,可以写一张“自动任务卡”(systemd 服务文件),让电脑一开机就帮你做好这件事。具体怎么做,说明书里有一张“任务卡”的例子,你可以照着写。
修好了吗?我们来检查一下!
修好之后,我们可以问问 OpenClaw:“浏览器朋友在正常工作吗?”
在终端输入:curl -s http://127.0.0.1:18791/ | jq '{running, pid, chosenBrowser}'
如果它回答 running: true,那就说明成功啦!
你还可以试试让它打开一个网页标签:curl -s -X POST http://127.0.0.1:18791/start,然后再看看有几个标签:curl -s http://127.0.0.1:18791/tabs。
另一个小麻烦:浏览器扩展连上了,但标签页没连上
如果你用的是 chrome 这个配置(它通过一个浏览器扩展小插件来工作),可能会遇到另一个问题:小插件在工作,但没有一个打开的网页标签页和它牵手。
怎么修呢?
- 换用
openclaw这个配置来管理浏览器。可以在终端输入:openclaw browser start --browser-profile openclaw。 - 或者,继续用
chrome配置,但你需要:先安装好 OpenClaw 的浏览器扩展小插件,然后打开一个网页标签页,最后点击一下浏览器右上角的那个 OpenClaw 小插件图标,让它和这个标签页牵上手。
记住哦,chrome 这个配置会尽量使用你电脑上默认的 Chromium 浏览器。而 openclaw 这个配置会自动设置好对讲机的港口(cdpPort),通常你不需要自己改它。