· 入門ガイド · 約10分

v2rayNのシステムプロキシとルーティング設定|全般・中国本土をバイパス・Tunモードの使い分け

v2rayNのシステムプロキシとルーティングは別々の設定です。全般と中国本土をバイパスするルールの違い、Tunで全通信を取り込むケースを解説します。

この記事の要点

システムプロキシとTunは、通信をクライアントに取り込む方法です。ルーティングモードは、取り込んだ通信をどの出経路に流すかを決めます。普段のブラウジングではシステムプロキシと中国本土をバイパスするルールを組み合わせ、ルールの動作確認には一時的に全般モードを使います。システムプロキシに従わないアプリでは、Tunの利用を検討してください。この記事ではWindows版v2rayNの操作を例に、ポートの確認、コマンドによるテスト、元の設定に戻す手順を解説します。

システムプロキシとルーティング:入口と出口

システムプロキシを有効にしても、全般モードになるわけではありません。システムプロキシは、OSのプロキシ設定にローカルのプロキシアドレスを書き込み、その設定に従うアプリが利用できるようにします。一方、全般モードは通常、クライアントのルール設定を指し、コアに取り込まれた通信をプロキシ経由で外部へ接続します。この2つは個別に変更できるため、「システムプロキシは有効だが、ルーティングでは直接接続を選択している」という状態もあり得ます。

アクセス時の流れは、アプリがリクエストを送信し、ローカルの受け口が接続を受け取り、ルーティングルールが出経路を選ぶ、という3段階に分けられます。VMessやVLESSなどのプロトコルは、クライアントとリモートサーバー間の接続設定です。ブラウザーがシステムプロキシを自動的に使うようにするものではありません。サブスクリプションの更新に成功しても、アプリの通信がクライアントに取り込まれているとは限りません。

設定レイヤー解決すること単独では保証できないこと
システムプロキシOSの設定に従うアプリをローカルのプロキシポートに接続するすべてのプロセス、UDP通信、個別に設定されたプロキシを取り込めるとは限らない
全般ルーティングコアに取り込まれた通信を主にプロキシ経由で外部へ接続するもともとコアに取り込まれていない通信を自動で取り込むことはできない
中国本土をバイパスするルーティングドメイン名やIPアドレスなどのルールで、直接接続とプロキシ接続を振り分ける中国本土のサービスが使う海外ドメインを、すべて直接接続にできるとは限らない
Tunモード仮想ネットワークアダプターとシステムルートを使い、より多くのアプリ通信を取り込む出経路の振り分けはなくならず、例外ルートをすべてカバーできるとも限らない

全般モードと中国本土バイパスの使い分け

普段使いでは、通信の振り分けをおすすめします。中国本土のWebサイト、LAN内のデバイス、社内サービスは通常、直接接続し、それ以外のプロキシが必要な通信をリモートサーバー経由にします。不要な遠回りを避け、ローカルで完結する通信がサーバー側の通信量に含まれるのも防げます。全般モードは、問題の原因がルーティングルールにあるか短時間で確認するときに適しています。

2つのルーティング方式

全般ルーティング
  • 特定のドメイン名が誤って直接接続に振り分けられているか調べるのに適しています。
  • 取り込まれた通信を一時的にすべてプロキシ経由にしたい場合に適しています。
  • ローカルデバイスに接続する前に、プライベートIPアドレスが直接接続の対象として維持されているか確認します。
  • 切り替え後に接続をやり直してください。既存の接続はすぐに出経路が変わらないことがあります。
中国本土をバイパスするルーティング
  • 中国本土のサービスと他地域のサービスを併用する場合に適しています。
  • ドメイン名ルール、IPデータ、実際のルール順に左右されます。
  • サービスが海外ドメインや海外CDNを使っていると、プロキシ経由になる場合があります。
  • 特定のサイトだけに問題がある場合は、まず対象ドメインのルールを追加してください。

普段は通信を振り分け、問題の切り分け時だけ一時的に全般モードを使います。原因を特定したら元の設定に戻し、あらゆるネットワーク障害の解決策として全般モードを使わないでください。

「中国本土をバイパス」は、Webページの言語やユーザーの所在地で判定する機能ではありません。Xrayのルーティングを例にすると、geosite:cnはドメイン名の分類、geoip:cnはIPアドレスの分類で、対象が異なります。ドメイン名によっては名前解決前にルールに一致します。IPアドレスで判定する通信は、ルーティングの名前解決方法にも左右されます。Webサイトの表示が中国語でも、すべてのリソースのドメイン名が直接接続になるとは限りません。

システムプロキシ:ポートと有効化の手順

