v2rayNのシステムプロキシとルーティングモードの違い|全般・中国本土を除外・直接接続の選び方

v2rayNのシステムプロキシとルーティングモードの違いを解説。全般・中国本土を除外・直接接続の通信経路を比較し、用途別の設定例を紹介します。

この記事の要点

システムプロキシはアプリからv2rayNへ通信を渡す入口、ルーティングモードはコアが受け取った通信の出口を決める設定です。普段の閲覧には「システムプロキシを自動設定+中国本土を除外」から始めるのがおすすめです。振り分けの問題を調べるときは一時的に全般へ切り替え、特定のアプリだけにプロキシを使う場合は手動設定を利用します。入口・出口・確認方法の順に設定を解説します。

システムプロキシは入口、ルーティングモードは出口

v2rayNでノードを選ぶだけでは、利用可能なプロキシサーバーを指定したにすぎません。すべてのアプリが自動的にプロキシを使うわけではありません。ブラウザーは通常、OSのプロキシ設定を参照します。一方、一部のターミナルアプリやゲーム、自前でネットワーク接続を管理するアプリでは、個別にプロキシを設定するか、別の方法で通信を取り込む必要があります。

システムプロキシは通常、PC上のローカル待ち受けアドレスを指します。リクエストがローカルポートに届いてから、コアがルーティングルールに従って処理します。選択したプロキシノードへ送る、ローカルネットワークから直接接続する、または通信を遮断する、といった処理が行われます。そのため、「システムプロキシを設定済み」と「通信が必ずリモートノードを経由する」は同じ意味ではありません。

  1. アプリからの入口:ブラウザーがシステムプロキシを参照するか、アプリがローカルのHTTP・SOCKSポートへ明示的に接続します。
  2. コアでのルール判定:ドメイン、宛先IP、ポートなどの条件に基づいてルーティングルールを選択します。
  3. 出口での処理:プロキシ経由、直接接続、または通信の遮断によって接続を処理します。

自動設定・解除・変更しない

Windows版v2rayNのメイン画面下部またはトレイメニューで「システムプロキシ」を開き、「システムプロキシを自動設定」「システムプロキシを解除」「システムプロキシを変更しない」を確認します。画面によって項目の場所は異なりますが、これらはシステム設定に対する操作であり、コアのルーティングルールを変更するものではありません。

システムプロキシの項目動作設定前の確認
システムプロキシを自動設定システムプロキシの接続先をクライアントのローカル待ち受け先に設定コアが起動しており、アドレスとポートが一致していること
システムプロキシを解除該当するシステムプロキシ設定を削除し、その設定に従うアプリを通常の接続に戻すアプリ独自の手動プロキシ設定や環境変数が残っていないか
システムプロキシを変更しないクライアントから現在のシステムプロキシ設定を変更しないシステムに以前のプロキシアドレスが残っていないか

「変更しない」は「無効にする」という意味ではありません。システムがすでにローカルポートを参照している場合、変更しない設定にしてもそのアドレスが引き続き使われることがあります。通常のネットワーク接続に戻すには、システムプロキシを明示的に解除し、ブラウザー拡張機能やアプリ独自のプロキシ設定も確認してください。

macOSでは「システム設定」→「ネットワーク」→使用中のネットワークサービス→「詳細」→「プロキシ」で、実際に有効な設定を確認できます。Windowsのメニュー画面だけを見て、別のOSの状態を判断しないでください。設定の自動書き込みに失敗した場合は、まずシステムのアクセス許可を確認してから、プロキシアドレスを再確認します。

全般・中国本土を除外・直接接続の通信経路

ルーティングモードが処理するのは、コアに届いた通信だけです。よく使われる3つのプリセットは、以下のような意図で理解できます。ただし、インポートまたは編集したルールには、プライベートアドレスを直接接続したり広告を遮断したりする例外が残っていることがあります。最終的な出口は、現在のルールとログで確認してください。

中国本土を除外

おすすめ

中国本土のドメインまたはIPアドレスのリストに一致する通信を直接接続し、それ以外は通常プロキシ経由にします。結果はルールデータ、照合順序、DNSの名前解決方法によって異なり、Webページの言語で判断されるわけではありません。

