iOSで初めてVPNを設定する際に必要なのは、スイッチを入れることだけではありません。クライアントの入手元を確認し、正しいサブスクリプションを追加して、iOSによるVPN構成の作成を許可したうえで、出口アドレス、DNS、分割トンネルの結果を確認する必要があります。この順序で進めれば、接続失敗、追加後に回線が表示されない、接続済みなのにアクセスできないといった問題の多くを、該当する段階で切り分けられます。
この記事は、iPhoneまたはiPadで初めてサブスクリプションサービスを利用する方を対象にしています。クライアントによってボタン名は多少異なりますが、基本的な流れは共通です。クライアントがサブスクリプション内の回線情報を読み込み、ノードのプロトコルで暗号化接続を確立し、iOSがルールに合う通信をその接続へ渡します。
始める前に、クライアント・サブスクリプション・システム構成を整理する
初心者が混同しやすいのが、この3つの要素です。クライアントはiOSにインストールし、ノードを解析して接続を開始するアプリです。サブスクリプションはサービス側が提供する回線設定の一覧で、システム構成はクライアントがiOSに作成を求めるVPNインターフェースです。3つはすべて必要ですが、役割はそれぞれ異なります。
クライアントをインストールしただけでは、利用可能な回線は自動的に取得されません。一方、サブスクリプションURLを入手しても、ブラウザだけで接続を完了することはできません。ブラウザはプロトコルクライアントの代わりにはならないためです。追加後は、通信をVPNインターフェースへ流すために、クライアントへシステム権限を与える必要があります。ステータスバーやシステム設定にVPNが表示されればインターフェースは有効ですが、想定した回線を通っているかは引き続き確認してください。
信頼できる入口からクライアントを入手する
まずサービスパネルのダウンロード案内やクライアント公式リリースページでアプリ名を確認し、その後App Storeから入手してください。ネットワークツールはApp Storeの地域によって表示状況が異なる場合があります。検索で見つからないときは、現在のストア地域とサービスの案内を確認し、名前が似ているだけの出所不明な代替アプリはインストールしないでください。
クライアントがサブスクリプションで使われているプロトコルに対応しているかも確認します。Shadowsocks、VMess、Trojan、VLESS、Hysteria2、TUICは同じ形式ではありません。対応範囲が一部に限られるクライアントもあり、汎用サブスクリプションを読み込めても、含まれるすべての通信方式を実装しているとは限りません。追加に成功してもノードを利用できない場合は、サブスクリプションが空なのではなく、プロトコルの対応が合っていない可能性があります。
- サービスパネルまたはクライアント公式の案内で、アプリ名と開発元情報を確認する。
- サブスクリプションで実際に使われるプロトコルと通信方式にクライアントが対応しているか確認する。
- インストール後は、見慣れないローカルプロキシ、書き換え、復号機能を不用意に有効にしない。
- サブスクリプションURLを用意し、チャットアプリによる途中での切断や余分なスペースの追加がないことを確認する。
サブスクリプションを追加し、回線が登録されたことを確認する
一般的な追加方法には、クリップボードからURLを読み込む方法、サブスクリプションアドレスを手動で貼り付ける方法、ブラウザからクライアントへ移動する方法があります。初心者には、サービスパネルから完全なサブスクリプションURLをコピーし、クライアントの「URLから追加」または「サブスクリプションを追加」を使う方法が分かりやすいでしょう。QRコードで設定を渡せる場合もありますが、同じ端末で操作するなら、URLをコピーしたほうが内容を確認しやすくなります。
初回追加を順番どおりに行う
- サービスパネルにログインし、サブスクリプションまたはクライアント設定のページを開いて、iOSクライアント用のサブスクリプションURLをコピーします。
- 入手元を確認したクライアントを開き、「サブスクリプションを追加」「リモート設定」「URLから追加」などの入口を探します。
- URLを貼り付けたら、先頭と末尾を確認し、説明文、句点、スペースまで一緒に入力しないようにします。
- 識別しやすい名前をサブスクリプションに付け、保存または更新を実行します。
- 回線一覧に戻り、地域、回線名、プロトコル項目などが表示されていることを確認します。
追加完了と表示されたのに一覧が空の場合は、まずサブスクリプションを手動で更新します。それでも表示されなければ、接続ボタンを何度も押すのではなく、パネルからURLを改めてコピーしてください。ブラウザで開いたときに長いエンコード文字列が表示されても、URLが無効とは限りません。サブスクリプションはクライアントが解析する機械可読データであり、通常のウェブページのように読むものではありません。
サブスクリプション更新と単一ノード追加の違い
サブスクリプションURLでは、複数の回線を一度に同期できることが多く、サービス側で回線が調整された場合もクライアントから再取得できます。単一ノードURLは1つの設定だけを記述するため、一時的なテストには向いていますが、変更のたびに再追加が必要です。初回利用ではサブスクリプション形式を維持し、クライアントの「サブスクリプションを更新」を使うことをおすすめします。各回線を個別の手動設定に変更する必要はありません。
クライアントでノードのパラメータを編集できても、初心者が変更する必要があるとは限りません。サーバーアドレス、ポート、トランスポート層、セキュリティ設定、プロトコル認証情報は互いに一致している必要があります。いずれかを不用意に変えると、設定が残っているように見えてもハンドシェイクを完了できなくなることがあります。サービスの案内で明確に指定されていない限り、サブスクリプションから配布された値をそのまま使ってください。
iOSのVPN構成を許可し、初回接続を完了する
回線を1つ選んで接続すると、iOSはクライアントによるVPN構成の追加を求めます。これはネットワーク拡張またはVPNインターフェースを作成するためのシステム権限です。許可すると、クライアントはルールに合う通信を処理できるようになります。端末の認証を求められる場合は、クライアントを前面に表示したまま完了してください。連続して終了したり、アプリを切り替えたりしないようにします。
通常、この許可が表示されるのは構成を初めて作成するときだけです。同じクライアント内で回線を変更しても、再度表示されるとは限りません。クライアントを削除した場合、システムのVPN構成を削除した場合、別のクライアントへ変更した場合は、再許可が必要になることがあります。追加済みのVPN構成はiOSの設定で確認できますが、回線の選択、サブスクリプションの更新、分割トンネルのルールは通常、元のクライアントで管理します。
初回はどの回線を選ぶか
初回接続の目的は、特定のコンテンツサービスをすぐに利用することではなく、設定手順が最後まで機能するか確認することです。まずは地理的に近く、サービスパネルでよく使われる回線として表示されているものを選ぶとよいでしょう。距離はあくまで目安で、実際の経路は利用中の通信事業者、国際出口、中継方式にも左右されます。地図上の近さだけで品質を判断しないでください。
直接接続回線は、端末のネットワークから遠隔ノードへ直接接続するため経路がシンプルですが、国際区間の影響を受けやすくなります。中継回線はまず接続ポイントへ到達し、最適化された経路で出口へ転送するため、複雑なネットワーク環境での経路改善に役立つ場合があります。IEPL専線は企業向けの国際専用回線で、経路設計と安定した伝送を重視します。これは通信経路の種類であり、プロトコルではありません。また、クライアント自体の暗号化や認証の代わりにもなりません。
Shadowsocks、VMess、Trojan、VLESSは、TCPなどのトランスポート層を使う設定でよく見られますが、実際の挙動はサブスクリプションで配布されるパラメータによって異なります。Hysteria2とTUICはUDPの特性により強く依存し、利用中のネットワークと経路が適していれば、変動の大きい環境で快適さが改善する場合があります。ただし、公共ネットワークによってはUDPが制限されます。このような回線で接続できない場合は、別のプロトコルの回線に切り替えて比較し、サブスクリプション全体が使えないとすぐに判断しないでください。
出口アドレス、DNS、実際の分割トンネルを確認する
接続後は、まずIP検索ページを開き、表示された出口の国または地域を記録して、クライアントで選択した回線と照合します。元のネットワークの出口が表示される場合、接続が通信を正しく引き継いでいないか、分割トンネルのルールで検索サイトが直接接続に設定されている可能性があります。一時的にグローバルプロキシモードへ切り替えて再確認し、その後、日常利用に適したルールモードへ戻してください。
PeeVPNサイト内のIP検索ツールで、現在のネットワーク出口を確認できます。確認時は古いページを閉じて再度開き、ブラウザのキャッシュによって接続前の結果が表示されないようにします。出口アドレスが共有ネットワークのものの場合、データベース上の都市名と回線名が完全に一致しないことがあります。判断では国または地域、ネットワーク事業者、接続前後の変化を重視してください。
DNSリークとは
DNSはドメイン名をアクセス可能なネットワークアドレスへ変換します。VPNがウェブ通信を引き継いでいても、DNSクエリだけが元のネットワークに渡されると、アクセス先のドメイン情報が元の名前解決経路に見えることがあります。これが一般にDNSリークと呼ばれる状態です。確認ツールには現在見えているDNSサーバーが表示されますが、DNSサーバーの所在地は出口ノードと必ずしも一致しません。パブリックDNSやサービス側の転送によって地域差が生じる場合もあります。
判断するときは地図上の位置だけでなく、接続前後も元のネットワーク事業者が提供するDNSサーバーが表示され続けていないかを比較します。クライアントがリモートDNS、プロキシDNS、トンネル経由の名前解決に対応している場合は、サブスクリプションやサービスの案内で推奨されている設定を優先してください。複数のカスタムDNS、コンテンツフィルター、ネットワーク書き換え設定を同時に有効にすると、ルールが上書きし合い、切り分けが難しくなることがあります。
分割トンネルのモードで、どのリクエストを回線へ送るかが決まる
グローバルプロキシは、引き継ぎ可能な通信の大部分を現在の回線へ送るため、初回確認に適しています。ただし、ローカルサービスや地域向けコンテンツまで遠回りになる場合があります。ルール分割では、ドメイン、IP、アプリのリクエスト、ルールセットなどに基づいてプロキシ接続と直接接続を決めるため、日常利用に向いています。直接接続モードは通常、遠隔回線を経由せず、クライアントの影響を一時的に切り分ける目的で使います。
- 接続確認:短時間だけグローバルモードを使い、出口が変化するか確認します。
- 日常のアクセス:適切に管理されたルール分割を使い、ローカルのリソースは直接接続にします。
- 異常の切り分け:グローバル、ルール、直接接続を切り替え、問題が回線とルールのどちらにあるか判断します。
- ローカルネットワークへのアクセス:クライアントがローカルアドレスを誤ってプロキシ経由にしていないか確認します。そうしないと、印刷、画面共有、家庭内デバイスへのアクセスに影響する場合があります。
iOSでは、ブラウザ、単独アプリ、システムサービスがまったく同じネットワーク動作をするとは限りません。あるウェブページが使えても、すべてのアプリが同じ経路を通るとは限りません。特定のアプリが読み込めなくても、すぐにサブスクリプションを変更する必要はありません。まず、そのアプリが特殊なドメイン、IPv6、QUIC、システム専用のネットワークインターフェースを使っているか確認し、次にクライアントのルールログで該当リクエストを確認してください。
接続できないときは段階的に切り分ける
効率よく調べるには、一度に1つの条件だけを変更することが重要です。クライアント、プロトコル、回線、DNS、分割トンネルのモードを同時に変えると、復旧しても本当の原因が分かりません。サブスクリプションの状態から始め、システム権限、プロトコルの互換性、現在のネットワーク、ルールの順に確認してください。
追加に失敗する、または回線一覧が空になる
サービスパネルからサブスクリプションURLをコピーし直し、クライアントでリモートサブスクリプションの入口を選んでいるか確認します。単一ノード用の入力欄ではありません。複数のサブスクリプション形式に対応するクライアントでは、サービスの案内で指定された形式を使用してください。URLの文字を変更したり、自分でデコードしたりしないでください。クライアントのバージョンが古いと、新しいプロトコル項目を認識できない場合があります。その際は、まずクライアントを更新するか、そのプロトコルに明確に対応したクライアントへ変更します。
接続中のまま進まない
これは通常、クライアントが通信路の確立を試みているものの、ハンドシェイクを完了できていない状態です。まず同じサブスクリプション内の別の回線へ切り替え、その後に異なるプロトコルの種類を試します。Wi-Fiでは失敗し、別の信頼できるネットワークでは使える場合、現在のネットワークがUDP、特定ポート、長時間接続を制限している可能性があります。Hysteria2、TUIC、TCPベースの回線は挙動が異なることがあるため、比較テストによって制限がネットワーク側かサービス側の回線にあるかを判断しやすくなります。
接続済みなのにウェブページを開けない
まず分割トンネルをクライアント推奨のデフォルトルールへ戻し、DNS設定を確認します。リモートDNS、書き換え、広告除去、ローカルフィルターを手動設定している場合は、一時的に初期設定へ戻してください。その後、接続を切って再接続し、ブラウザの古いタブを閉じてからテストします。特定のウェブサイトだけに問題がある場合は、サイト自体、出口地域の制限、キャッシュが原因かもしれません。単一サイトの障害をVPN全体の失敗と同一視しないでください。
アプリを切り替えると接続が切れやすい
iOSはバックグラウンドのリソースを管理しており、クライアントはシステムのネットワーク拡張を通じて接続を維持します。クライアントを頻繁に強制終了せず、システム内にVPN構成が残っていることも確認してください。クライアントによっては、オンデマンド接続、ネットワーク切り替え後の再接続、スリープ復帰のオプションを備えていますが、名称と機能はアプリごとに異なります。デスクトップクライアントと比べ、iOSではバックグラウンドタスク、システム通信、ネットワーク拡張により厳しい制限があるため、デスクトップ向けの常駐スクリプトやファイアウォール設定をそのまま使うことはできません。
iOSと他のプラットフォームのクライアントの違いを理解する
同じサブスクリプションでも、Windows、macOS、Android、Linux、iOSでは表示される項目が異なる場合があります。各プラットフォームでネットワークインターフェース、バックグラウンドの仕組み、クライアントの実装が異なるためです。デスクトップクライアントは、システムプロキシ、仮想ネットワークアダプター、ルーティングテーブル、ログを細かく制御できることが多い一方、iOSクライアントは主にシステムのネットワーク拡張を通じて動作します。画面は集約されている反面、変更できる低レベルのパラメータは少なめです。
Androidクライアントでは、アプリごとにVPNを経由するか決められることが多いですが、iOSでは同様の機能がクライアントの実装とシステム権限に左右されます。デスクトップではプロセス、ドメイン、ルーティングルールによる細かな分割ができますが、iOSではドメインやIPのルールセットに依存することが一般的です。Linuxクライアントでは設定ファイル、サービスプロセス、コマンドラインへの理解が必要になる場合があります。iOSではシステム権限と接続スイッチがグラフィカルな画面にまとめられています。
そのため、デスクトップ向けの解説に「システムプロキシ」「仮想ネットワークアダプター」「混合ポート」が登場しても、iOSクライアント内で同じボタンを探す必要はありません。注目すべきなのは機能の目的です。サブスクリプションを追加できるか、システムVPNを確立できるか、ルールに従って通信を処理できるか、想定したDNSを使っているかを確認します。ボタン名が違っても、主要な機能がないとは限りません。
日常利用でのサブスクリプションとプライバシーの習慣
初回接続に成功したら、シンプルで再現しやすい設定を1つ残しておくと安心です。クライアントのルール、DNS、プロトコルのパラメータが複雑になるほど、ネットワークの変化後に障害の原因を判断しにくくなります。サブスクリプションがサービス側で管理されている場合は、クライアントの更新機能を定期的に使えば十分で、頻繁に削除して再追加する必要はありません。特定の回線だけ一時的に不安定なら、まず回線を切り替えます。すべての回線で更新できない場合は、サブスクリプションの状態と現在のネットワークを確認してください。
サブスクリプションURLはアカウントの認証情報と同じように管理してください。クラウド上の公開ドキュメントに保存したり、不明な変換サービスへ送信したり、完全なアドレスが写ったクライアント画面を公開したりしないでください。古い端末の利用をやめる前に、クライアントからサブスクリプションとローカル設定を削除します。URLが漏えいした可能性がある場合は、サービスパネルまたはサポート窓口でリセットが必要か確認してください。
VPNはネットワークの出口を変更し、端末から回線の接続先までの通信を保護できますが、ウェブサイト側のHTTPS、アカウントのセキュリティ設定、システム更新に代わるものではありません。ウェブサイトへアクセスするときはドメイン名を確認し、不審なページに認証情報を入力しないでください。ログを残さない、閲覧内容を記録しないといったプライバシーポリシーについては、サービスが公開する規約を基準にし、どの範囲が対象なのかを確認してください。ネットワークツールを、あらゆる場面を完全に保証するものと考えないことが大切です。
- クライアントの入手元とプロトコル対応を確認した。
- サブスクリプションURLは信頼できる端末とクライアントだけに保存している。
- iOSのシステムVPN構成を許可し、有効な状態を保っている。
- 出口アドレスと選択した地域が想定どおりになっている。
- DNS確認で、使用したくない元のネットワークの名前解決経路が表示され続けていない。
- ルールモードで、ローカルアクセスと国際アクセスが想定した経路を通っている。
- 問題が起きたら一度に1つだけ条件を変え、有効だった切り分け結果を記録する。