まずシステムプロキシで基本の接続を確認してから、Tunを検討してください。メニュー名はWindowsで一般的な画面を基準にしています。デスクトップ版とWPF版、バージョンによって表示名や位置が異なる場合があります。同じ名前、または同じ意味の設定項目を探し、現在のクライアントに表示されている待ち受けポートを確認してください。

127.0.0.1
ローカルループバックアドレス。接続できるのはこのPCからのみ
10808
この記事で例として使うSOCKS受け口のポート
10809
この記事で例として使うHTTP受け口のポート

上記2つのポートは説明用の設定例であり、すべてのバージョンのデフォルト値を示すものではありません。HTTPとSOCKSを同じポートで受け付ける混合受け口もあれば、別々のポートで待ち受ける設定もあります。ポート番号が同じというだけで、特定のプロトコルに対応していると判断しないでください。

  1. 有効な設定を確認する

    メイン画面で使用するサーバー設定を選び、右クリックメニューから「アクティブサーバーに設定」を選択します。コアの起動を待ち、まずログにポートの競合や設定の解析エラーがないか確認してください。

  2. 待ち受けポートを確認する

    「設定」→「パラメーター設定」を開き、「ローカルリスニングポート」や関連する受け口の設定を探して、プロトコルとポートを確認します。画面に混合ポートが1つだけ表示される場合は、そのポートが実際に対応する機能に合わせてアプリを設定してください。

  3. システムプロキシを設定する

    メイン画面下部の「システムプロキシ」メニューから「システムプロキシを自動設定」を選択します。画面によっては、タスクトレイのメニューから操作できます。Windowsの「設定」→「ネットワークとインターネット」→「プロキシ」で、設定されたアドレスとポートを確認してください。

  4. ルーティングルールを選ぶ

    メイン画面下部の「ルーティング」から、中国本土をバイパスするルールを選択します。「設定」→「ルーティング設定」で実際のルールを確認し、プライベートIPアドレス、直接接続するドメイン名、ルールに一致しなかった場合の接続先を確認してください。

  5. 接続をやり直す

    テスト中のページを閉じてから開き直し、必要であればテスト対象のアプリも再起動します。新しい接続のログで接続先と出経路を確認してください。ノードの遅延テストに成功しただけで、ブラウザーの設定も正しいとは判断できません。

Tunモード:利用条件と注意点

システムプロキシを参照しないアプリや、手動で設定できるプロキシ項目がないアプリを使う場合、またはUDP通信を取り込む必要がある場合に、Tunの利用を検討してください。Tunは仮想ネットワークアダプターとルーティングを使ってIP通信を処理するため、通常はシステムプロキシより広い範囲を取り込めます。ただし、「すべての接続がリモートサーバー経由になる」という意味ではありません。Tunに取り込まれた通信も、ルーティングルールに従って振り分けられます。

システムプロキシでの基本設定

接続方法
アプリがシステムプロキシ設定に従う
待ち受けアドレス
127.0.0.1
ポートの例
HTTP 10809。実際の設定を確認してください
ルーティングの選択
普段は中国本土をバイパス

ブラウザーなど、システムプロキシに従うアプリに適しています。まずはこの接続経路が機能するか確認してください。

Tunで通信を取り込む設定

接続方法
仮想ネットワークアダプターとシステムルート
必要な権限
ネットワークアダプターの作成とルート変更に必要な権限がある
DNSの確認
名前解決の通信経路がルーティング設定と一致している
除外する対象
LAN、社内ネットワーク、必要なサービスへの接続

システムプロキシで通信を取り込めないアプリに適しています。有効にした後も、通信の振り分けとネットワークの競合を確認してください。

v2rayNのTun機能では、クライアントで選択したTunの実装と関連コンポーネントも重要です。特定のプロキシプロトコルとTunのスイッチを直接結び付けて考えないでください。VMessやVLESSの設定が使えても、現在のTunコンポーネントが利用可能とは限りません。反対に、仮想ネットワークアダプターを作成できても、リモートサーバーが必要なUDP転送に対応するとは限りません。

プロキシ接続の確認:コマンドとログ

問題を調べるときは、システムプロキシ設定を使わず、ローカルのプロキシポートを明示して接続します。明示的にプロキシを指定すれば接続できるのにブラウザーでは失敗する場合は、ブラウザーの設定や拡張機能、システムプロキシからの取り込みに原因があると考えられます。明示的に指定しても失敗する場合は、待ち受け、アクティブな設定、リモート接続を先に確認してください。

以下はWindowsのターミナルで使う2種類のテスト方法です。例としてHTTPとSOCKSのポートをそれぞれ有効にし、予約済みのサンプルドメインを接続先にしています。実際に調べるときは、診断したい接続先に置き換えてください。コマンドの成功・失敗だけで、特定地域のサービスに接続できるかを判断しないでください。

