役割分担の一般的形はこうです。OpenClawゲートウェイは専用macOSホスト——多くの場合レンタルしたクラウドMac mini——で常駐し、エンジニアはノートやCIからopenclawを叩く。SSHポートフォワードはゲートウェイを公網に晒さず橋を架けます。ローカルCLIは127.0.0.1へ話しかけ、OpenSSHがそのソケットをリモート側ループバックのデーモンへ写します。本稿はトンネルパターン、遅延予算、ヘルスプローブ、macOSプライバシーとの交点をまとめます。ゲートウェイのオンボーディングとTCCと併読し、ゲートウェイのヘルスモニタリングで合成チェックが人より先に赤くなるようにしてください。
ポート開放よりトンネルを選ぶ理由
0.0.0.0バインドはポートスキャンと誤設定ファイアウォールを招きやすいです。ループバック+SSHは鍵認証という既存の認可、sshd由来のレート制御、コンプライアンス向けのジャンプホストを再利用できます。WebSocket主体のゲートウェイでは、ロードバランサの待機タイムアウトがトンネルを誤って切らないか確認してください。多くの障害はCLI側では「謎の切断」に見えます。
CIではシークレットをランナー環境に閉じ込められます。短命SSH鍵を注入し、トンネルステップを挟んでopenclaw doctor、最後にすべて破棄。Runbook末尾にリモートポートの正確な値を書き、18789とカスタム値をアップグレード後に取り違えないようにします。
TailscaleやZeroTierが許可されていればSSHを省略できますが、その場合も誰がゲートウェイIPに届くかを絞り込んでください。SIEMに既にあるSSH監査ログを活かせる点はトンネルの魅力です。
SSHローカルフォワードのレシピ
ゲートウェイがリモートMacの127.0.0.1:18789で待つとします。ノートから:
ssh -N -L 18789:127.0.0.1:18789 user@cloud-mac.example
続けてOPENCLAW_GATEWAY_URL(使用中バージョンのフラグ)をws://127.0.0.1:18789へ。徹夜ジョブ向けに-o ServerAliveInterval=30を足し、NAT中間装置が長寿命フォワードを黙って落とさないようにします。
Windows/Linux開発者も同じ転送が使えます。肝はトンネル内でもWebSocketアップグレードヘッダが一貫することです。企業プロキシがWebSocketを壊す場合は、bastionへProxyCommandで抜けてからMacへ。Wikiにはフルコマンドラインを貼り、断片だけを共有しないでください。
クライアント側のsystemdユーザユニットやmacOS LaunchAgentでトンネルを長時間維持し、指数バックオフ付きのautossh類でsshdを殴らない再接続をログに残します。再接続ログにはゲートウェイのバージョン文字列を含め、サポートがリリースと相関できます。
遅延とSLO表
| 経路 | 典型的p95 RTT | 運用メモ |
|---|---|---|
| 同一メトロのクラウドリージョン | 20〜60ms | 多くのCLI操作はネイティブに近い。 |
| リージョン横断SSH | 120〜220ms | ツール呼び出しタイムアウトの再調整が必要になることがある。 |
| ホテルWi‑Fi+VPN | 250ms以上 | エージェントのリトライを想定し、ハートビートを広げる。 |
ヘルス監視記事の合成プローブと揃え、p95が250msを5分超えたらSlackが埋まる前にページングしてください。LLMプロバイダへのトークンストリーミングは別レイヤーの遅延を足します。ダッシュボードにはゲートウェイpingとモデル端点の両方を載せ、SSHを追いかけている間に本当はAPIルーティングが詰まっているミスを防ぎます。
負荷試験ではLinuxジャンプホストにtc netemで人工遅延を載せ、プラグインに隠れた2秒sleepを炙り出してください。静的マーケチームは滅多にやりませんが、エージェントチームはやる価値があります。
レンタルmini上の運用
レンタルMac miniは社内ノートよりディスク再初期化が頻繁です。アップグレード前にスナップショット、~/.openclawのエクスポート、LaunchAgent plistの版管理を習慣化。二人で一台を共有するならSSH鍵とトンネルポートに名前空間を付け、午後のデモと夜間CIが衝突しないようにします。
週30〜45分の対話VNCを確保し、SSHだけでは出ないTCCダイアログを処理——特にmacOSマイナー更新直後。短いバーストレンタルは1日あたりおよそ$16.9で、アクセシビリティ権限が静かに失効してデモを落とす損失より安いことが多いです。APIキー輪番はホスト全体を再起動せずゲートウェイジョブだけ再起動で済ませ、外向きWebSocketがプロバイダ側で塞がれていないかエグレステストもセットで。
可観測性:クライアント側launchd/systemdでSSHを包むならトンネル稼働メトリクスを送り、再接続ループだけをアラートにします。災害復旧:状態ディレクトリをクライアント側暗号化で夜間 tarball、四半期ごとに使い捨てminiでリストア演習。バージョンスキューはnpmグローバルCLIが上がりLaunchAgentがゲートウェイを釘付けにしているパターンが典型です。トンネル後にopenclaw doctorで揃うまで繰り返し、WebSocketクローズコードの謎を減らします。
シークレット衛生:ジャンプボックスのシェル履歴にプロバイダ鍵をexportしない。短命環境注入かボールトサイドカーを使い、ゲートウェイが平文HTTPならSSHがアプリ層を暗号化しても足りないのでTLS終端を正しく置くかstunnelを検討します。オンコール教育では「トンネル断」と「ゲートウェイ不健康」を切り分け、TCP接続が即死する前者とソケットは生きているがヘルスが赤い後者でランブックを分けます。
ドキュメント成果物として、ノート→bastion→クラウドmini→ゲートウェイ→モデルプロバイダの1枚図にポート番号とTLS境界を色分けしてください。新入社員が初日に同じトンネルコマンドを再現できることが成功基準です。リリース前チェックリスト:捨てAPIキーでトンネル経由CLIを一周し、ストリーミングトークンが届くこと、SonomaとSequoiaでファイルシステムサンドボックスパスが解けることを確認し、監査向けに成功ハンドシェイクのスクリーンショットをリリースノートへ添付します。
FAQ
SSHトンネルを使うとき、ゲートウェイは0.0.0.0で待ち受けるべきですか?
リモート側はループバック推奨でSSH経由にし、ポリシーが明示しない限り公開インターフェースへポートを出さないでください。
トンネル越しにどれくらいの遅延が許容ですか?
対話用途はp95でおよそ150〜250msを超えると劣化を感じやすいです。本番と同じプローブで測ってください。
クラウドMacでもmacOSのTCCは効きますか?
はい。ゲートウェイが動くマシンでプロンプトを完了させ、多くの場合VNCとオンボーディング文書が必要です。
Mac mini(Appleシリコン)は常時OpenClawゲートウェイに向く静かで低消費電力の箱です。MacHTMLはSSH/VNC付きの実機レンタルで、トンネル+ゲートウェイ構成をハード購入なしでリハーサルできます。
クラウドMac mini上のOpenClawゲートウェイ
Mac mini時間を借りてSSHトンネル、ヘルスプローブ、doctor診断を実macOSで練習。