2026年 OpenClaw リモート Mac 双機トポロジ実践:
CALMVPS Gateway + ローカル macOS Remote と 18789 トンネル排障

多くのチームはローカル MacOpenClaw のデモまでは通しますが、本番では別の論点に直面します。Gateway を 7×24 でデータセンター級の裸金属に載せたい一方、Canvas・画面収録・カメラ・system.runTCC 権限のあるローカル Macに残す必要がある、という二重要件です。2026 年の公式 macOS ドキュメントはこれを Remote モードと呼び、遠隔側は Gateway のみ、ローカルは node host を起動し、制御面は SSH トンネルまたは Tailscale 経由で既定の 18789 に接続します。本稿では再現可能な双機トポロジ、Local と Remote の対照表、六段の接入手順、現象別の排障表をまとめ、機種とノードは CALMVPS 料金ページを参照してください。

読み終えると次の三つに答えられます。① 自社の段階では Local 単機を維持すべきか Remote 双機へ移行すべきか。② Gateway をどの CALMVPS リージョンに置き、ローカル App を Remote に切り替えて node host を起動する手順は何か。③ トンネル不通、18789 の競合、Gateway 上で node IP が 127.0.0.1 のままのとき、最初に打つコマンドはどれか。

01 双機トポロジが解く三つの痛み

「一台の Mac に全部載せる」構成は検証環境では滑らかですが、本番に入ると次の三つが同時に顕在化しやすくなります。

  • 算力と権限の結合:Gateway の長時間接続、Cron、複数チャネルのセッションが CPU とユニファイドメモリを食い、同じマシンで画面収録と自動化を回すと 16GB 機は夜間バッチでスワップし、TCC ダイアログが無人運用を中断します。
  • 出口の不安定さ:家庭回線やオフィス NAT は WebSocket 長接続に不向きで、Channel オフラインが「モデル障害」と誤認され、調査の起点が最初からずれます。
  • 運用境界の曖昧さ:スリープ、macOS アップデート、Spotlight、launchd 常駐が重なり、Gateway 障害なのか OS がプロセスを止めたのか切り分けにくくなります。

Remote 双機トポロジは役割を分離します。遠隔のベアメタル Mac(CALMVPS の香港・日本・韓国・シンガポール・米東西など)が Gateway、チャネル、スケジュールを担い、ローカル Macは UI と TCC を持つ Node として node host 経由で Canvas、Camera、Screen、system.run を遠隔 Gateway に公開します。制御面は引き続き 18789 ですが、macOS App が SSH 制御トンネルを維持するため、ポート転送スクリプトを手書きし続ける必要はありません。

選定の短い指針です。「Gateway はクラウド、Node はローカル、制御面は 18789 のみ」。トポロジを一枚の図に固定してから、M4 階層と契約期間を決めると会議が短く終わります。

02 Local 単機と Remote 双機の判断表

すべてのチームが即座に双機へ移る必要はありません。下表は「Local を維持」と「Remote へ切り替え」の境界をレビュー会で一度に揃えるためのものです。

OpenClaw Local 単機と Remote 双機(2026 本番視点)
観点 Local(Gateway 同一台) Remote(Gateway は CALMVPS 裸金属)
向く段階 個人検証、単一チャネル Bot 7×24 チャネル、複数 Agent、跨時区 Cron
ローカル Mac の役割 Gateway と Node が一体 Node のみ(TCC、Canvas、system.run)
遠隔 Mac の役割 なし Gateway、launchd 常駐、ログ永続化
制御面 127.0.0.1:18789 直結 SSH -L または Tailscale MagicDNS + App トンネル
典型リスク 睡眠・更新による中断、メモリ競合 トンネル劣化、バージョン不一致、Token 非同期
推奨契約 自前デバイスで足りる Gateway ノードは月次・四半期、ローカル増設不要

マルチリージョンの Hub-and-Spoke(Gateway を利用者密集区、Worker を次密集区)を組む場合も、Remote 双機が前提になります。リージョン選定の詳細は OpenClaw リモート Mac ノード選定を参照し、本稿は「遠隔 Gateway 一台 + ローカル Node 一台」の最小本番構成に焦点を当てます。

03 CALMVPS 裸金属への Gateway 配置

遠隔ノードは利用者とチャネル出口に最も近い CALMVPS リージョンを選びます。Gateway は loopback のみで待ち受け、制御面は SSH または Tailscale で露出し、Web UI を公網に直結しないのが安全です。インストールは OpenClaw 公式スクリプトを基準にしてください(発版後はリンクを再確認してください)。

https://openclaw.ai/install.sh

macOS プラットフォーム(Local/Remote、launchd ラベル ai.openclaw.gateway)の説明:

https://docs.openclaw.ai/platforms/macos

REMOTE_GATEWAY_SETUP.SH
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemon
openclaw gateway status
launchctl kickstart -k gui/$UID/ai.openclaw.gateway
Gateway WS 既定 18789、127.0.0.1 バインド推奨
  • Node ランタイム:Gateway は Node ランタイムを前提とします。裸金属では主バージョンを固定し、launchd と対話シェルで別バージョンを混在させないでください。
  • 状態ディレクトリ:OPENCLAW_STATE_DIR を iCloud 同期パスに置かず、~/.openclaw を推奨します。openclaw doctor の警告と揃えてください。
  • ディスク余裕:ログ、Cron 履歴、Memory の永続化は継続的に増えます。本番 Gateway では OpenClaw 専用に 80GB 以上を確保し、必要に応じて 1TB/2TB 階層または並列ノードでキューを分割してください。

