システムプロキシはアプリの通信をクライアントに取り込む設定、ルーティングモードは取り込んだ通信の出口を選ぶ設定です。普段のブラウジングは「中国本土をバイパス」から始め、ルールの誤判定を調べるときは一時的に「グローバル」、社内ネットワークへ接続するときは直接接続のルールを確認しましょう。デスクトップ版とAndroid版の設定場所を紹介し、プロキシポートを明示したリクエストで動作を確認します。「ノードが接続済み」でも、すべてのアプリがプロキシ経由とは限りません。
システムプロキシとルーティングモード:接続方法と出口を切り分ける
v2rayNはノードやサブスクリプション、コアを管理するGUIクライアントです。アプリのリクエストはまずローカルのプロキシ入口からコアに入り、ルールに応じて直接接続、プロキシ経由、ブロックなどの出口へ振り分けられます。システムプロキシは、OSにプロキシのアドレスを登録して、その設定に従うアプリからリクエストをローカルの入口へ送る機能です。接続先が最終的に直接接続になるか、リモートノード経由になるかは決めません。
- 接続レイヤー:ブラウザーがシステムプロキシを参照するか、アプリにHTTP・SOCKSプロキシを手動設定します。TUNでは仮想ネットワークインターフェースを通じて、設定条件に合う通信を取り込みます。
- 判定レイヤー:コアが接続先のドメイン名やIPアドレス、ポートなどを参照し、現在のルールに照らして判定します。
- 出口レイヤー:直接接続のルールに一致した通信は端末のネットワークから接続し、プロキシのルールに一致した通信は選択中のノードを経由して接続します。
「システムプロキシを有効にしたのに、中国本土のサイトへ直接接続される」のは、通常は不具合ではありません。ルーティングが「中国本土をバイパス」なら、中国本土の接続先への直接接続は想定どおりです。逆に「グローバル」にしてもゲームがノードを経由しない場合、ゲームがシステムプロキシを使っておらず、通信がコアに届いていない可能性があります。
グローバル・中国本土をバイパス・直接接続:ルーティングの違い
プリセットのルール名はバージョンによって異なる場合があります。モード名だけで判断せず、ルールの内容や順序、デフォルトの出口も確認してください。以下は一般的なプリセットの目的をまとめたもので、現在の設定に含まれる具体的なルールを保証するものではありません。
中国本土をバイパス:普段使いの振り分け
おすすめ中国本土のドメインやIPアドレス、LAN内のアドレスは通常、プリセットに従って直接接続し、それ以外の接続先はプロキシに送ります。分類はルールデータや判定に使える接続先情報に依存するため、地理的な感覚どおりにすべてのサイトが分類されるとは限りません。
おすすめ:普段の仕事、中国本土と海外のサイトを併用するとき、不要なノード通信を減らしたいとき
グローバル:通信をプロキシ経由に統一
コアに取り込まれた通常のリクエストは、基本的にプロキシを経由します。振り分け前後の結果を手早く比較するのに便利です。一部のプリセットではLAN内への直接接続などの例外が残るため、実際のルールを確認してください。
おすすめ:振り分けの問題を一時的に調べたいとき、アプリの通信を同じリモート出口にまとめたいとき
直接接続:端末のネットワークから接続
コアに取り込まれたリクエストは、通常、選択中のリモートノードを経由せずに接続先へアクセスします。クライアントがローカル接続や名前解決を担う場合もあるため、クライアントの停止やシステムプロキシの解除とは別の操作です。
おすすめ:ローカルネットワークを確認するとき、ローカルからアクセスできるリソースだけを使うとき
切り分け方:同じリクエストでルーティングモードだけを変更
「中国本土をバイパス」では失敗し「グローバル」では成功する場合は、接続先に適用されたルールと名前解決の結果を確認してください。両方で失敗する場合は、ローカルの接続方法やノード、リモート接続を優先して調べ、ルールを何度も入れ替えないようにしましょう。
ノードのプロトコルがVMess、VLESSなどのどれであっても、振り分け方法が自動的に決まるわけではありません。サブスクリプションのインポートでは主にノード情報が追加されます。追加の設定が含まれるか、クライアントがそれを適用するかは別途確認してください。サブスクリプションを更新した後も、選択中のノードとルーティングを確認しましょう。常に同じ状態とは限りません。
v2rayNとv2rayNG:設定場所の違い
ここではWindows版v2rayNとAndroid版v2rayNGを例に説明します。クライアントのバージョンや画面構成、翻訳によって表示は異なるため、操作時は現在の画面に表示されている設定名を確認してください。変更前の値を記録しておくと、複数の設定を一度に変えて原因がわからなくなるのを防げます。
設定手順:接続方法を決めてからルーティングを選ぶ
デスクトップ版:v2rayN
- 利用可能なノードを選び、コアが起動していることを確認します。
- トレイメニューの「システムプロキシ」から「システムプロキシを自動設定」を選び、システム設定に従うアプリがローカルの入口を使えるようにします。
- メイン画面の「ルーティング」選択メニューから、「中国本土をバイパス」または「グローバル」のプリセットを選びます。
- 「設定」→「パラメーター設定」でローカルのリスニング設定を確認します。実際のポート番号を控え、ほかの端末の値をそのまま使わないでください。
Android版:v2rayNG
- ノードを選んで接続をタップし、システムの案内に従ってVPN接続を許可します。
- サイドメニューの「設定」→「ルーティング設定」を開き、現在のルーティングモードを確認します。バージョンによっては、独立したルーティング設定画面もあります。
- アプリごとのプロキシを有効にしている場合は、対象のアプリが実際に接続対象に含まれているか確認してください。「選択したアプリのみをプロキシ経由にする」と「選択したアプリをプロキシから除外する」の違いにも注意が必要です。
- 接続後、対象のアプリを開き直して、新しい接続で動作を確認します。以前の接続が判定に影響しないようにしてください。
デスクトップのシステムプロキシとAndroidのVPN接続は、同じ設定ではありません。同じノードを選んでも、接続対象の範囲とルーティングルールはそれぞれ確認してください。
v2rayNGはXrayコア、v2flyNGはv2flyコアを使用します。どちらもAndroidクライアントですが、設定画面や対応機能をそのまま同じものとして扱うことはできません。v2rayNのコアや設定も、インストール中のバージョンと現在の設定を確認してください。端末ごとの動作を比較する際は、クライアントのバージョン、コアのバージョン、接続方式、ルーティング名を記録しましょう。
ローカルポートで確認:リクエストはプロキシに届いているか
まず、再現できる簡単なテストを行います。以下では、テスト用の設定でHTTPの入口を127.0.0.1:10809、SOCKSの入口を127.0.0.1:10808に設定したものとします。これらは設定例であり、すべてのバージョンで共通のデフォルト値ではありません。混合ポートを使っている場合は、実際の入口に置き換えてください。
Windowsのターミナルではcurl.exeを使うと、一部の環境でcurlが別のコマンドとして解釈されるのを防げます。以下はレスポンスヘッダーのみを取得します。テスト先がHEADリクエストに対応していない場合は、-Iを外して再試行してください。例のURLは接続確認用で、速度測定用ではありません。
# プロキシを使わず、端末から直接接続
curl.exe --noproxy "*" -I --max-time 15 https://example.com/
# ローカルHTTPプロキシを明示して使用
curl.exe --noproxy "" --proxy http://127.0.0.1:10809 -I --max-time 15 https://example.com/
# SOCKSを明示して使用し、接続先のドメイン名をプロキシ側で解決
curl.exe --noproxy "" --proxy socks5h://127.0.0.1:10808 -I --max-time 15 https://example.com/
- ローカル接続がすぐに拒否される:まずポート番号、リスニングアドレス、コアの稼働状態を確認してください。この段階では、リモートノードに問題があるとはまだ判断できません。
- 明示的なプロキシ経由のリクエストは成功するのに、通常のブラウジングは失敗する:ブラウザーがシステムプロキシを参照しているか、独自のプロキシ設定がないか、古い接続を使っていないか確認してください。
- リクエストがコアに届いた後でタイムアウトする:ログに記録された接続先とアウトバウンド情報を確認し、ノードへの到達性、ハンドシェイク、DNSを調べてください。タイムアウトだけではルーティングの問題とは断定できません。
- HTTPステータスコードが返る:少なくともHTTPレスポンスは受信できています。403などが返る場合は接続先サービスのアクセス制限が原因の可能性があり、プロキシ経路の切断を意味するとは限りません。
socks5hではドメイン名の処理をプロキシ側に任せますが、最終的な名前解決の場所や使用するリゾルバーは、コアのDNS・ルーティング設定によって異なります。このオプションを「すべてのDNS通信が必ずリモートノードを通る」という意味に捉えないでください。
仕事・ゲーム・開発:アプリに合わせたルーティング
ルーティングモードは速度設定ではありません。リモート経路を追加すると遅延が増えることがあり、直接接続もローカルネットワークの品質に左右されます。まずアプリがどの接続先を必要とするかを確認し、接続方法と出口を選びましょう。「グローバル」を何度も切り替えるより効果的です。
| 用途 | まず試す設定 | 確認ポイント |
|---|---|---|
| 仕事・ウェブ閲覧 | システムプロキシ+中国本土をバイパス | 社内ドメイン、Web会議サービス、ファイルのアップロードが想定どおり直接接続されるか |
| LANプリンター・NAS | LAN内アドレスを直接接続 | 例:192.168.1.10へのルート、LAN内ドメインの名前解決元 |
| オンラインゲーム | まずプロキシ経由で接続できるか確認 | UDP転送、TUNでの通信取り込み、ノードの対応状況、ゲームサーバーのリージョン |
| ターミナル・開発ツール | ツール側でプロキシを明示的に設定 | ツール独自のプロキシ設定、環境変数、LAN内アドレスの除外リスト |
| 振り分けのトラブルシューティング | 同じ接続先に対して一時的に「グローバル」に切り替える | ルーティングだけを変更し、新しい接続とログの結果を比較 |
多くのゲームはデスクトップのシステムプロキシを参照しません。特にHTTPプロキシを汎用的なUDP経路として使えるとは限りません。TUNを有効にしていても、ノードやプロトコル、サーバーが必要な通信に対応しているか確認が必要です。ゲームの遅延は主に通信経路、混雑、パケットロスに左右されるため、ウェブページの表示速度から判断することはできません。
開発ツールには独自のプロキシ設定があることもよくあります。ターミナルで環境変数を設定しても、それを参照するプログラムだけがプロキシを使用します。起動済みのプロセスには古い環境変数が残っている場合もあります。社内リポジトリやテストサービスには適切な除外設定を行い、社内ネットワークでしか名前解決できないドメインを不適切な経路へ送らないようにしましょう。
「中国本土をバイパス」が正しく動かないとき:ルール・DNS・接続を順に確認
「中国本土のサイト」は利用者による説明ですが、ルールが判定するのはドメイン名やIPアドレスなどです。中国語のサイトでも海外のAPIを使用することがあり、1つのページから複数のCDN、ログインサービス、メディア配信元へ同時にリクエストが送られることもあります。一部だけ表示されない場合は、サイト全体を原因と決めつけず、失敗したドメイン名を特定してください。
- 新しいリクエストが接続されているか確認する。ローカルのプロキシポートを明示したコマンドで再テストします。コアに関連する記録がない場合は、接続方式とログレベルを先に確認してください。
- ルールの順序を確認する。ルーティングは通常、上から順に判定されます。前にある広範なルールが後続の詳細なルールに先行して一致する場合があります。ドメインを直接接続するルールを追加したら、そのルールを適用対象のルールより前に置いたか確認してください。
- ルールデータを確認する。
geosite:cnはドメイン分類、geoip:cnはIPアドレスの分類であり、同じ判定ではありません。ルールデータを更新すると、判定結果が変わる場合もあります。 - DNSと接続先情報を確認する。IPルールは、取得済みの接続先IPアドレスや、現在のドメイン名ポリシーに基づく名前解決に依存することがあります。ブラウザーのセキュアDNS、コアの名前解決、社内ネットワークの名前解決の違いも確認してください。
- 接続を作り直して確認する。ルーティングを変更しても、確立済みの接続には反映されない場合があります。該当する接続を閉じるかアプリを再起動してからテストし、必要に応じてクライアントにも再接続してください。
作業手順:入口を固定してからルールを1つ変更
再現可能なテストリクエストを用意し、まずポートに接続できることを確認してから、適用された出口を記録します。「中国本土をバイパス」と「グローバル」で結果に違いがある場合に限り、対象ドメインのルールを調整してください。確認後は普段のモードに戻し、変更内容を記録しておきましょう。