このiOS VPNガイドでは、何も設定していない状態から始めます。まずサブスクリプションとクライアントの互換性を確認し、経路を追加してシステム構成を許可し、最後に出口アドレス、DNS、ルール分岐の結果を確認します。初めからすべてのプロトコルを理解する必要はありませんが、「サブスクリプションURL」「ノード」「システムVPN構成」の違いは把握しておきましょう。
クライアント・サブスクリプション・システム構成の違い
サブスクリプションサービスは経路情報を提供し、クライアントはその情報を読み込んでルールに従って通信を転送し、iOSはクライアントによるNetwork Extensionの作成を許可します。3つすべてが必要です。サブスクリプションURLを「設定」の標準VPN画面に直接貼り付けても、通常は利用できません。Shadowsocks、VMess、Trojan、VLESS、Hysteria2、TUICは、標準設定画面で直接解析できる汎用サブスクリプション形式ではないためです。
標準VPN画面が受け付けるのは、主にシステムが対応する標準構成パラメータです。プロキシのサブスクリプションは、対応するクライアントで解析する必要があります。クライアントへの追加に成功すると、サブスクリプション内の複数の経路がノード一覧に整理され、クライアントが管理するシステムVPN構成が作成されます。
| 項目 | 役割 | よくある誤解 |
|---|---|---|
| サブスクリプションURL | クライアントに経路、プロトコル、更新情報を提供する | 通常のWebページとしてブラウザで開く |
| プロキシクライアント | サブスクリプションを解析し、ノードを選択してルール分岐を実行する | クライアントだけをインストールし、利用可能なサブスクリプションを追加していない |
| システムVPN構成 | 転送が必要なネットワーク通信をクライアントに処理させる | VPNマークが表示されたため、すべてのアクセスが正常だと判断する |
| ルール分岐 | どのリクエストを直接接続し、どれをプロキシ経路に通すかを決める | ルールモードで1つのサイトだけを確認し、すべての通信経路を判断する |
クライアント入手前に互換性を確認する
iOSクライアントは、名称、配信地域、機能範囲が変わる場合があります。選ぶ際は名前の似ているかどうかではなく、機能説明を確認してください。少なくとも、サブスクリプションの更新、ノード選択、ルール分岐、ログ確認、現在のサブスクリプションで使われているプロトコルへの対応を確認します。サービスページに推奨クライアントが記載されている場合は、そこで示された対応範囲を基準にしてください。
クライアントはシステムのApp Storeから入手し、開発者情報、更新履歴、プライバシー説明を確認してください。地域によってストアに表示されるアプリが異なる場合があります。現在のクライアントでサブスクリプションを正常に更新できるなら、画面の違いだけを理由に頻繁に乗り換える必要はありません。クライアントの移行には、サブスクリプションの再追加、ルールの再構築、システム構成の再認証が伴います。
- ✅ サービスパネルから、経路名やWebページのアドレスではなく、完全なサブスクリプションURLをコピーした。
- ✅ クライアントがサブスクリプション内のプロトコルに対応していることを確認した。特にHysteria2、TUICなど、比較的新しい実装を必要とするプロトコルを確認した。
- ✅ システムVPN構成の追加を許可できるよう、使用中のデバイスのロック解除方法を用意した。
- ✅ ネットワークを同時に処理する可能性のある、ほかのVPNやプロキシクライアントを終了した。
- ✅ 初回のサブスクリプション取得に使える、正常なネットワーク接続を1つ確保した。
- ❌ サブスクリプションURLを公開チャット、スクリーンショット、公開の障害記録に載せない。
クライアントにサブスクリプションURLを追加する
クライアントによってボタン名は異なりますが、「サブスクリプション」「リモート設定」「構成ファイル」「URLから追加」などが一般的な入口です。基本的な流れは共通しており、URLをコピー、新しいリモートサブスクリプションを作成、貼り付け、保存した後、手動で一度更新します。
- サブスクリプションURLをコピーします。サービスパネルにログインし、サブスクリプションまたはクライアント設定のページを開いて、コピー buttonで完全なURLを取得します。パラメータが欠けないよう、一部だけを手動で選択しないでください。
- クライアントのサブスクリプション管理画面を開きます。サブスクリプションの追加またはリモート設定の入口を探します。「QRコードをスキャン」と「クリップボードから追加」の両方が表示される場合は、入手した方法に合わせて選択してください。
- 貼り付けて名前を付けます。名前は端末上で識別するためだけに使います。サービス名や用途を入力できます。URL内の文字を変更せず、前後にスペースや改行を残さないでください。
- 保存して更新します。クライアントがサブスクリプションアドレスにアクセスし、ノードを解析します。成功すると、元のテキストではなく、地域、経路、プロトコルなどの項目が表示されます。
- 経路を選択します。初回のテストでは、地理的に近く、用途に合った経路を優先してください。判断を複雑にしないため、自動選択、負荷分散、複雑なルールを同時に有効にしないでください。
一部のクライアントはQRコードによる追加にも対応しています。QRコードはサブスクリプション情報を伝える別の手段にすぎず、プロトコルの互換性は変わりません。スキャン後も、追加結果、サブスクリプション名、ノード一覧を確認してください。別の画面に表示したQRコードを読み取る場合は、関係のない人や録画に画面全体が残らないよう注意します。
iOSによるVPN構成の追加を許可して初回接続する
経路を選択したらクライアントのメイン画面に戻り、接続スイッチをオンにします。初回起動時、iOSにVPN構成の追加を求めるシステム確認が表示されます。確認後にデバイス認証を完了すると、システムはクライアントによるNetwork Extensionの作成を許可します。この認証はiOSが開始するため、通常は標準設定画面でサーバー、アカウント、キーを手入力する必要はありません。
認証が完了すると、クライアントのスイッチは接続済みに変わり、システム画面にもVPN状態が表示されます。まずしばらくクライアントを前面に表示し、接続エラーがすぐに出ないか確認してください。スイッチが何度も自動的にオフになる場合は、トンネルが安定して確立されていません。連続して素早くタップするのではなく、クライアントのログを確認します。
「設定」のVPN管理画面では、クライアントが作成した構成を確認できます。構成名は通常、クライアントに関連した名前です。このシステム構成を削除すると、次回の接続時に再認証を求められる場合があります。クライアントをアンインストールする前に古い構成を整理したい場合は、システム設定で対象項目を確認してから削除できます。
システム認証が必要なのは、初めて構成を作成するとき、または構成を削除した後です。サブスクリプションの更新や、同じクライアント内での経路切り替えでは、通常システム構成を再追加する必要はありません。
接続、出口、DNSが想定どおりか確認する
「接続済み」は出発点であり、最終確認ではありません。Webサイトへのアクセス、出口の地域、DNS名前解決、ルール分岐の結果を確認してください。テスト前に使用中の経路とモードを記録し、ノードを切り替えた後に古い結果で判断しないようにします。
- 目的のWebサイトを開きます。Safariで実際に利用するサービスへアクセスし、ページが読み込まれること、ログインを続行できること、画像やスクリプトが長時間停止しないことを確認します。
- 出口情報を確認します。ブラウザで信頼できるIP確認ページを開き、表示された国や地域が選択した経路と一致するか確認します。ルールモードでは、国内サイトがルールにより直接接続される場合があります。これは必ずしも接続失敗を意味しません。
- DNSを確認します。信頼できるDNS検査ページを使い、名前解決リクエストが想定したリゾルバーに送られているか確認します。出口はプロキシ経由なのにDNSが明らかにローカルネットワークで処理されている場合は、クライアントのリモートDNS、ルールDNS、プロキシDNSの設定を確認してください。
- ネットワークを切り替えて再テストします。Wi-Fiから別の利用可能なネットワークへ切り替えた後、クライアントの再接続を待ち、同じアクセス確認を繰り返します。切り替え中の短時間の切断は、システムがトンネルを再構築している過程で発生することがあります。
- クライアントのログを確認します。接続タイムアウト、ハンドシェイク失敗、名前解決失敗、証明書エラー、プロトコル非対応など、具体的なメッセージを重点的に探します。
DNSリークとは通常、アクセス通信は想定した経路を通っている一方で、ドメイン名の解決リクエストだけが想定外のローカル経路で処理される状態を指します。すべての接続失敗と同じ意味ではなく、ページの読み込み速度だけで判断することもできません。ルールモードでは一部のドメインが直接接続されるため、現在のルール、DNSポリシー、テスト対象のドメインを合わせて分析してください。
グローバル・ルール・直接接続モードの選び方
クライアントの一般的な動作方式には、グローバルプロキシ、ルール分岐、直接接続があります。名称は多少異なる場合がありますが、判断基準は同じです。グローバルモードでは処理可能な通信を現在の経路へまとめて送り、初回のトラブルシューティングに向いています。ルールモードはドメイン、アドレス範囲、アプリのリクエスト特性に応じて経路を決め、日常利用に適しています。直接接続は通常、プロキシ転送を一時停止したり、ローカルネットワークを確認したりする際に使います。
| モード | 適した場面 | 注意点 |
|---|---|---|
| グローバルプロキシ | 初回の経路確認、ルールの適用問題の切り分け | 国内サービスも遠隔経路を通る場合がある |
| ルール分岐 | 日常のアクセスで、対象に応じて直接接続とプロキシを選ぶ | 古いルールにより、対象が誤った経路へ送られる場合がある |
| 直接接続 | 元のネットワークの確認、プロキシ転送の一時停止 | システムのトンネルが有効でも、実際のモードを確認する必要がある |
初回接続では、まずグローバルモードでノード自体を確認することをおすすめします。利用できることを確認してからルールモードへ切り替えてください。グローバルではアクセスできるのにルールモードではできない場合、問題は通常、ルールのマッチング、DNS分岐、またはルールリソースが更新されていないことにあります。どちらのモードでも失敗する場合は、まずノード、プロトコル、現在のネットワークを確認します。
ルール分岐は多ければよいわけではありません。ルールには優先順位があり、先にある大まかなルールがリクエストを処理すると、後の精密なルールが適用されない場合があります。手動で編集する際は、まず目的を明確にしてください。どのドメインを直接接続し、どれをプロキシに通し、未一致のリクエストを最終的にどう処理するかを決めます。
iOSクライアントで使われる主なプロトコルの違い
サブスクリプションに複数のプロトコルが含まれていても、名前だけでどれが必ず速いかを判断する必要はありません。実際の性能は、サーバー設定、伝送経路、現在のネットワーク、クライアントの実装によって変わります。クライアントとサーバーでは、プロトコル、ポート、暗号化、伝送パラメータを一致させる必要があり、1つでも欠けるとハンドシェイクに失敗する可能性があります。
| プロトコル | 技術的な特徴 | iOS側で確認するポイント |
|---|---|---|
| Shadowsocks | 暗号化プロキシプロトコルで、設定構成が比較的シンプル | 暗号化方式とクライアントの対応範囲が一致しているか確認する |
| VMess | 認証情報と伝送設定を含み、パラメータの一致が求められる | システム時刻、伝送方式、安全性に関するパラメータを確認する |
| Trojan | 通常はTLSと組み合わせて伝送を確立する | ドメイン、証明書検証、サーバー名を確認する |
| VLESS | プロトコル自体はコンテンツを暗号化せず、TLSなどのセキュリティ層と組み合わせて使う | セキュリティ層、伝送方式、クライアントバージョンの互換性を確認する |
| Hysteria2 | QUICベースで、揺らぎやパケットロスがあるネットワーク環境を想定する | 現在のネットワークが必要なUDP通信を許可しているか確認する |
| TUIC | 同じくQUICとUDPの伝送方式を使用する | 輻輳制御、証明書、クライアント実装が一致しているか確認する |
Hysteria2またはTUICの経路がWi-Fiでは使えるのに、別のネットワークへ切り替えるとタイムアウトする場合、そのネットワークでUDPの扱いが異なる可能性があります。サブスクリプション内の別プロトコルの経路に切り替えて比較してください。TrojanまたはVLESSで証明書やサーバー名に関するエラーが出ても、証明書検証を無効にして回避してはいけません。サブスクリプションを更新し、サーバー側の設定を確認してください。
IEPL専線、中継、直接接続は伝送経路を示すもので、クライアントのプロトコルではありません。直接接続は端末から遠隔の入口へ比較的直接接続する方式です。中継ではいったん中間ノードに入り、そこから目的の経路へ転送します。IEPLは通常、国境をまたぐ専用線系の経路を指します。経路の種類にかかわらず、iOSクライアントはサブスクリプションで指定されたプロトコルを使って入口へ接続します。経路ラベルだけで実際の通信品質を判断することはできず、すべての時間帯で同じ結果になるとも限りません。
追加失敗と接続タイムアウトの切り分け手順
トラブルシューティングでは、一度に1項目だけ変更します。クライアント、プロトコル、ノード、DNS、ルールモードを同時に変更すると、結果を比較できなくなります。サブスクリプションを更新できるかどうかから始め、システムトンネル、目的のWebサイトの順に段階的に確認してください。
- ✅ サブスクリプションを更新できない:完全なURLをコピーし直し、前後のスペースを確認して、現在のネットワークからサブスクリプションアドレスへアクセスできるか確認する。
- ✅ 追加後にノードがない:クライアントに形式非対応の表示がないか確認し、追加入口が単一ノード設定ではなくリモートサブスクリプションになっているか確認する。
- ✅ 特定のプロトコルだけすべて失敗する:クライアントのバージョンがそのプロトコルに対応しているか確認し、別プロトコルの経路と比較する。
- ✅ スイッチが自動的にオフになる:Network Extensionの起動エラーを確認し、競合する構成を削除してから再認証する。
- ✅ グローバルでは使えるがルールでは使えない:ルールリソースを更新し、対象ドメインが直接接続、プロキシ、拒否のどのルールに一致したか確認する。
- ✅ Webページは開くのにアプリが正常に動かない:アプリが別ドメイン、長時間接続、UDPを使っていないか確認し、クライアントログで拒否されたリクエストを確認する。
- ✅ ネットワーク切り替え後に接続できない:いったん手動で切断してから再接続し、システムがトンネルを再構築するのを待って、同じノードで再テストする。
- ❌ エラー内容を確認せず、何度も再インストールして済ませない。再インストールによって重要な設定やログが消える可能性があります。
サブスクリプションは更新できるのに、すべてのノードがタイムアウトする
これはサブスクリプションアドレスにはアクセスできるものの、ノードの入口へ到達できるとは限らないことを示します。まず異なる地域または異なるプロトコルの経路を選んで比較し、ネットワークも切り替えてテストします。QUICベースの経路だけ失敗する場合はUDP経路に注目してください。TLS系の経路がすべて証明書エラーになる場合は、システム時刻とサブスクリプションの更新状態を確認します。
接続後にバッテリー消費や発熱が目立つ
継続的な速度測定、頻繁なノード自動切り替え、過度に多いヘルスチェック、大量のログはバックグラウンド処理を増やします。トラブルシューティングが終わったら連続テストを停止し、不要な詳細ログを無効にして、必要以上の自動検出を減らしてください。ルール分岐によってプロキシ不要の通信を迂回させない方法もありますが、実際の影響は使い方やネットワーク状態によって異なります。
画面ロックやアプリ切り替え後に接続が切れる
まずシステムのトンネル自体が切れたのか、目的のアプリのセッションが期限切れになったのかを切り分けます。クライアントに戻り、接続状態と最新ログを確認してください。クライアントがオンデマンド接続に対応している場合は、用途に合わせて設定できます。ただしオンデマンドのルールが適切でないと、ネットワーク切り替え時に接続と切断を繰り返す可能性があります。
設定後のメンテナンスと安全な使い方
サブスクリプションは一度追加したら永久に変わらないものではありません。サーバー側で入口、証明書、経路設定が変更されることがあり、クライアントもプロトコル実装を更新します。これまで使えていたノードが突然失敗した場合は、まずサブスクリプションを手動更新し、その後に経路変更が必要か判断してください。手動コピーした単一ノードに長く依存するのは避けましょう。単一ノードにはサブスクリプションの変更が自動反映されないためです。
クライアント設定に自動更新機能がある場合は、実際の利用頻度に合わせて有効にできます。更新に失敗したとき、直近で使えた構成を残しておくと、サブスクリプションアドレスに一時的に到達できないのか、ローカル設定が上書きされたのかを切り分けやすくなります。大きな変更を行う前に、クライアントのエクスポート機能でルールを保存しておくこともできます。エクスポートファイルにもサブスクリプションの認証情報が含まれる可能性があるため、機密情報として扱ってください。
プライバシーについては、サービスのログ方針とクライアントのプライバシー説明を確認してください。「ログを保存しない」「閲覧内容を記録しない」という説明はサービス方針に関するものであり、アカウント権限、システム認証、端末側のログ設定と合わせて理解する必要があります。クライアントのデバッグログにはドメイン、接続時刻、エラーの詳細が含まれる場合があります。サポートへ問い合わせる前に、サブスクリプションURLと認証情報を確認して削除してください。