コンテンツにスキップ

Windows (WSL2) で OpenClaw を動かす方法

Windows で開発をしていると、ツールやライブラリが Linux 前提で設計されていて、セットアップに苦労することがあります。OS の違いによる依存関係のトラブルや、ツールチェーンの互換性に悩まされるのは避けたいものです。

OpenClaw を Windows で動かすなら、WSL2(Ubuntu 推奨)を使うのが一番のおすすめです。CLI と Gateway を Linux 内部で実行することで、Node.js や Bun、pnpm などのツールセットを Linux バイナリとしてそのまま利用でき、環境をクリーンに保てます。WSL2 は wsl --install コマンド一つで導入できるため、非常にスムーズです。

セットアップを始める前に、以下のリソースを確認してください。

5分で環境を構築するための最小手順です。

管理者権限で PowerShell を開き、以下のコマンドを実行します。

Terminal window
wsl --install
# 特定のディストリビューションを選択する場合:
wsl --list --online
wsl --install -d Ubuntu-24.04

再起動を求められた場合は、指示に従ってください。

Gateway のインストールには systemd が必要です。WSL のターミナルで以下を実行します。

Terminal window
sudo tee /etc/wsl.conf >/dev/null <<'EOF'
[boot]
systemd=true
EOF

設定を反映させるため、PowerShell から一度 WSL をシャットダウンします。

Terminal window
wsl --shutdown

再び Ubuntu を開き、正しく動作しているか確認します。

Terminal window
systemctl --user status

WSL 内部で以下のコマンドを順番に実行します。

Terminal window
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # 初回実行時に UI の依存関係を自動インストールします
pnpm build
openclaw onboard

WSL2 内で Gateway をバックグラウンドで動かすには、以下のいずれかのコマンドを使用します。

Terminal window
openclaw onboard --install-daemon

または

Terminal window
openclaw gateway install

または

Terminal window
openclaw configure

プロンプトが表示されたら Gateway service を選択してください。

高度な設定:LAN 経由で WSL サービスを公開する (portproxy)

Section titled “高度な設定:LAN 経由で WSL サービスを公開する (portproxy)”

WSL は独自の仮想ネットワークを持っているため、外部のデバイスから WSL 内のサービス(SSH、ローカル TTS サーバー、Gateway など)にアクセスするには、Windows 側のポートを WSL の IP に転送する必要があります。

WSL の IP は再起動のたびに変わるため、その都度ルールを更新してください。

PowerShell (管理者権限) での実行例:

Terminal window
$Distro = "Ubuntu-24.04"
$ListenPort = 2222
$TargetPort = 22
$WslIp = (wsl -d $Distro -- hostname -I).Trim().Split(" ")[0]
if (-not $WslIp) { throw "WSL IP not found." }
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=$ListenPort `
connectaddress=$WslIp connectport=$TargetPort

Windows ファイアウォールの許可設定(初回のみ):

Terminal window
New-NetFirewallRule -DisplayName "WSL SSH $ListenPort" -Direction Inbound `
-Protocol TCP -LocalPort $ListenPort -Action Allow

WSL 再起動後のポート転送更新:

Terminal window
netsh interface portproxy delete v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 | Out-Null
netsh interface portproxy add v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 `
connectaddress=$WslIp connectport=$TargetPort | Out-Null

注意点:

  • 外部から接続する場合は、Windows ホストの IP を指定します(例: ssh user@windows-host -p 2222)。
  • リモートノードは 127.0.0.1 ではなく、到達可能な Gateway URL を参照する必要があります。openclaw status --all で確認してください。
  • listenaddress=0.0.0.0 を使うと LAN 内に公開され、127.0.0.1 を使うとローカルのみに制限されます。

設定がうまくいかない場合や、環境を修復したい場合は以下のコマンドを試してください。

  • 環境の修復・移行:

    Terminal window
    openclaw doctor

    このコマンドで構成の不備をチェックできます。

  • Windows ネイティブアプリについて: 現在、Windows 用のコンパニオンアプリは開発計画中ですが、まだ存在しません。開発に協力いただける方は歓迎します。

セットアップで困ったことがあれば、AI Setup Assistant がお手伝いします。

OpenClaw

OpenClaw Expert

まだ解決しませんか?

このページで解決しない場合は、OpenClaw Expertに直接質問してください。