2026年 OpenClaw ゲートウェイ零暴露:Tailscale と Cloudflare Tunnel
セキュリティ・運用 2026-04-01

2026年 OpenClaw ゲートウェイ零暴露:Tailscale Serve/Funnel と Cloudflare Tunnel(cloudflared)の比較+リモート Mac SSH の再現手順と FAQ

ヘッドレス Mac 上の OpenClaw 互換 HTTP ゲートウェイに届けるために、公網 IP やルータのポート転送は必須ではありません。2026 年の実務パターンは逆方向接続です。サービスは 127.0.0.1(またはプライベート IF)にバインドし、TLS と主体の判定は Tailscale か Cloudflare 側で終端します。本記事では Tailscale Serve・Tailscale Funnel・Cloudflare Tunnel(cloudflared)を比較し、コピペ可能なリモート Mac SSH 手順と FAQ マトリクスを整理します。

要点(TL;DR)

結論: クライアントがすべて tailnet 上にいるなら Tailscale Serve が最もアイデンティティ境界がきれいです。自ゾーンの安定した公開ホスト名が欲しく Mac を晒したくないなら Cloudflare Tunnel。Tailscale Funnel は、Tailscale 経由で意図的に公開 URL を出す場合のみ——ポリシーと可視性のトレードオフを理解したうえで選びます。

1. OpenClaw における「零暴露」の意味

OpenClaw 系ゲートウェイは HTTP サービスです。ここでの零暴露は運用定義であり、そのサービス用に Mac が WAN に開いたリスナを広告しないことです。接続は認証付きオーバーレイ(Tailscale)か、クラウド縁への外向きトンネル(Cloudflare)で成立します。認証済み利用者や Cloudflare の縁に対しては「露出」は残ります——目的は匿名のインターネット全体からのポートスキャンがデーモンに直撃しないことです。

ホスト側の doctor や環境変数の揃え方は、2026年 OpenClaw 大規模アップグレード実践:doctor・Plugin SDK・OPENCLAW_* 対照(リモート Mac SSH) と併せると再現性が上がります。本記事はトンネル終端にフォーカスします。

2. Tailscale Serve と Funnel の切り分け

Tailscale Serve はサービスを tailnet に公開し(tailnet 名向け HTTPS も扱える)、チーム端末がすでに Tailscale のときのデフォルト候補です。ACL と tailnet アイデンティティでアクセス制御が素直に書けます。

Tailscale Funnel は、選択した HTTPS ルートを Tailscale のインフラ経由で公網に出します。公開イングレスとして扱い、DNS 名・レート制限・アプリ側認証の強度を必ず見直してください。

3. Cloudflare Tunnel(cloudflared)を一段で

cloudflared は Mac から Cloudflare へ外向き接続を維持します。訪問者は縁に当たり、縁からトンネル、トンネルから localhost。住宅回線のポート開放なしで公開ホスト名・WAF・ボット対策・アクセスポリシーが使えます。トレードオフは Cloudflare の信頼圏と課金・運用に乗ること、デバッグは縁ログとローカルログの相関が必要なことです。

4. 意思決定マトリクス(2026)

観点 Tailscale Serve Tailscale Funnel Cloudflare Tunnel
誰が URL に届くか tailnet メンバー(ACL 制御) 公網(HTTPS) 公網(自ゾーンのホスト名)
ルータポート転送 不要 不要 不要
アイデンティティ Tailscale 主体+ACL 公網+アプリ認証(強く必須) Cloudflare Access/WAF+アプリ認証
向いている場面 スタッフ/端末がすでに Tailscale 短期デモ、Funnel 前提を許容 本番ホスト名、縁ポリシー、多リージョン

5. リモート Mac 前提(SSH)の再現チェックリスト

