ブログ
接続モード解説:ローカルネットワーク vs. Cloudflare Tunnel
Tactic Remote は2つの接続モードをサポート:同一 Wi-Fi 上で100ms未満のレイテンシを実現するローカルネットワークモードと、どこからでも安全にアクセスできる Cloudflare Tunnel モード。それぞれの仕組みと使い分けを解説します。
このカテゴリのプロダクト/開発アップデートを確認できます。
カテゴリを見るTactic Remote の新規ユーザーから最もよく聞かれる質問の一つが「ローカルネットワークモードと Cloudflare Tunnel、どちらを使うべきですか?」というものです。答えは、あなたの作業スタイルと作業場所によって異なります。この記事では、両モードを詳しく解説します — アーキテクチャの違い、パフォーマンスとセキュリティの特性、そして Tactic Remote がモード間の切り替えをどのように処理するかを説明します。
2つのモード、1つのインターフェース
技術的な詳細に入る前に、最も重要なポイントを:どちらの接続モードを使用しても、iPhone アプリの動作は完全に同一です。セッション管理、ターミナルストリーミング、承認ワークフロー、プッシュ通知 — これらすべては、iPhone が Mac と同じ Wi-Fi にいても、国の反対側でセルラーネットワークを使っていても、同じように機能します。
接続モードは、iPhone が Companion アプリの API にどのように到達するかにのみ影響します。トランスポート層より上のすべてが同一です。
ローカルネットワークモード
ローカルネットワークモードはデフォルトで最もシンプルな構成です。Mac の Companion アプリが HTTP/WebSocket サーバーをローカルネットワークのポートにバインドし、iPhone がその IP アドレスとポートに直接接続します。
仕組み
- Companion アプリがポート 48736(設定変更可能)で組み込みサーバーを起動。
- Mac がローカル IP アドレスをアドバタイズ(例:
192.168.1.42:48736)。 - iPhone がローカル Wi-Fi ネットワーク経由でそのアドレスに接続。
- すべての通信がローカルネットワーク上で2台のデバイス間を直接行き来 — 仲介者なし。
パフォーマンス
ローカルネットワークモードは、パケットが最短経路を通るため、最も低いレイテンシを実現します:iPhone からルーターへ、そして Mac へ(一部のネットワーク構成では Wi-Fi Direct による直接接続の場合も)。
| 指標 | 一般的な範囲 |
|---|---|
| 接続確立 | 30-80ms |
| ターミナル更新レイテンシ | 40-100ms |
| 承認の往復時間 | 60-120ms |
| WebSocket ping | 5-20ms |
| 短時間の切断後の再接続 | 0.5-1.5s |
これらの数値は、標準的な家庭またはオフィスの Wi-Fi ネットワークを前提としています。混雑したネットワーク(カンファレンスの Wi-Fi など)ではレイテンシが高くなることがありますが、同じネットワーク上であればローカルネットワークモードは常にトンネル接続より優れたパフォーマンスを発揮します。
セキュリティプロファイル
ローカルネットワークモードのセキュリティは2つの層に依存しています:
ネットワーク分離。 ローカルネットワークが境界として機能します。同じネットワーク上のデバイスのみが Companion アプリのポートに到達できます。ほとんどの家庭やオフィス環境ではこれで十分です。
Token 認証。 すべての API リクエストに Bearer Token が必要です。攻撃者がローカルネットワーク上にいても、Token がなければ Companion アプリとやり取りすることはできません。
ローカルネットワークモードが防御できないもの:ネットワーク上の侵害されたデバイスが何らかの方法で Token を取得したケース。ローカルネットワークを信頼できない環境(コワーキングスペース、ホテル Wi-Fi)では、Cloudflare Tunnel モードを推奨します。
制限事項
- 同一ネットワークが必要。 iPhone と Mac が同じ Wi-Fi ネットワーク(または同じ LAN 内で到達可能)でなければなりません。自宅ネットワークを離れた瞬間に接続が切断されます。
- IP アドレスの変化。 Mac のローカル IP が変化した場合(DHCP リース更新、Wi-Fi 再接続)、iPhone の接続設定を更新する必要があります。QR コードの再スキャンで軽減できますが、手動の操作が必要です。
- セルラーからのアクセス不可。 セルラーデータは自宅ネットワークにルーティングされないため、アクセスできません。
Cloudflare Tunnel モード
Cloudflare Tunnel モードは、Mac から Cloudflare のグローバルエッジネットワークへの永続的なアウトバウンド接続を作成します。iPhone は Cloudflare の URL に接続し、Cloudflare がトラフィックをトンネル経由で Mac にルーティングします。
仕組み
- Companion アプリがトンネル認証情報を使用して
cloudflaredをマネージド子プロセスとして起動。 cloudflaredが最寄りの Cloudflare エッジサーバーへのアウトバウンド接続を確立(冗長性のため通常2-4の同時接続)。- トンネルは設定した URL(例:
claude.yourdomain.com)で到達可能に。 - iPhone がその URL に接続。Cloudflare がリクエストをネットワーク経由で Mac 上の
cloudflaredプロセスにルーティング。 cloudflaredがリクエストを Companion アプリのローカルサーバーに転送。
重要なアーキテクチャ上の特性:Mac はインターネットからのインバウンド接続を一切受け付けません。トンネルはアウトバウンド専用であるため、ポートを開ける必要もファイアウォールルールも不要で、ポートスキャンに晒されることもありません。
パフォーマンス
Cloudflare Tunnel はトラフィックが Cloudflare のエッジネットワークを経由するため、体感できるレイテンシが追加されます:
| 指標 | 一般的な範囲 |
|---|---|
| 接続確立 | 150-300ms |
| ターミナル更新レイテンシ | 100-250ms |
| 承認の往復時間 | 200-400ms |
| WebSocket ping | 40-120ms |
| 短時間の切断後の再接続 | 2-4s |
レイテンシは、最寄りの Cloudflare エッジサーバーまでの地理的距離によって変動します。Cloudflare は世界300以上の都市で運営されているため、都市部のほとんどのユーザーはこれらの範囲の下限に近いレイテンシを体験します。Cloudflare の接続拠点が少ない地域では、より高いレイテンシが発生する可能性があります。
実際の使用では、このレイテンシは使い始めの数分間は気になりますが、すぐに慣れます。ターミナル出力は引き続きスムーズにスクロールし、承認のやり取りも十分にレスポンシブで、ほとんどのユーザーは通知から15秒以内に対応しています。
セキュリティプロファイル
Cloudflare Tunnel は、いくつかの点でローカルネットワークモードより強力なセキュリティ態勢を提供します:
インバウンドの攻撃対象面がない。 Mac はインターネット接続をリッスンしません。ポートスキャンの対象も、ブルートフォース攻撃の対象もありません。
TLS 暗号化。 iPhone と Cloudflare 間、および Cloudflare と Mac 間のすべてのトラフィックが TLS で暗号化されます。Tactic Remote の Token 認証と組み合わせて、2つの独立したセキュリティ層を提供します。
Cloudflare の DDoS およびボット対策 がデフォルトでトンネルエンドポイントに適用され、自動化攻撃に対する追加の保護を提供します。
トレードオフ:トラフィックが Cloudflare のネットワークを経由します。暗号化されていますが、Cloudflare が信頼された仲介者となることを意味します。ほとんどの個人開発者にとって、利便性を考えれば許容できるトレードオフです。機密性の高い環境については、セキュリティとネットワークハードニング ガイドで追加の対策をご確認ください。
制限事項
- Cloudflare アカウントが必要。 無料の Cloudflare アカウントと、Cloudflare で管理されたドメインが必要です。トンネル自体は無料ですが、初期の DNS 設定に数分かかります。
- Cloudflare の可用性に依存。 Cloudflare に障害が発生した場合、トンネルモードでのアクセスは利用不可になります。これはまれなことですが(Cloudflare の稼働実績は優秀です)、留意すべき点です。
- ローカルモードより高いレイテンシ。 上記の通り、すべてのインタラクションでローカルネットワークモードと比較して50-200msが追加されます。
QR コード接続フロー
両モードとも初期ペアリングに同じ QR コードフローを使用しますが、QR コードの内容は異なります:
ローカルネットワーク QR コード のエンコード内容:http://<local-ip>:<port> と認証 Token。
Cloudflare Tunnel QR コード のエンコード内容:https://<your-tunnel-domain> と認証 Token。
iPhone アプリは URL スキームとネットワーク特性に基づいて接続モードを自動検出します。QR コードにローカル IP アドレスが含まれていればローカルネットワークモードに設定し、HTTPS ドメインが含まれていれば Cloudflare Tunnel モードに設定します。
モードを切り替えるには、Companion アプリのメニューバードロップダウンから新しい QR コードを生成し、iPhone でスキャンします。アプリは前の接続設定を置き換えます。モード切り替え全体が10秒以内で完了します。
横並び比較
| 要素 | ローカルネットワーク | Cloudflare Tunnel |
|---|---|---|
| セットアップの複雑さ | 最小限(自動) | 中程度(5-10分) |
| レイテンシ | 40-100ms | 100-250ms |
| ネットワーク外からの利用 | 不可 | 可 |
| Cloudflare アカウントの要否 | 不要 | 必要 |
| インバウンドポートの要否 | なし(LAN のみ) | なし |
| サードパーティへの信頼 | なし | Cloudflare |
| コスト | 無料 | 無料(Cloudflare 無料プラン) |
| 再接続速度 | 0.5-1.5s | 2-4s |
| 最適な用途 | 自宅/オフィスでのデスクワーク | 通勤、出張、リモート |
推奨される使用パターン
ローカルネットワークモードを使う場面: デスクにいるとき、または Mac と同じネットワーク上にいるとき。低レイテンシによりターミナルストリーミングが体感できるほどスムーズになり、サードパーティへの依存もありません。
Cloudflare Tunnel モードを使う場面: ローカルネットワーク外からアクセスする必要があるとき — 通勤中、旅行中、別の場所で作業中、または自宅でタスクを開始してオフィスで監視したいとき。
両方を使う: Mac で Cloudflare Tunnel を設定しておき、自宅ではローカルネットワークモードで接続。Companion アプリは両モードを同時にサービスできます。iPhone に両方の接続プロファイルを保存でき、アプリの接続設定でワンタップで切り替えられます。
多くのユーザーは Cloudflare Tunnel を保険として一度設定し、普段はローカルネットワークモードを使用しています。外出時にトンネルプロファイルに切り替えます。これにより、可能なときは最低レイテンシを、必要なときはリモートアクセスを得られます。
今後の予定
iPhone が Mac と同じネットワーク上にあることを検出してローカルルーティングし、離れたときに Cloudflare Tunnel にフォールバックする、自動モード選択機能を検討しています。これにより手動でのモード切り替えが完全に不要になります。初期テストでは iOS 上でのネットワーク検出は信頼性がありますが、VPN やスプリットトンネル構成に関するエッジケースはまだ対応が必要です。
セットアップ手順については、ローカルネットワークモードは はじめに、リモートアクセス設定は Cloudflare Tunnel セットアップ をご覧ください。
Tactic Remote を試す
スマートフォンからコーディングエージェントを操作
Mac、Windows、Linux 上の Claude Code や Codex などに接続。iPhone や iPad で進捗を確認し、次の指示を送れます。