# HTTPプロキシポート経由でHTTPSリクエストを送信
curl.exe --proxy http://127.0.0.1:10809 --connect-timeout 10 --max-time 20 -I https://example.com/

# SOCKSプロキシ経由で接続し、接続先のドメイン名をプロキシ側で処理
curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://example.com/

socks5hとsocks5の主な違いは、接続先のドメイン名をローカルで先に名前解決するかどうかです。前者はドメイン名の処理をプロキシ側に渡しますが、最終的な名前解決方法はコアの設定によって異なります。コマンド内の10秒と20秒は、それぞれ接続タイムアウトと全体の制限時間です。実測の遅延や性能を示す値ではありません。コマンドラインツールはWindowsのシステムプロキシを自動的に使うとは限らないため、ここではプロキシを明示的に指定しています。

テスト結果まず確認すること次の手順
ローカル接続が拒否されるコアが起動していない、ポート番号が違う、対応する受け口がない起動ログと待ち受け設定を確認する
プロキシのハンドシェイク後にタイムアウトするリモート接続、接続先サービス、DNS、ルーティングログからどの段階で失敗したかを確認する
コマンドでは接続できるが、ブラウザーでは失敗するブラウザー独自のプロキシ設定、拡張機能、既存の接続システムプロキシを確認してからブラウザーを再起動し、テストする
全般モードでは接続できるが、ルールによる振り分けでは失敗する対象ドメインが直接接続に振り分けられている、IPルール、名前解決の違い対象通信の出経路を確認し、より具体的なルールを追加する
Webページは使えるが、アプリは接続できないアプリがシステムプロキシに従わない、またはUDPを使用しているまずアプリのプロキシ設定を確認し、その後Tunを検討する

よくある質問と元の設定に戻す手順

全般モードに切り替えても、特定のアプリが直接接続するのはなぜですか?

まず、そのアプリの通信がクライアントに取り込まれているか確認してください。システムプロキシを無視している、個別にプロキシを設定している、切り替え前の接続を使い続けている、といった可能性があります。ログに該当するリクエストがなければ、ルーティングを変更しても効果はありません。まず取り込み方法を確認し、その後に出経路を調整してください。

中国本土をバイパスする設定なのに、中国本土のWebサイトがプロキシ経由になるのはなぜですか?

サイトがドメイン名の分類に含まれないAPIや海外のリソースを使っている場合や、より上位にあるカスタムルールに一致している場合があります。まず対象のドメイン名と出経路を特定し、必要な直接接続ルールを追加してください。1つのリソースに問題があるからといって、共有範囲の広いドメイン全体や海外のIPアドレスすべてを直接接続に変更しないでください。

Tunを有効にした場合、システムプロキシも有効にする必要がありますか?

すべての設定に当てはまる答えはありません。Tunが対象アプリの通信を取り込んでいるなら、システムプロキシは不要な場合があります。一方、アプリによっては引き続き個別のプロキシ設定を優先します。問題を調べるときは、原因を絞り込めるよう、まず接続方法を1つに決めてください。また、Tunがコア自身のリモート接続まで再度取り込み、ループが発生しないことも確認してください。

Android版でも同じメニューを使えますか?

いいえ。v2rayNGはXrayコア、v2flyNGはV2Flyコアを使用します。Androidでは通常、システムが提供する仮想ネットワークインターフェースを通じて通信を取り込みます。入口の仕組みはWindowsのシステムプロキシとは異なります。プロトコルや設定項目も、実際に使用するコアに合わせて確認してください。「まず通信が取り込まれているか確認し、次にルーティングの出経路を確認する」という切り分け方は共通です。

Tunを有効にしてインターネット接続全体に問題が出た場合は、以下の順に、動作確認済みの基本設定へ戻してください。一度に変更する設定を1つに絞り、結果を記録しましょう。ノード、DNS、ルール、コアを同時に変更するより、原因を特定しやすくなります。

  1. Tunを無効にし、クライアントが関連ルートを削除するまで待ちます。LANと元のネットワークが復旧したか確認してください。
  2. システムプロキシを確認します。使う場合は正しいローカルポートを指定し、使わない場合は解除するか、元の設定に戻してください。
  3. 動作確認済みのアクティブな設定を1つ残し、プロキシを明示するコマンドでローカルの受け口からリモートまでの接続を確認します。
  4. 一時的に全般モードへ切り替えて接続し直し、ルールによる振り分けが原因か比較します。確認後は普段使いのルールに戻してください。
  5. 通信を取り込む必要がある場合は、Tunだけを有効にして、権限、DNS、ルーティングの競合、アプリの接続を順番に確認します。
クライアントをダウンロードプラットフォームとインストーラーの選び方