システムプロキシはアプリからローカルクライアントへリクエストを渡すかどうかを決め、ルーティングモードはコアに届いたリクエストの出口を決めます。この記事ではWindows版v2rayNを例に、3つのルーティングモードの違い、ポートの確認方法、ルール分岐のトラブルシューティング手順を解説し、Androidクライアントで通信を制御できる範囲も紹介します。サブスクリプションを追加したものの、どのモードを使うべきか迷っている方におすすめです。
システムプロキシとルーティング:まず2つの層を区別
「全般を有効にする」は、異なる2つの操作を指すことがあります。OSのプロキシ設定を変更する操作と、コアのデフォルトの出口をプロキシにする操作です。前者は入口、後者は出口にあたります。片方だけを変更しても、すべてのアプリが想定どおりにプロキシを使うとは限りません。
一般的なデスクトップ環境では、ブラウザーがシステムプロキシを参照してリクエストをローカルの待ち受けアドレスに送信します。v2rayNが管理するコアがリクエストを受け取り、ルーティングルールに従ってプロキシ、直接接続、またはブロックを選択します。サブスクリプションはサーバー設定を提供するもので、すべてのアプリのプロキシを自動で有効にするものではありません。VMessやVLESSは接続プロトコルであり、「全般」や「中国本土を迂回」の別名ではありません。
- アプリ層:アプリがシステムプロキシを参照するか、手動で指定したプロキシを使うか、プロキシを使わないかを決めます。
- ローカルの入口:リクエストは、クライアントで実際に有効になっているHTTP、SOCKS、または混合ポートに入ります。
- ルーティング層:コアがドメイン、IPアドレス、ポートなどの条件でルールを順に照合し、該当する出口を選びます。
- 出口層:プロキシ経由ではリモートサーバーを通じて接続し、直接接続ではこの端末のネットワークから接続します。
全般・中国本土を迂回・直接接続の通信の違い
モード名は、クライアントがルール群を要約したものです。実際の動作は、現在のルールの内容と順序によって決まります。組み込み設定でも、LANや特定ドメインへの直接接続が例外として残る場合があるため、「全般」を例外なしと捉えるのは適切ではありません。カスタムルールで結果が変わることもあるので、切り替える前に優先して適用されるルールがないか確認してください。
| ルーティングモード | 主な通信経路 | 用途 | 主な確認項目 |
|---|---|---|---|
| 全般 | コアに入ったリクエストは、デフォルトでプロキシ経由 | プロキシ出口の確認、ルール分岐の影響を一時的に除外 | 例外ルールとプロキシサーバーの接続状況 |
| 中国本土を迂回 | 中国本土のドメインまたはIPに一致したリクエストは直接接続し、それ以外は通常プロキシ経由 | ローカルサービスと海外サイトを併用 | ルールデータ、DNS、デフォルトの出口 |
| 直接接続 | コアに入ったリクエストは、デフォルトで端末のネットワークから接続 | 通常のネットワークとの比較、サーバーまでの通信経路の切り分け | 優先されるプロキシまたはブロックのルールが残っていないか |
「中国本土を迂回」は、ページの言語やサイトのブランド、トップレベルドメインだけで判定するものではありません。中国語のサイトでも海外のリソースを使う場合があり、海外ブランドでも中国本土のサービスを使う場合があります。また、ページはログイン、画像、動画など複数のドメインに同時にアクセスし、それぞれ異なるルールに一致することがあります。ページ本体は表示されても添付コンテンツが読み込めない場合は、アドレスバーのメインドメインだけでなく、失敗したリクエストを確認してください。
「直接接続」は「クライアントを終了する」という意味ではありません。直接接続モードでも、アプリがまずローカルのプロキシポートに接続し、その後コアから接続先へ直接アクセスすることがあります。クライアントを終了してもシステムプロキシを解除しないと、アプリは待ち受けが停止したポートへ接続し続け、複数のサイトが一斉に開けなくなることがあります。
v2rayNの設定手順:入口を確認してからルーティングを設定
ここではWindowsデスクトップでシステムプロキシを手動利用する場合を例に説明します。バージョンによって設定画面の場所やプリセット名が多少異なり、通知領域のメニューとメインウィンドウの設定が連動する場合もあります。操作前に現在のルーティング名を記録し、トラブルシューティング中はTUNを同時に有効にせず、別の通信制御経路が混在しないようにしてください。
-
有効な設定を確認する
メインウィンドウのサーバー一覧から使用する設定を選び、右クリックメニューの「アクティブサーバーに設定」で有効にします。サブスクリプションを更新しても設定一覧が更新されるだけで、現在のアクティブサーバーが切り替わるとは限りません。
-
ローカルポートを確認する
「設定」→「パラメーター設定」を開き、ローカルの待ち受けアドレスとポートを確認して、メインウィンドウの表示と照合します。HTTP、SOCKS、混合ポートの用途を確認し、古い解説記事の数値をそのまま使わないでください。
-
システムプロキシを設定する
タスクバーの通知領域にあるv2rayNアイコンを右クリックし、「システムプロキシ」→「システムプロキシを自動設定」を選びます。この操作でシステムプロキシ設定が書き込まれますが、すべてのアプリがその設定に従うわけではありません。
-
ルーティング設定を選ぶ
メインウィンドウ下部の「ルーティング」選択欄から必要な設定に切り替えます。プリセット名に番号や英語の接尾辞が付いている場合は、一覧上の位置だけで判断せず、ルールの内容から「全般」「中国本土を迂回」「直接接続」のどれにあたるか確認してください。
-
テスト接続をやり直す
テストに使っていたページを閉じて開き直し、必要に応じてブラウザーも再起動します。既存の長時間接続では古い出口が引き続き使われる場合があります。モードの切り替えを確認したうえで、ログに新しい接続とアウトバウンドの表示があるか確認してください。
通常のネットワークに戻すには、通知領域のメニューから「システムプロキシ」→「システムプロキシをクリア」を選び、ブラウザーに手動プロキシ設定が残っていないか確認します。TUNを有効にしている場合は、別途TUNも無効にしてください。システムプロキシをクリアしても、仮想ネットワークアダプターによる通信制御は解除されません。組織のネットワークで固定プロキシや自動設定スクリプトを使用している場合は、元の設定を記録し、テスト後に元の値へ戻してください。
ポートの確認:例示の数値をデフォルト値と思い込まない
ポートはアプリが接続するローカルの入口を決めるもので、通信が最終的にリモートサーバーを経由するかどうかは決めません。以下の2つの数値は、手動設定時の対応関係を示す例にすぎません。クライアントがそれぞれのポートで実際に待ち受けている場合にのみ、アプリから利用できます。現在のバージョンで混合ポートを使う場合は、パラメーター設定を確認してください。
HTTPプロキシの例
- サーバー
- 127.0.0.1
- ポート
- 10809
- アプリの設定
- HTTPプロキシ、またはCONNECT対応のプロキシ項目
- 前提条件
- このポートでHTTPまたは混合リスナーが有効になっていること
アプリのプロキシ設定に入力します。リモートサーバーのアドレスではありません。
SOCKSプロキシの例
- サーバー
- 127.0.0.1
- ポート
- 10808
- アプリの設定
- SOCKS5プロキシ項目
- 前提条件
- このポートでSOCKSまたは混合リスナーが有効になっていること
アプリがドメイン名の名前解決をプロキシに任せるかどうかは、DNS設定にも左右されます。
127.0.0.1は、この端末自体を指します。スマートフォンにこのアドレスを入力しても、パソコンには接続されません。端末間で共有するには、LAN待ち受け、ファイアウォール、アクセス制御の設定が必要です。ポート番号を変えるだけでは実現できません。通常の単一端末での利用ではローカル待ち受けを維持し、「全般プロキシ」のためにLANへのアクセスを許可する必要はありません。
日常のルール分岐と一時的な診断でモードを使い分ける
モードは、どれか1つを常に正しい設定と考えるのではなく、目的に合わせて選びます。日常利用ではローカルサービス、リモートリソース、LAN内の端末に適切な経路を割り当てることが重要です。トラブルシューティングでは、変数を絞り、結果を再現できることが重要になります。
2つの用途:日常のアクセスとトラブルの切り分け
日常のアクセス
- まず「中国本土を迂回」を使い、デフォルトの出口がプロキシになっているか確認します。
- プリンターや社内ドメインなどには、明示的な直接接続ルールを設定します。
- 特定のサイトだけに問題がある場合は、そのサイトのリクエストドメインに絞ってルールを確認します。
トラブルの切り分け
- 一時的に「全般」に切り替え、ルール分岐が原因かどうか確認します。
- 次に「直接接続」で比較し、端末のネットワークとプロキシ経路を切り分けます。
- アクティブサーバーは変更せず、一度に変更する設定は1つだけにします。
「全般」はルール分岐の影響を減らすため、「中国本土を迂回」はルールに応じて出口を振り分けるため、「直接接続」は端末のネットワーク経路を確認するために使います。
「全般」では正常で「中国本土を迂回」では失敗する場合は、まず接続先が誤って直接接続に振り分けられていないか確認し、次にドメインの名前解決とルールデータを確認してください。どちらのモードでも失敗する場合は、アクティブサーバー、認証情報、トランスポート設定、現在のネットワークから接続できるかを重点的に確認します。ルーティングを切り替えても、無効なサブスクリプションは修復できません。また、互換性のないVMessやVLESSの設定が自動的に使える設定へ変換されることもありません。
Androidでの使い方とよくある誤解:入口は違っても確認方法は同じ
v2rayNGはXrayコアを、v2flyNGはV2Flyコアを使用します。Androidでは、デスクトップのシステムプロキシではなく、OSのVPNサービスを使って通信を制御するのが一般的です。接続を開始しても、クライアントに入る通信はアプリごとの設定、迂回オプション、ルーティングルールの影響を受けます。デスクトップ版の「システムプロキシを自動設定」メニューをAndroidにそのまま当てはめることはできません。
- ブラウザーは使えるのに、ほかのアプリは失敗する:デスクトップでは、そのアプリがシステムプロキシを参照しているか確認します。Androidでは、アプリごとの対象リストから除外されていないか確認してください。ブラウザーが使えるだけで、すべての通信が制御されているとは判断できません。
- 「全般」に切り替えるとLAN内サービスが使えなくなる:プライベートIPアドレスや社内ドメインに、直接接続ルールが残っているか確認します。企業内ネットワークでは特定のDNSが必要な場合もあり、IPルールを追加するだけでは解決しないことがあります。
- Webページは表示されるのに、リアルタイム通信が不安定:アプリの通信方式と通信制御の方式が、必要なUDP通信に対応しているか確認してください。HTTPシステムプロキシは、汎用のUDP転送用入口ではありません。
- 出口のIPアドレスが想定と異なる:まず、確認に使ったリクエストがどの出口を通ったか確認してください。ルール分岐がある場合、1回の確認で分かるのはそのリクエストの経路だけであり、すべての接続の経路を示すわけではありません。
最後に確認するポイントは3つです。リクエストがクライアントに入ったか、どのルーティングルールに一致したか、選ばれた出口から接続先へアクセスできるか。何度もモードを切り替えるより、この順番で調べるほうが問題を特定しやすくなります。DNS、サブスクリプション、接続エラーをさらに確認する場合はトラブルシューティングをご覧ください。ルーティング、アウトバウンド、TUNなどの用語は用語集で確認できます。