v2rayNのルーティング設定:中国本土は直結、日本国外はプロキシ

v2rayNのルーティング設定を解説。中国本土を迂回するルール、全トラフィックのプロキシ、ドメイン別振り分けの使い方と確認方法を紹介します。

この記事の概要

普段使いなら、まず「中国本土を迂回」を選び、必要なサイトだけ例外ルールを追加しましょう。この記事では、Windows版v2rayN 7.xの一般的な画面とXrayコアを例に、システムプロキシとコアのルーティングの違い、プリセットルール、ドメイン判定、DNS、動作確認の手順を解説します。プリセット名はマイナーバージョンによって異なる場合があります。名称ではなく、ルールの順序と実際の出力先で判断してください。

1. システムプロキシとルーティングの違い

ルーティングを使うには、通信がv2rayN管理下のプロキシコアに届いている必要があります。システムプロキシは、設定に従うアプリがリクエストをローカルポートに送るかどうかを決めます。ルーティングルールは、コアに届いたリクエストを直結、ノード経由、または遮断のどれにするか決めます。この2つは相互に代用できません。

Windows版v2rayNのメイン画面またはタスクトレイメニューで「システムプロキシ」を「自動構成」にすると、通常はシステムプロキシに従うブラウザーの通信を取り込めます。クライアントを起動しただけ、ノードを選んだだけ、あるいは「ルーティング」を切り替えただけでは、ブラウザーがプロキシを使っているとは限りません。

2. 中国本土を迂回・全般プロキシ・ブラックリストの選び方

まずメイン画面下部の「ルーティング」ドロップダウンを確認し、「設定」→「ルーティング設定」で該当ルールの内容を確認します。プリセットには、中国本土を迂回する設定、ブラックリスト、全般プロキシなどがあります。利用中のバージョンに同じ名前の項目がない場合、名称が似ているだけの設定を同等と見なさないでください。

中国本土を迂回

おすすめ

通常、LANとルールセットで中国本土のものと判定されたドメインやIPアドレスは直結し、それ以外の通信はプロキシ経由にします。ドメイン分類とIPデータに基づく判定であり、ページ内の文言やサイト運営者の所在地で判断するものではありません。

おすすめの用途:日本国内の業務やダウンロードと、日本国外のサイトを併用する場合。

全般プロキシ

コアに届いた通常の通信を優先的にノード経由にします。プリセットによってはLAN直結などの例外が残る場合があるため、ルールを確認してください。「全般」という名前だけで例外の有無を判断することはできません。

おすすめの用途:一時的な比較テストを行い、問題がルーティングに関係するか確認する場合。

ブラックリスト方式

通常、指定リストに一致したドメインだけをプロキシ経由にし、それ以外は直結します。リストにない新しいドメインは直結する可能性があるため、実際のアクセス状況に応じて例外を管理してください。

おすすめの用途:プロキシ経由にする対象が少なく明確で、ドメインリストを管理できる場合。

結論:まず基本の設定を1つ決める

普段は「中国本土を迂回」を使います。特定のサイトだけに問題がある場合は、一時的に全般プロキシへ切り替えて比較してください。正常に戻ったら元の設定に戻し、そのサイトのルールを追加します。ノード、DNS、コアを同時に変更しないでください。

3. プリセットルーティングを使った設定手順

始める前に、少なくとも1つのノードで実際のWebページを開けることを確認してください。リストの遅延時間は、特定のテストに成功したことを示すだけで、目的のサイトに接続できる保証にはなりません。以下では「通信を取り込む→ルーティングを選ぶ→動作を確認する」の順に進めます。

  1. ノードを選ぶ

    メイン画面のノード一覧から使用するノードを選び、右クリックして「アクティブサーバーに設定」を選択します。このテスト中は同じノードを使い、自動選択や頻繁な切り替えは避けてください。

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

    「システムプロキシ」メニューを開き、「自動構成」を選択します。ブラウザー側に手動プロキシ設定がある場合は、システムプロキシを使う設定に戻し、設定同士が上書きし合わないようにしてください。

  3. プリセットルールを確認する

    「設定」→「ルーティング設定」を開き、「中国本土を迂回」のルールを確認します。プライベートアドレスと中国本土への直結ルールが、通常のフォールバックルールより前にあることを確認してください。編集前に現在の設定をバックアップするか、設定を複製してください。

  4. ルーティングを切り替える

    メイン画面に戻り、下部の「ルーティング」ドロップダウンから確認した設定を選びます。変更を保存したら、コアの再読み込み表示を確認し、設定の解析エラーがないことを確かめてから次に進みます。

  5. 接続を作り直す

    テスト対象サイトの古いタブを閉じ、必要に応じてブラウザーを完全に終了してから再起動します。日本国内のサイト、対象の日本国外サイト、LAN内のデバイスにそれぞれアクセスし、結果を記録してください。

