Tools

ブラウザのトラブルシューティング

問題: ポート18800でChrome CDPを起動できない

json
{ "error": "Error: Failed to start Chrome CDP on port 18800 for profile \"openclaw\"." }

根本原因

UbuntuおよびほとんどのLinuxディストリビューションでは、apt install chromiumを実行すると、実際のブラウザではなくsnapラッパーがインストールされます。

text
Note, selecting 'chromium-browser' instead of 'chromium'chromium-browser is already the newest version (2:1snap1-0ubuntu2).

snapのAppArmorによる制限が、OpenClawによるブラウザプロセスの起動と監視に干渉します。

Linuxでよくあるその他の起動失敗:

  • The profile appears to be in use by another Chromium process: 管理対象プロファイルディレクトリに古いSingleton*ロックファイルがあります。ロックが終了済みまたは別ホストのプロセスを指している場合、OpenClawはこれらのロックを削除し、1回再試行します。
  • Missing X server or $DISPLAY: デスクトップセッションがないホストで、表示ありのブラウザが明示的に要求されています。Linuxでは、DISPLAYWAYLAND_DISPLAYがどちらも未設定の場合、ローカル管理対象プロファイルはヘッドレスモードにフォールバックします。OPENCLAW_BROWSER_HEADLESS=0browser.headless: false、またはbrowser.profiles.<name>.headless: falseを設定している場合は、その表示ありのオーバーライドを削除するか、OPENCLAW_BROWSER_HEADLESS=1を設定するか、Xvfbを起動するか、1回限りの管理対象起動としてopenclaw browser start --headlessを実行するか、実際のデスクトップセッションでOpenClawを実行してください。

解決策1: Google Chromeをインストールする(推奨)

bash
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  # 依存関係エラーがある場合

~/.openclaw/openclaw.jsonを更新します。

json
{  "browser": {    "enabled": true,    "executablePath": "/usr/bin/google-chrome-stable",    "headless": true,    "noSandbox": true  }}

解決策2: snap版Chromiumをアタッチ専用モードで使用する

snap版Chromiumを使い続ける必要がある場合は、OpenClawがブラウザを起動するのではなく、手動で起動したブラウザにアタッチするよう設定します。

json
{  "browser": {    "enabled": true,    "attachOnly": true,    "headless": true,    "noSandbox": true  }}

Chromiumを手動で起動します。

bash
chromium-browser --headless --no-sandbox --disable-gpu \  --remote-debugging-port=18800 \  --user-data-dir=$HOME/.openclaw/browser/openclaw/user-data \  about:blank &

必要に応じて、systemdユーザーサービスで自動起動します。

ini
# ~/.config/systemd/user/openclaw-browser.service[Unit]Description=OpenClaw Browser (Chrome CDP)After=network.target [Service]ExecStart=/snap/bin/chromium --headless --no-sandbox --disable-gpu --remote-debugging-port=18800 --user-data-dir=%h/.openclaw/browser/openclaw/user-data about:blankRestart=on-failureRestartSec=5 [Install]WantedBy=default.target
bash
systemctl --user enable --now openclaw-browser.service

ブラウザが動作することを確認する

bash
curl -s http://127.0.0.1:18791/ | jq '{running, pid, chosenBrowser}'curl -s -X POST http://127.0.0.1:18791/startcurl -s http://127.0.0.1:18791/tabs

設定リファレンス

オプション 説明 デフォルト
browser.enabled ブラウザ制御を有効にする true
browser.executablePath Chromiumベースのブラウザバイナリ(Chrome/Brave/Edge/Chromium)へのパス 自動検出(OSのデフォルトブラウザがChromiumベースの場合はそれを優先)
browser.headless GUIなしで実行する false
OPENCLAW_BROWSER_HEADLESS ローカル管理対象ブラウザのヘッドレスモードに対するプロセス単位のオーバーライド 未設定
browser.noSandbox --no-sandboxフラグを追加する(一部のLinux環境で必要) false
browser.attachOnly ブラウザを起動せず、既存のブラウザへのアタッチのみを行う false
browser.cdpPortRangeStart 自動割り当てプロファイルで使用するローカルCDPポートの開始番号 18800(Gatewayポートから導出)
browser.localLaunchTimeoutMs ローカル管理対象Chromeの検出タイムアウト(最大120000 15000
browser.localCdpReadyTimeoutMs ローカル管理対象Chrome起動後のCDP準備完了タイムアウト(最大120000 8000

両方のタイムアウト値には、120000ミリ秒以下の正の整数を指定する必要があります。それ以外の値は設定読み込み時に拒否されます。Raspberry Pi、古いVPSホスト、または低速なストレージで、ChromeがCDP HTTPエンドポイントを公開するまでに時間がかかる場合は、browser.localLaunchTimeoutMsを増やしてください。起動には成功しているものの、openclaw browser startで引き続きnot reachable after startと報告される場合は、browser.localCdpReadyTimeoutMsを増やしてください。

問題: profile="user"のChromeタブが見つからない

userexisting-session / Chrome MCP)プロファイルを使用していますが、アタッチ可能なタブが開かれていません。

修正方法:

  1. 代わりに管理対象ブラウザを使用します。 openclaw browser --browser-profile openclaw start(または browser.defaultProfile: "openclaw"を設定)。
  2. ローカルのChromeを少なくとも1つのタブを開いた状態で実行し続けてから、 --browser-profile userを指定して再試行します。

注:

  • userはホスト専用です。Linuxサーバー、コンテナ、またはリモートホストでは、代わりにCDPプロファイルを使用してください。
  • userおよびその他のexisting-sessionプロファイルには、現在のChrome MCPの制限が共通して適用されます。参照駆動型アクションのみ、アップロードごとに1ファイル、ダイアログのtimeoutMsオーバーライド不可、wait --load networkidle不可、さらにresponsebody、PDFエクスポート、ダウンロードのインターセプト、バッチアクションは使用できません。
  • ローカルのopenclawドライバープロファイルでは、cdpPort/cdpUrlが自動的に割り当てられます。これらを手動で設定するのはリモートCDPの場合だけです。
  • リモートCDPプロファイルでは、http://https://ws://wss://を使用できます。/json/versionによる検出にはHTTP(S)を使用し、ブラウザサービスからDevToolsソケットの直接URLが提供される場合はWS(S)を使用します。

関連項目

Was this useful?
On this page

On this page