Serve/Funnel/cloudflared の前に、Mac 上(または SSH 越し)で次を確認します。

  1. リモートログイン(SSH)を「システム設定 → 一般 → 共有」で有効化。鍵認証を優先し、方針が許せば管理者のパスワード認証は無効化。
  2. ゲートウェイのリスン先:lsof -nP -iTCP -sTCP:LISTEN | grep LISTEN で OpenClaw の HTTP ポートが 127.0.0.1 または LAN のみか確認し、WAN 向け 0.0.0.0 になっていないか見る。
  3. ファイアウォール:SSH は管理元からのみ。アプリポートはトンネルが受けるなら穴を開けない。
  4. 永続化:launchd の plist や任意のプロセス管理で、再起動後もトンネルが立ち上がるようにする。

5.1 SSH の最低限の健全性確認

  • ssh -G user@host | egrep '^(user|hostname|port|identityfile)' — 意図したエイリアスに当たっているか。
  • 別の tailnet 端末から curl -fsS http://100.x.y.z:PORT/health(運用のヘルスパスに置換)。

6. 経路 A — Tailscale Serve(tailnet のみ)

Mac に Tailscale を入れノード認証後、Serve で tailnet 上の HTTPS をローカルゲートウェイへリバースプロキシします。CLI フラグは更新されるため、最新ドキュメントの tailscale serve に従ってください。概念としては tailnet DNS 名を http://127.0.0.1:<gateway-port> にマップします。

7. 経路 B — Tailscale Funnel(公網 HTTPS)

組織が公網イングレスを許可している場合のみ有効化。ノードで Funnel を有効にし、HTTPS フロントを定義して同じローカル上流を指します。縁が公網に届くため、API キー・OAuth・コンポーネント間 mTLS などアプリ層の認証を必ず重ねてください。

8. 経路 C — Cloudflare Tunnel の短い流れ

  1. Cloudflare Zero Trust でトンネル作成、Mac に cloudflared をインストール。
  2. トークンまたは資格情報でコネクタを起動し、ダッシュボードでヘルスを確認。
  3. 公開ホスト名を http://localhost:GATEWAY_PORT にルーティング(ローカルで TLS する構成は稀。通常は Cloudflare で終端)。
  4. 上流に届く前に Access ポリシーや WAF を挟む。

9. FAQ — 症状 → 疑い → 次の一手

症状 疑い 対処
Cloudflare 縁から 502 ローカルサービス停止、またはトンネル設定のポート誤り Mac で curl -v http://127.0.0.1:PORT;plist/コマンド修正後 cloudflared を再起動
Tailscale Serve で証明書エラー ホスト名不一致、古い serve 設定 正しいサービス名で serve を再実行。ドキュメントに従い TLS 状態をリセット
Funnel が一度通ってから 403 ACL または Funnel ポリシー変更 tailnet ACL JSON、ノードタグ、管理監査ログを確認
SSH は通るがトンネルが張れない 外向きフィルタや DNS Mac から dig とベンダー HTTPS への到達をテスト

Mac mini でトンネルを終端する理由

オーバーレイトンネルとローカル HTTP ゲートウェイは、数週間人手なしで動かす前提の部品です。Apple Silicon の Mac mini は待機電力が非常に低く、無音で、長寿命な launchd ジョブに向いた macOS の安定性があります。同じ筐体で SSH のネイティブ Unix シェル、Homebrew 等による cloudflared 導入、Gatekeeper・SIP・FileVault によるプラットフォーム防御が揃い、常時稼働 Windows 機に比べマルウェア面の攻撃面が小さくなりやすい、というのが実務的なメリットです。

クローゼットに置いて軽い自動化負荷でサーマルスロットリングを避けたいなら、Mac mini M4 はコスト対効果の高いアンカーの一つです。下のボタンからプランをホームで確認できます。

専用メタルで OpenClaw を運用

Mac mini M4 低消費電力・常時稼働向け

Gatekeeper & SIP Apple Silicon SSH ネイティブ
始める
SSHMac でプランを見る
ホームへ