おすすめの用途:日本国内のサービスとプロキシが必要なサイトを併用するとき。日常利用の設定として最適です。

全般

コアに届いた通信を、できる限りプロキシ経由にします。プロキシを使っていないアプリまで自動的に通信を取り込む機能ではありません。また、すべてのプリセットでプライベートアドレスなどの例外ルールが無効になるわけではありません。

おすすめの用途:ノードの接続確認や、アクセス障害の原因が振り分けルールにあるかを一時的に調べるとき。

直接接続

コアに届いた通信をローカルネットワークから直接接続します。通信がローカルの待ち受けポートを経由する場合でも、リモートのプロキシノードは使いません。システムプロキシを解除する操作とは、設定する階層が異なります。

おすすめの用途:アプリのプロキシ設定はそのままにして、ローカルネットワークから接続先へ直接アクセスできるか試すとき。

切り分け方法:入口は変えず、ルーティングだけ切り替える

同じWebページが全般では開けるのに「中国本土を除外」では開けない場合は、まずそのドメインに適用されたルールと名前解決の結果を確認してください。すぐにクライアントを再インストールしたり、サブスクリプション全体を再インポートしたりする必要はありません。

まずプロキシを使うアプリを決めてから、入口の設定方法を選びます。ルーティングモードだけを変更しても、ローカルポートへ接続していないアプリがプロキシを使い始めることはありません。逆に、ブラウザーがローカルポートへ接続していても、直接接続ルールに一致すればリモートノードを経由しないことがあります。

アプリの範囲で選ぶ2つの入口

ブラウザーなど、システム設定に従うアプリ
  • コアを起動し、利用可能なノードを選択します。
  • システムプロキシで「システムプロキシを自動設定」を選択します。
  • ルーティングはまず「中国本土を除外」を選び、実際のルール判定に応じて調整します。
  • 入口の競合を避けるため、ブラウザー側で重複して設定したプロキシ機能を無効にします。
特定のアプリだけにプロキシを使う
  • まずシステムプロキシを解除し、他のアプリが通常の接続に戻ったことを確認します。
  • 対象アプリにローカルプロキシのアドレスと対応するプロトコルを入力します。
  • 必要に応じて、クライアントの設定を「システムプロキシを変更しない」にします。
  • ルーティングには「中国本土を除外」を使うほか、用途に応じて一時的に全般へ切り替える方法もあります。

どちらの方法でもコアのルーティングを使います。異なるのはアプリからローカルポートへ接続する方法であり、ノードのプロトコルではありません。

LANプリンター、ルーターの管理画面、社内ネットワークに接続するときは、プライベートアドレスのルールも確認してください。ドメインが内部サービス用であっても、公開ルールデータに登録されているとは限りません。必要に応じて、対象を限定したドメインまたはネットワーク範囲の直接接続ルールを追加し、それを上書きする広範なルールより前に配置します。

待ち受けポートとログで設定を確認する

「設定」→「パラメーター設定」を開き、ローカルの待ち受けに関する項目を確認して、メイン画面の表示と照合します。以下のアドレスとポートはトラブルシューティング用の例であり、すべてのバージョンで共通する既定値ではありません。該当するSOCKSまたは混合プロトコルの待ち受けが実際に有効な場合に限り、この設定例でテストしてください。

127.0.0.1
例:アプリが接続するローカルアドレス
10808
例:SOCKSを有効にした待ち受けポート
443
例:接続先HTTPSサービスのポート
  1. まずコアの起動を確認:ログにアドレスの競合や設定の読み込みエラーが出ている場合は、先に起動時の問題を解決します。待ち受けていないポートをシステムプロキシに指定すると、接続に失敗します。
  2. 次にプロトコルを確認:アプリでSOCKS5を指定した場合、ポート側もSOCKS接続を受け付ける必要があります。HTTP専用の入口をSOCKSとして使うことはできません。混合プロトコルの入口は両方に対応できますが、実際の設定を確認してください。
  3. リクエストを明示的に送信:curlが使えるターミナルで、以下のコマンドを実行します。Windowsではコマンドの別名による違いを避けるため、curl.exeを使えます。例のポート番号はローカル環境の値に置き換えてください。
  4. 最後に出口を確認:コアのログで対象の接続に対応する出站先の記録を探します。ログレベルが不足している場合は、一時的に記録レベルを上げて再現し、確認後に元へ戻してください。ログを共有する前にノードの認証情報を削除してください。