PCで別のプロキシツールも実行している場合は、まず終了してください。Windowsのシステムプロキシ設定は共有されるため、別のプログラムがバックグラウンドで設定を書き換え、「設定直後は使えるのに、しばらくすると使えなくなる」ことがあります。

4. サイトごとに直結・プロキシの例外を追加する

プリセットの分類だけでは、あらゆるサービス間の関係を網羅できません。日本国内のサイトが日本国外のAPIを呼び出すこともあれば、日本国外のサービスがローカルのCDNを使うこともあります。まず実際に失敗したドメインにルールを追加してください。一度の問題で、共有クラウドのIPアドレス範囲全体を同じ出力先に変更するのは避けましょう。

「設定」→「ルーティング設定」を開き、現在の設定のルール一覧を編集します。ルールを追加するときは、ドメイン欄に以下の形式を入力し、適切な出力先を選びます。プロキシは通常proxy、直結は通常directです。画面上の表示が異なる場合は、現在の生成設定にある出力先のタグを確認してください。

式マッチする範囲使い方の目安
full:api.example.comこの完全一致ドメインのみ特定のAPIだけをプロキシ経由にする場合
domain:example.comルートドメインとそのサブドメインサイト全体の出力先を指定する場合
geosite:cnドメインデータファイルのcn分類に一致中国本土のドメインを直結する基本ルール
geoip:cnIP条件でcnアドレス分類に一致アドレス単位の判定に使用。ドメイン欄には入力しない

表のexample.comは構文説明用の予約ドメインで、プロキシ経由にする実際の接続先ではありません。入力するのはドメインの式だけです。https://、パス、クエリパラメーター、ポートは入力しないでください。ドメインルールではURL内の/accountは判定できないため、ページのパスごとに通信を振り分けることはできません。

5. DNSが中国本土への直結に影響する理由

ドメインによる振り分けには、コアがドメイン名を取得できる必要があります。ブラウザーがHTTPプロキシ経由でHTTPS接続を開始する場合、通常は接続先のホスト名がプロキシに渡されます。一方、すでに名前解決したIPアドレスだけをコアに渡すプログラムでは、ドメインルールが一致しないことがあります。TUN、スニッフィング、DNSの取り込みはそれぞれ処理を変えるため、同じ設定として扱わないでください。

IPによる振り分けは、名前解決の結果にも影響されます。ドメインがどの分類に属するかと、解決されたアドレスがどの地域に属するかは別の条件です。CDNを使う場合、ドメインルールとIPルールで異なる出力先が選ばれることがありますが、最終的には先に一致したルールが適用されます。

v2rayNの「設定」→「DNS設定」で、現在のコアが使用している設定を確認します。まずはプリセットを維持し、ログから名前解決の問題が確認できた場合にだけ変更してください。DNSを切り替えたら接続を作り直します。Windowsのipconfig /flushdnsで消去されるのはシステムのDNSキャッシュだけで、ブラウザー、アプリ、コア内のキャッシュは消去されません。

6. ポート・リクエスト・ログで結果を確認する

確認するのは、通信がローカルプロキシに届いたか、どの出力先に一致したか、その出力先から目的の接続先に接続できたかの3点です。以下のポート番号はテスト条件の例であり、すべての環境に共通する固定値ではありません。実際の値は「設定」→「パラメーター設定」でローカルの待ち受け設定を確認してください。

10808
SOCKSテスト用のポート例。実際の待ち受けポートを確認してください
443
HTTPSで一般的な接続先ポート。ローカルプロキシのポートではありません
53
従来型DNSで一般的なポート。暗号化DNSすべてを対象とするものではありません