04 ローカル Remote と SSH/Tailscale 六段

ローカル Mac に OpenClaw.app を入れ、TCC 権限を完了したうえで、次の六段で Remote に切り替えます(挙動は公式 macOS ドキュメント準拠、バージョンアップ後はドキュメントを優先してください)。

  1. 遠隔 Gateway の健全性:CALMVPS ノードで openclaw gateway status を実行し、18789 が loopback で応答することを確認します。
  2. SSH 鍵認証:App の制御トンネルは BatchMode です。運用アカウントに鍵ログインを設定し、対話パスワードでトンネルが半起動する状態を避けます。
  3. Tailscale(任意):tailnet 内なら MagicDNS ホスト名で Gateway を指すほうが、tailnet IP の変更に強いです。
  4. App で Remote 選択:遠隔ホストを入力すると、App は ssh -N -L 18789:127.0.0.1:18789 形の制御トンネルを再利用または再構築し、ローカルで Gateway 子プロセスは起動しません。
  5. node host の起動:Remote では App が node host を立ち上げ、遠隔 Gateway が Canvas、Camera、Screen、system.run を呼べるようにします(Exec approvals は App 内ポリシーに従います)。
  6. CLI で突合:ローカルリポジトリ apps/macosswift run openclaw-mac connect --jsondiscover --timeout 3000 --json を実行し、App と同じ発見・握手経路で「トンネル問題」か「Gateway 設定問題」かを切り分けます。

macOS リモートアクセス(Direct ws/wss と実クライアント IP 報告):

https://docs.openclaw.ai/platforms/mac/remote

CONTROL_TUNNEL_MANUAL.SH
ssh -N -L 18789:127.0.0.1:18789 user@your-calmvps-node
curl -fsS http://127.0.0.1:18789/healthz
loopback 経由では node IP が 127.0.0.1 表示になる場合あり。実 IP が必要なら Direct ws/wss

05 18789 排障と技術パラメータ

双機構成では「接続できない」の多くはモデル供給元ではなく、制御トンネルとバージョン整合に集中します。引用しやすい固定値と現象別の対処を表にまとめます。

  • 既定 Gateway WebSocket ポート:18789。制御トンネルのローカル側も同番号を維持し、App は健全なトンネルを再利用します。
  • LaunchAgent ラベル:ai.openclaw.gatewayOPENCLAW_PROFILE 利用時は ai.openclaw.<profile>)。再起動は launchctl kickstart -k gui/$UID/ai.openclaw.gateway です。
  • Exec approvals:ローカル system.run 方針は ~/.openclaw/exec-approvals.json にあり、遠隔 Gateway 設定とは分離されています。ノード移行時にバックアップを忘れないでください。
Remote 双機の典型現象と第一対応
現象 優先確認 第一対応
App が Gateway 到達不可 SSH トンネル存続、18789 の占有 App トンネル再起動、遠隔で lsof -i :18789
healthz OK だが Channel オフライン Gateway と CLI/App のバージョン 両端 openclaw --version 揃え後 Gateway 再起動
node IP が常に 127.0.0.1 SSH トンネル経由か 想定内。実 IP が必要なら Direct ws/wss(remote 文書参照)
Canvas/カメラ無応答 node host 稼働、TCC 付与 Remote で node host 確認、権限チェックリストを再実行
Tailscale 発見失敗 MagicDNS、ホスト名変更 MagicDNS 名で再設定、tailnet IP の直書きを避ける

実務例として、ある iOS チームは Gateway と Discord/Telegram チャネルを CALMVPS シンガポールの M4 24GB 月次ノードに置き、ローカル MBP は Node として screen.record と Xcode 補助スクリプトのみを担当しました。ピーク時は並列リソースで週次 Worker を追加し、Gateway は据え置きのままチャネルセッションを維持しています。ローカル単機で全負荷を背負うより、夜間アラートが明らかに減った、との報告があります。

06 M4 階層・ストレージ・契約の一覧

双機ではリソースを役割単位で割り当てます。整机一台のスペックで決めないことがコスト最適化の要点です。

  • 遠隔 Gateway(CALMVPS):複数チャネルと Cron なら M4 24GB から。Hub やローカルモデル併用は M4 Pro。ディスクは 1TB で検証、2TB で本番が無難です。
  • ローカル Node Mac:TCC と UI ツールが中心で、16GB で足りることが多いです。ボトルネックは権限と回線品質に寄ります。
  • 並列リソース:一括バックフィルや並列ビルドは日次・週次の Worker に逃がし、Hub 階層を上げない方が総額で有利なことが多いです。
  • 契約の組み合わせ:Gateway は月次・四半期で算力を固定し、スパイクは日次・週次の並列で吸収する混合が、単一の高配備長期契約より安く収まるケースが多いです。

Gateway を個人ノートや家庭 NAS に置くと、長接続のジッター、睡眠、Token の混在監査が弱い、という弱点が残ります。純粋な Linux VPS だけでは macOS TCC と Apple ツールチェーンがなく、Remote 双機の「ローカル Node」は代替できません。安定した 18789 制御面、リージョン横断の裸金属、再現可能な排障が必要なチームには、CALMVPS のマルチリージョン ベアメタル Macが Gateway 宿主として適しています。Apple Silicon 専有、24×7 稼働、約 120 秒の提供開始、突発負荷は並列ノードで吸収できます。ノード一覧と料金は CALMVPS 料金ページでご確認ください。