curl --socks5-hostname 127.0.0.1:10808 --connect-timeout 10 -I https://www.example.com/

このコマンドはSOCKSの入口を明示しており、システムプロキシには依存しません。--socks5-hostnameを使うと、接続先のホスト名はSOCKSサーバー側で処理されます。ただし、v2rayNのルーティングモードには従います。そのため、リクエストに成功しても、その入口から接続先まで通信できることが分かるだけで、リモートノードを経由した証明にはなりません。

テストでは接続先と入口を固定し、まず全般、次に「中国本土を除外」に切り替えて、各ルートの出口を記録します。ノード、DNS、ルーティングを同時に変更すると、接続が復旧しても、どの設定が影響したのか特定しにくくなります。

「中国本土を除外」が想定どおりに動かない場合はDNSとルールの順序を確認

ルーティングはWebサイト名やページの内容で分類するものではありません。アプリからドメイン名が渡されれば、コアがドメインルールを照合できる場合があります。IPアドレスだけが渡された場合は、利用できる情報が異なります。接続によってはスニッフィングでドメイン名を特定できることもありますが、すべてのプロトコルや暗号化方式で機能するわけではありません。

VMessやVLESSなどのノードプロトコルによって、特定のWebサイトがプロキシ経由になるか直接接続になるかが決まるわけではありません。プロトコルはクライアントとサーバー間の通信を担い、ルーティングは出口を選択します。ルールでプロキシ経由が選ばれた場合にのみ、そのノードの接続情報が該当リクエストに使われます。

システムプロキシとルーティングモードに関するよくある質問

全般に切り替えても、特定のアプリの出口が変わらないのはなぜ?

まず、そのアプリがローカルのプロキシポートに接続しているか確認してください。アプリ独自のネットワーク設定を調べ、SOCKSを明示したリクエストを比較用に実行します。明示的なリクエストはプロキシ経由で成功するのに、アプリの接続ログが見当たらない場合は、ルーティングルールではなく入口の問題を先に解決してください。

直接接続に切り替えたら、v2rayNを終了しても大丈夫?

終了する前にシステムプロキシを解除してください。直接接続モードでも、リクエストの受信と転送にローカルのコアが必要な場合があります。システムプロキシがローカルポートを指したままv2rayNを終了すると、待ち受けが停止し、システム設定に従うブラウザーがインターネットへ接続できなくなることがあります。

遅延テストに成功するのに、ブラウザーでWebページを開けないのはなぜ?

遅延テストでは、ブラウザーの通信経路全体を確認できません。まずコアが正常に待ち受けているか確認し、次にシステムプロキシの接続先ポートを照合します。その後、同じ接続先で全般と「中国本土を除外」を比較してください。ノードの認証情報、TLSの時刻条件、ログに記録された具体的なエラーも確認します。

システムプロキシを解除したのに、ターミナルがまだプロキシを使うのはなぜ?

ターミナル環境のHTTP_PROXY、HTTPS_PROXY、ALL_PROXYと、コマンド自体のプロキシ指定を確認してください。システムプロキシを解除しても、これらの設定は自動的に削除されません。環境変数を変更した後は、ターミナルを開き直す必要がある場合もあります。

「中国本土を除外」では失敗し、全般なら正常です。全般を使い続ければよいですか?

必要な作業を一時的に全般で行い、その後、失敗するドメインに適用されたルールとDNSの結果を調べます。本当に必要なドメインだけに対象を絞ったプロキシルールを追加し、LANや日本国内のサービスにも再度アクセスして確認してください。1つのサイトのために通信経路全体を変更するのは避けましょう。

v2rayN をダウンロードOSに合わせてクライアントを選択