SOCKSの待ち受け先が実際に127.0.0.1:10808の場合は、Windowsのターミナルで次のコマンドを実行できます。socks5hでは接続先のドメイン名をプロキシ側に渡すため、ドメインがコアに届いた後のルーティング確認に適しています。ブラウザー自身のDNS動作を完全に再現するテストではありません。

curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://www.baidu.com/
curl.exe --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://www.wikipedia.org/

コマンドでHTTPレスポンスを受け取れても、HTTPサーバーにリクエストが届いたことしか分かりません。成功したというだけで、プロキシ経由で接続したとは判断できません。Xrayのアクセスログで対象ドメインと出力先タグ(例:directまたはproxy)を確認してください。ログにエラーしか表示されない場合は、「設定」→「パラメーター設定」でログレベルとアクセスログ関連の項目を確認します。テスト後は通常の設定に戻し、接続先が長時間記録されないようにしてください。

  1. ノード、ルーティング、DNSの設定を固定し、テスト時刻と接続先ドメインを記録します。
  2. 「中国本土を迂回」の設定で2つのサイトにリクエストを送り、ログの接続先と出力先を確認します。
  3. ルーティングだけを全般プロキシに切り替えて再度リクエストし、失敗していたサイトが復旧するか比較します。
  4. 元の設定に戻して例外ルールを1つ追加し、再テストします。反映を確認したら一時的なテストルールを削除してください。

結論:ページが開けても、正しく振り分けられたとは限らない

「リクエストがコアに届いた」「ログに想定した出力先が記録された」「接続先から正常な応答があった」の3点がそろって初めて確認完了です。外部IP確認サイトで分かるのは、そのサイトへの通信経路だけです。同じページ内の画像、API、動画のリクエストすべてを示すものではありません。

7. ルーティング設定に関するよくある質問

「中国本土を迂回」にしたのに、中国本土のサイトが遅いのはなぜ?

まず、サイトのメインドメインと静的リソースのドメインに関する出力先ログを確認します。誤ってプロキシ経由になっている場合は、直結する対象のドメインを正確に指定し、広範囲なプロキシルールより前に配置してください。すでに直結している場合は、ローカルネットワークと名前解決を確認します。同じルールを重ねて追加しないでください。

全般プロキシなら開けるのに、振り分け設定では開けない場合、まず何を変える?

ノードはそのままにして、失敗したリクエストのドメインを記録します。「設定」→「ルーティング設定」でプロキシ例外を追加し、分類ルールより前に配置してください。ページが複数のドメインにアクセスする場合は、アドレスバーのメインドメインだけでなく、失敗しているAPIのドメインも確認します。

新しいルールを保存したのに変化がないのはなぜ?

まずメイン画面下部の「ルーティング」で、編集した設定が選択されているか確認します。次に、前のルールに通信を先取りされていないか確認してください。その後、テスト対象のアプリを終了して再起動し、既存接続が再利用されていないか切り分けます。ログが出ない場合は、通信がコアに届いていない問題を先に解決してください。

プリンターや社内ネットワークに接続できない場合は?

プライベートアドレスを直結するルールが、広範囲のプロキシルールより前にあることを確認してください。社内ドメインでは会社のDNSが必要な場合があり、公開ドメインの分類ルールを追加するだけでは解決しません。まずシステムプロキシを無効にして接続を比較し、社内アドレス、DNS、既存の企業ネットワークポリシーを確認します。社内ネットワーク全体を安易にリモートノード経由にしないでください。

サブスクリプションを更新すれば、ルーティングルールも更新される?

通常、ノードのサブスクリプションで更新されるのはサーバー設定であり、ローカルのルーティングやドメインデータまで更新されるわけではありません。ノード更新後も、アクティブサーバー、ルーティング設定、カスタムルールを確認してください。ドメイン分類データの更新が必要かどうかは、クライアントの該当するデータ更新機能で別途確認します。

最終的には、内容を把握できるルールだけを残しましょう。プライベートネットワークは直結し、業務上必要な例外を少数追加し、中国本土の分類は直結、それ以外の通信先も明確にします。変更は一度に1項目ずつ行い、変更前の設定を記録してください。用途が分からないルールを増やすより、再現や保守が容易になります。

v2rayN をダウンロードOSに合ったインストーラーを選択