OpenClawのGatewayがカナダのリモートMac mini M4にだけ載っている一方で、APACのメンバーがiPhone・iPad・Androidをノード(role: node)として参加させたいとき、論点は「アプリが入るか」ではなく、端末のWebSocketが常時稼働ホスト上の準拠したwss://エンドポイントへ届くか、そして運用者がgateway.mode: "remote"とCLI承認を揃えているかです。本稿は2026年向けのGateway主導ノードペアリングRunbookです。macOSメニューバー・Dashboard・18789のSSH/Tailnet配線は2026年、OpenClawのGatewayをカナダの遠隔Mac M4だけに置く:macOSクライアントRemote over SSH/Tailnet、Dashboardと18789のつなぎ方──跨洋チームのtoken、loopback束ねとLaunchAgent常駐(手順+対照表+FAQ)が担当し、本稿はスマホを配線する位置づけです。Gateway未導入なら先にOpenClaw 2026:リモートMacでの導入・デプロイと排障 — openclaw onboard、Gatewayデーモン、カナダM4の中〜上位リソース設計を完了してください。
1. カナダM4をモバイルノードの唯一Gatewayにする理由
OpenClawのリモートモデルでは、意図的にプロファイルを分けない限り各ホストにGatewayプロセスは1つが原則です。Gatewayがセッション・Channels・認証・エージェント状態を握り、iOS/AndroidアプリはGatewayをホストしません——Gateway WebSocketに周辺ノードとして接続し、node.* RPCを交換します。カナダで借りたMac mini M4は「常時オンライン」役に合います。ノートはスリープしても、Telegram/Slack Channelsとペアリングキューは止めたくない、という現場が多いからです。スマホはカメラ・センサー・現場操作を提供し、M4は継続性を提供します。
跨太平洋チームで多い失敗は、APACのノートに第2 Gatewayを立てることです。トークンが割れ、ペアリング要求が別ホストで期限切れになり、openclaw nodes pendingが空に見えたまま端末が回り続けます。是正はカナダGateway 1本+全CLI/ノードをremote向けで、APACメンバーはSSHまたはtailnetでホストを操作するだけにすることです。
2. 2026年のGateway主導ペアリング(何が変わったか)
gateway-owned pairing以降、Gatewayが参加許可の単一の真実源です。流れは:ノードがWebSocket接続 → Gatewayがpendingを保存しnode.pair.requestedを発火 → 運用者がopenclaw nodes approve <requestId>(または同等UI) → Gatewayがトークン発行 → ノードがペア済みで再接続。pendingは5分で失効するため、古いQRやセットアップコードを追わず再生成します。
2026.3.31以降、ノードコマンドはnode pairing承認まで無効のままです——デバイスペアリングだけでは、宣言したnodeコマンドは露出しません。openclaw devices approveとopenclaw nodes approveは関連するが別ゲートとして扱ってください。デバイス一覧に載ってもnode RPCが1008: pairing requiredなら、nodeストアが未承認です。スキャン後にopenclaw nodes pendingが空のままなら、WebSocketペアリング状態をnodeストアへ書くビルド(2026.2.28+の修正群)へ上げてからネットワーク切り分けに入ります。
プロトコル上、運用者はnode.pair.list・node.pair.approve・node.pair.rejectをCLIラッパ経由で触ります。UIは同じGateway真実の薄いクライアントです。監査ではカナダホストのペアリングログが正であり、「最後にアプリを開いたノート」ではありません。
3. gateway.mode remoteとクレデンシャル優先順位
カナダホストではGatewayを127.0.0.1:18789で待ち受け(ビルド既定をチームで1ポートに固定)。APAC運用ノートではgateway.mode: "remote"とし、openclaw health・openclaw nodes pending・approveが空のローカル18789ではなくカナダへ向くようにします。
公式リモート指針:Gatewayがloopbackのみのときはgateway.remote.urlをws://127.0.0.1:18789のままにし、CLIの前にSSHローカルフォワードを張る。tailnet直結ならtransport: "direct"とプライベートws://またはwss:// URL。重要:--urlは設定トークンを暗黙継承しない——URL上書き時は--tokenまたは--passwordを明示します。経路の深掘りはOpenClaw 2026:カナダのリモートMac M4でSSHトンネルと直結ゲートウェイのどちらを選ぶ?gateway.remote.token・18789・PATH/launchdの手順と排障対照を参照してください。
{
gateway: {
mode: "remote",
remote: {
url: "ws://127.0.0.1:18789",
token: "<gateway-token>",
sshTarget: "ca-m4-gateway",
},
},
}
{
gateway: {
mode: "remote",
remote: {
transport: "direct",
url: "wss://ca-m4.your-tailnet.ts.net",
token: "<gateway-token>",
},
},
}
| クレデンシャル源 | 優先度 | 典型ミス |
|---|---|---|
CLI --token / --password |
指定時は最優先 | --urlだけで設定トークンが効くと思う |
OPENCLAW_GATEWAY_TOKEN 環境変数 |
シェル単位でファイルを上書き | LaunchAgentとSSHセッションでenvが不一致 |
設定のgateway.remote.token |
remoteモードの既定 | ホスト側だけローテーションし端末が古いまま |
| macOSアプリ「Remote」プロファイル | UI別ストア | CLIは緑だがアプリだけ旧トークン |
4. ペアリングRunbook:loopback緑からnodes approveまで
GatewayがカナダM4でlaunchd管理済みと仮定します。以下が失敗する段階で、公開平文ws:// IPへスマホを向けないでください。
ステップ1 — Gatewayホストでloopbackヘルス
カナダMacへSSHし、待ち受けとヘルスを確認:
curl -fsS "http://127.0.0.1:18789/health" && echo OK lsof -nP -iTCP:18789 -sTCP:LISTEN
ステップ2 — スマホ向けセキュアWebSocket入口
越境モバイルペアリングではiOS/Androidが平文ws://をフェイルクローズします。GatewayをloopbackのままTailscale Serveでwss://<magicdns>を公開するのが第一候補(企業向けは信頼チェーン付きリバースプロキシ)。オフィスLANデバッグのみws://可;跨洋の公衆インターネット上の端末は不可。
ステップ3 — QR/セットアップコードとpending
openclaw qr openclaw qr --remote openclaw nodes pending openclaw nodes approve <requestId> openclaw nodes status
スキャン後、承認前にpending行が見えることを確認。深夜の委託先が未知フィンガープリントを承認しないよう、チケットIDと紐づけて記録します。
ステップ4 — node RPCのスモーク
Gateway側から最小のnode.*呼び出し、またはnodeツールを要するChannelsワークフローを1本。太平洋RTTが高いだけでは失敗ではありません。頻繁切断ならtailnet経路・MTU・端末の省電力を疑い、いきなりアプリ再インストールに走らないでください。
5. セキュア入口の意思決定マトリクス(スマホ vs 運用者)
スマホにSSHトンネルはありません。運用者にはあります。Runbookで経路を分けて書きます。
| 入口種別 | スマホのプロトコル | 典型用途 | リスク |
|---|---|---|---|
LAN ws://192.168.x.x:18789 |
平文ws(私有LAN) | オフィスWi‑Fiデバッグ | 跨洋公衆インターネット向け不可 |
Tailscale Serve wss://*.ts.net |
wss+tailnet ID | APAC端末+カナダGateway | 入社ごとのACL見直し;ホスト信頼 |
| 社内CA/プロキシ wss | wss+bearer token | 証明書ピン留めポリシー | iOSは信頼CAまたはpin設定が必要 |
公開IP ws:// |
リモートペアリング拒否 | — | 設計上フェイルクローズ;18789生公開禁止 |
-L、tailnetブックマーク)はカナダ単一GatewayのSSH/Tailnet手順の領域です。本稿はスマホのwssペアリングとnodes approveです——モバイルチケットに「先にDashboardを開く」という受け入れ順を流用しないでください。
6. 跨洋SSH:tailnet未参加の端末でも運用者がapproveする
委託先のスマホがTailscaleに入れない場合でも、端末にはwss://(Serveまたは社内プロキシ)が必要です。SSHは運用者がトンネル後にloopbackでapproveするためのもので、スマホのTLS経路の代替にはなりません。
ssh -N -L 18789:127.0.0.1:18789 user@ca-m4-host # 別ターミナル:remote設定は ws://127.0.0.1:18789 openclaw health --token "<gateway-token>" openclaw nodes pending openclaw nodes approve <requestId>
24/7トンネルは運用MacのLaunchAgentにssh -Nを載せ、gateway.remote.tokenは設定ファイルに置きます。カナダホストはGatewayをloopbackのみのまま維持します。
| 役割 | 推奨経路 | ペアリングコマンド | 失敗時の確認 |
|---|---|---|---|
| カナダM4(Gateway) | loopback+launchd | openclaw qr、nodes pending |
lsof -i :18789、Gatewayログ |
| APAC運用Mac | SSH -L+remote |
nodes approve、doctor |
トンネル生存?トークン明示? |
| iOS / Android | tailnetまたはServeのwss:// |
アプリスキャン、オンラインバッジ | 公開ws誤用、証明書信頼 |
7. M4キャパシティ:Gateway 1台に複数スマホノード
カナダの24 GB / 512 GB M4は、Channelsとワークスペーススナップショットを抑えればGateway 1本+複数ペア済みノードを余裕で載せます。1 TB / 2 TBはログ保持・チャネルメディア・エクスポートがAPFSを圧迫するときに検討。第2台のリースはGatewayプロファイル分離(本番/ステージングノード)が必要なときに正当化され、スマホ3台が1プロセスを押し潰すわけではありません——ノードはセッションとクォータを共有します。
承認端末はCMDBにタグを付け、所有者なしのペアリングはタイムゾーンをまたぐと監査不能になります。
8. openclaw doctorチケット・プレイブック
openclaw doctor(利用可能なら--lint / --deep)をチケットの単一スナップショットにします。GatewayホストのSSHセッションと、トンネル越しremote CLIの両方で実行し差分を取ります。doctorは緑だがスマホがpendingのままなら、nodes approve未実施か、端末が別wssホストを向いています。doctorの認証エラーはローカル/remoteフォールバックのトークン面が混線しています。
推奨チケット項目
UTC時刻、openclaw --version、Gateway health curl、マスク済みopenclaw nodes pending / nodes status、端末エラー(secure endpoint required?)、Serve/SSHのみ/tailnet直結のどれか。
症状 → 処置ツリー
A. 端末がsecure endpoint required → wss://を構成(まずTailscale Serve);公開IPの平文wsをやめる。
B. pending空だが端末が回転 → QR期限切れ、誤Gateway、または2026.2.28未満のWSペアリング不具合(深掘り前にアップグレード)。
C. CLI connection refused → カナダloopback、続いてノートでSSH転送中のlsof -i :18789。
D. 承認直後に切断 → tailnet ACL、端末省電力、Gateway OOM;再起動前にバージョンを記録。
openclaw doctor openclaw doctor --lint openclaw gateway status openclaw nodes pending openclaw nodes status curl -fsS "http://127.0.0.1:18789/health" || true
9. 事例:APACオンコール端末がカナダ自動化を起動
シンガポールのオンコールエンジニアがiPhoneノードをwss://ca-m4.team.ts.net経由でカナダGatewayにペアリング。SlackスラッシュがChannels経由でnode.* RPCのカメラスナップショットを要求し、GatewayがM4上でオーケストレーション、端末がセンサー経路を提供。レイテンシは太平洋脚が支配的ですが、MacBookがスリープしてもGatewayは維持されます。承認はチケットID付きでログ化し、トークンは四半期ローテーションでチャットに秘密を再投稿しません。
Channelsがカナダで既に緑でもnodes approveが未完了だと、Slack配信は成功しnodeツールだけがペアリングエラー——nodes statusとチャネルヘルスを同一チケットに載せたdoctorスナップショットが切り分けを速めます。
10. FAQ
iOS/AndroidはGatewayをホストできるか?
いいえ。モバイルはノードのみ。意図的なプロファイル分離がない限りカナダM4を正規Gatewayにしてください。
リモートのスマホペアリングでwssが必須なのはなぜか?
越境ペアリングは平文ws://をフェイルクローズし、資格情報とデバイスフィンガープリントを守ります。LANと文書化されたシミュレータ例外は上流ドキュメントを参照。
gateway.mode remoteはカナダホスト自体を変えるか?
remoteはクライアント設定です。カナダMacは引き続きローカルGatewayを動かします。M4自身の設定をremote loopbackへ向けないでください。
スマホにTailscaleなし、SSHトンネルのみ?
端末には到達可能なwss://(通常Tailscale Serveまたは社内プロキシ)が依然必要です。SSHは運用者CLIとapprove用で、ハンドセットのTLS代替にはなりません。
openclaw qrとopenclaw qr --remoteの違いは?
--remoteはリモートGateway URL向けのセットアップをエンコードします——トンネルまたはtailnet到達可能な運用マシンで使い、QRがノートのloopbackを指すミスを防ぎます。
複数スマホがGatewayを「奪い合う」か?
1 Gatewayプロセスとクォータを共有するだけで、デーモンは増えません。デバイスにラベルを付け承認監査を残してください。
ペアリング成功後にnodeツールだけタイムアウト?
WebSocket生存と遅いRPCは別問題です。アプリ再インストール前にGateway CPU・ディスク・チャネルキューを確認。
SSH越しdoctorは緑だが端末だけ失敗?
doctorはトンネル経路を検証しても、端末は別wssホスト名や期限切れQRの可能性があります。Serve設定と端末wss URLを揃え、スキャン後にnodes pendingを再確認してください。