v2rayNの国内外トラフィック分岐:プリセットルールとホワイトリスト/ブラックリストの設定方法

v2rayNのルーティング設定をもとに、「中国本土を回避」などのプリセットルールの動作を解説。ホワイトリストとブラックリストを比較し、用途別のルール構成と確認方法を紹介します。

この記事の要点

この記事は、サブスクリプションの追加、ノードのテスト、システムプロキシの有効化を済ませ、国内外の通信経路をさらに制御したいv2rayNユーザー向けです。プリセットルーティングの処理順、ホワイトリストとブラックリストの違い、カスタムルールの書き方、接続ログで分岐結果を確認する方法を解説します。

国内外トラフィック分岐の処理フロー

v2rayNの分岐は、サイト名を単純に判定してノードを切り替える仕組みではありません。アプリのリクエストはまずローカルプロキシポートに入り、Xrayコアが宛先ドメインまたは宛先IPを識別して、ルーティングルールを上から順に照合します。最初に一致したルールによって、プロキシ経由、直接接続、またはブロックのいずれかが決まり、どのルールにも一致しない場合は、ルーティング設定のデフォルト出口が使われます。

一般的なデスクトップ設定では、SOCKSローカルポートは10808、HTTPローカルポートは10809です。システムプロキシを有効にすると、ブラウザーやシステムプロキシ対応アプリは通常これらの入口へリクエストを送ります。TUNモードはより広い通信を対象にできますが、後続のルーティング判定は同じで、まず照合可能な宛先情報を取得し、ルールを適用してから出口を選択します。

アプリがリクエストを開始ローカルポートが受信ドメインとアドレスを識別ルールを順に照合接続先の出口を選択

ドメインルールとIPルールでは、適用される条件が異なります。ブラウザーがドメイン名でリクエストする場合、domaingeosite、ドメインサフィックスのルールを直接判定できます。IPしか取得できない接続では、主にipgeoip、または名前解決後のアドレスを使います。ルーティングポリシーがIPIfNonMatchの場合、ドメインルールに一致しなければコアがIPを解決し、IP系ルールを続けて照合します。

照合対象 一般的な書き方 適した対象 注意点
完全修飾ドメイン名 full:api.example.com 固定API、単一ホスト 完全一致のみ
ドメインサフィックス domain:example.com 親ドメインとサブドメイン カスタムサイトルールに適する
ドメイン集合 geosite:cn カテゴリ別に管理するドメイングループ ローカルルールデータの更新が必要
IP集合 geoip:cn 対象サーバーのアドレス範囲 アドレスの所在とサービスの所在は一致しない

「中国本土を回避」とホワイトリスト/ブラックリストの違い

v2rayN 7.xのルーティング設定には通常、プリセットが用意されており、複製して編集することもできます。マイナーバージョンによって表示名は多少異なりますが、名前だけで判断せず、ルールの内容とデフォルト出口も確認してください。「中国本土を回避」では通常、プライベートネットワーク、中国本土のドメイン、中国本土のIPを直接接続に振り分け、どのルールにも一致しない接続をプロキシ経由にします。

この方式では、中国本土向けの宛先が明確な直接接続リストになります。画面や解説では、Whitelistの考え方として扱われることがあります。既知の中国本土向け宛先とプライベートアドレスは直接接続し、未知の宛先はデフォルトでプロキシを使います。新しく登場した海外ドメインが分類データにまだ登録されていなくてもプロキシを使える可能性が高い一方、分類から漏れた中国本土のサービスまでプロキシに送られることがあります。

ブラックリスト方式は逆です。明示的に登録した海外向け宛先、特定のドメイン、特定のIPだけをプロキシに送り、それ以外はデフォルトで直接接続します。未知の宛先がプロキシに入る可能性を抑えられるため、少数の固定サービスだけを利用する環境に適しています。ただし、リストの網羅性に依存します。宛先ドメインの変更、新しいAPIの追加、第三者リソースの利用によって、トップページは開いてもログイン、画像、APIリクエストだけが直接接続になることがあります。

中国本土を回避

プライベートアドレス
直接接続
中国本土のドメイン
直接接続
中国本土のIP
直接接続
未一致の宛先
プロキシ

普段のデスクトップ利用に適しており、中国本土のサービスが遠回りするのを防ぎます。

ブラックリスト方式

指定した海外ドメイン
プロキシ
指定したアドレス集合
プロキシ
プライベートアドレス
直接接続
未一致の宛先
直接接続

対象範囲が固定され、ルールを継続的に管理できる環境に適しています。

結論:デフォルト出口を基準に方式を選ぶ

未知の海外向け宛先も自動的にプロキシへ送るなら「中国本土は直接接続、それ以外はプロキシ」を選びます。明確に指定した少数の宛先だけをプロキシへ送るなら「指定した宛先はプロキシ、それ以外は直接接続」を選びます。実際の動作を判断するうえでは、方式名よりデフォルト出口の設定が重要です。

グローバルプロキシは、細かなトラフィック分岐を行う方式ではありません。ほとんどの接続を一括してプロキシへ送るため、ノードが利用可能かを一時的に確認する用途に向いています。グローバルモードは正常なのに分岐モードで問題が起きる場合、原因は通常、VMessやVLESSノード自体ではなく、ルールの一致、DNS名前解決、またはルールデータにあります。確認後は分岐に戻し、中国本土向けのダウンロード、動画、LAN接続が不要に迂回しないようにします。

v2rayNで管理しやすい分岐設定を作る

変更を始める前に、ノードが正常に接続できることを確認し、現在使える設定を記録します。操作手順はv2rayN 7.xを基準にしています。「設定」→「ルーティング設定」を開き、要件に近いプリセットを選んで新しいカスタム設定として複製します。元のプリセットを残しておけば、設定ミスの際にすぐ戻せるほか、ルールの順序や出口タグも比較できます。

  1. デフォルト出口を決める。国内外のサイトを普段使いする場合は、未一致の宛先をプロキシへ送る構成が一般的です。固定された業務用宛先には、未一致の宛先を直接接続にする構成が適しています。
  2. プライベートネットワークの直接接続を維持する。geoip:private、LANドメイン、本体アドレスを上位の直接接続ルールに入れ、ルーター管理画面、プリンター、社内ネットワークのサービスへアクセスできるようにします。
  3. 中国本土向けカテゴリを追加する。geosite:cngeoip:cnを直接接続の出口へ割り当て、ドメインの解決方式に応じて両方の照合を有効にする必要があるか判断します。
  4. 明示的な例外を追加する。必ずプロキシまたは直接接続にしたいサービスのドメインは、カテゴリルールより前に置きます。広範な集合に先に一致するのを防ぐためです。
  5. 保存して設定を再読み込みする。新しい設定を選択したらコアを再起動し、接続テストを行います。ルールを保存しただけで現在の設定に切り替えていない場合、既存の通信経路は変わりません。
7.x
この記事で扱う画面の基準
10808
一般的なSOCKSポート
10809
一般的なHTTPポート
3種類
プロキシ、直接接続、ブロックの出口

以下の構成はXrayのルーティング順序を説明するためのものです。v2rayNの画面を介さず実行中の設定を直接上書きすることはおすすめしません。クライアントが設定を再生成すると、手動変更が置き換えられる可能性があるためです。重要なのは、プライベートアドレスを優先して直接接続すること、明示的な例外をカテゴリルールより前に置くこと、中国本土向けカテゴリを直接接続にすること、最後にデフォルトルールで残りの接続を処理することです。

{
  "domainStrategy": "IPIfNonMatch",
  "rules": [
    {
      "type": "field",
      "ip": ["geoip:private"],
      "outboundTag": "direct"
    },
    {
      "type": "field",
      "domain": ["domain:service.example"],
      "outboundTag": "proxy"
    },
    {
      "type": "field",
      "domain": ["geosite:cn"],
      "outboundTag": "direct"
    },
    {
      "type": "field",
      "ip": ["geoip:cn"],
      "outboundTag": "direct"
    }
  ]
}

よくある用途別のルール構成

家庭のデスクトップ環境では、中国本土のWebサイト、海外サービス、LAN機器、システムのバックグラウンド通信を同時に扱うことが一般的です。「プライベートネットワークは直接接続、中国本土向けは直接接続、それ以外はプロキシ」を基本にし、誤判定された少数の宛先だけ明示的な例外を追加する方法をおすすめします。中国本土向けの動画やソフトウェアのダウンロードを現地経路に保ちつつ、分類データにまだ登録されていない新しいドメインが接続できなくなる可能性も抑えられます。

リモートワーク環境では、社内ネットワーク、DNSサフィックス、専用アドレスを最優先にします。社内サービスがプライベートアドレスへ解決される内部ドメインを使っている場合、geoip:privateだけではドメイン解決後まで一致しないことがあります。domain:corp.exampleのような明示的な直接接続ルールを追加すると、動作が分かりやすくなります。企業が定めるネットワークポリシーを、汎用プリセットより優先してください。

ケース1:中国本土向けサービスは直接接続、それ以外はプロキシ

ケース2:固定された業務サービスだけプロキシを使う

ケース3:単一ドメインの誤判定を修正する

現象 ルールの位置 対処方法
中国本土のサイトがプロキシへ送られる 中国本土向けカテゴリの前 明示的な直接接続ドメインを追加
対象サイトが依然として直接接続になる 中国本土向けカテゴリの前 明示的なプロキシドメインを追加
Webページは開くが画像の読み込みに失敗する メインドメインのルール付近 リソースドメインとAPIドメインを追加
LAN機器にアクセスできない ルールリストの先頭 プライベートアドレスと内部ドメインを直接接続

結論:例外ルールは狭い範囲に保つ

完全修飾ドメイン名または明確なサフィックスを優先して追加し、1つのAPIを直すために広すぎるドメイン集合全体をプロキシへ変更しないでください。範囲を小さくするほど、後から原因を調べやすくなり、中国本土向けのダウンロードやLAN接続への影響も抑えられます。

ログによる検証と分岐トラブルシューティング

トラフィック分岐の設定は、出口アドレスの画面だけでは判断できません。1つのWebページでも、本文、画像、スクリプト、認証API、コンテンツ配信ドメインへ同時にリクエストするため、リクエストごとに異なるルールへ一致することがあります。検証時はv2rayNの接続情報またはコアログを開き、対象ドメイン、対象ポート、一致した出口、失敗理由を記録して、カスタムルールと一つずつ照合してください。

固定のテスト対象を用意することをおすすめします:中国本土のWebページ5件、プロキシが必要なWebページ5件、LANアドレス2件、ログインAPIに依存するアプリ2件です。ルールを保存してコアを再起動し、アプリの接続を一つずつ切断して再アクセスします。ブラウザーでは、既存のタブを閉じてから開き直し、接続の再利用によって古い出口が使われ続けるのを防ぎます。

  1. まずグローバルプロキシで使用中のノードをテストし、VMessまたはVLESS接続自体が利用可能か確認します。
  2. カスタムルーティングに戻し、同じ対象が想定した出口へ入るか確認します。
  3. より前のルールに先に一致していないか確認します。
  4. ドメインリクエストが先にIPへ解決され、ドメインルールの照合機会が失われていないか確認します。
  5. ルーティングデータを更新した後にコアを再起動し、同じテスト対象で再確認します。

「中国本土を回避」を選んだのに、中国本土のサイトがプロキシ経由になるのはなぜ?

まず「設定」→「ルーティング設定」で、変更後の設定が現在有効になっているか確認し、ログで対象ドメインと出口を確認します。ドメインが中国本土向けカテゴリに入っていない場合は、カテゴリルールより前に明示的な直接接続ルールを追加し、保存後にコアを再起動します。

トップページは開くのに、ログインや画像の読み込みに失敗するのはなぜ?

メインドメインとAPIドメインは通常異なります。接続ログを開いた状態で一度ログインし、失敗したリクエストに関係する認証、API、リソースのドメインを記録します。それらをメインドメインと同じ出口ルールに追加して、再度テストしてください。

ルーティング設定を切り替えても変化しないのはなぜ?

設定を保存しただけでなく、使用中のルーティングとして有効化されていることを確認します。次にメイン画面からコアを再起動し、古い接続を再利用しているアプリのウィンドウを閉じます。必要に応じて現在のノードを切断してから再接続してください。

ドメインルールは正しいのに、ログにはIPしか表示されないのはなぜ?

ドメイン戦略、DNS設定、トラフィック識別の状態を確認します。宛先IPしか取得できない接続には、対応するgeoipまたはCIDRルールを追加してください。動的アドレスを長期固定の単一IPとして登録するのは避けます。

サブスクリプションを更新すると分岐ルールは上書きされますか?

サブスクリプションの更新で主に更新されるのはサーバー一覧です。カスタムルーティングは通常独立して保存されますが、設定の切り替え、設定のリセット、完全な設定のインポートによって有効な方式が変わる場合があります。更新後に現在のノードと現在のルーティング名を確認すれば判断できます。

DNSも分岐検証の一部です。ドメインの名前解決結果は、ネットワーク、時間、サービスの振り分けによって変わり、同じサービスが中国本土または海外のアドレスを返すことがあります。単一のIPだけで長期的なルールを作ると無効になりやすいため、サービスの識別にはドメインルールを優先し、IPルールはプライベートネットワーク、安定したネットワーク範囲、ドメインルールに一致しない場合の補助判定に使います。

ルールデータは定期的に更新する必要がありますが、更新後も固定のテスト対象で再確認してください。カテゴリ集合の内容が変わると、以前の誤判定が直ることもあれば、デフォルト出口に任せていたドメインが新しいカテゴリに入ることもあります。管理しやすい設定では、明確な例外を少数に保ち、ルール順序を分かりやすくし、再現可能なテスト記録を残します。広範なルールを際限なく追加する方法は避けてください。

クライアント入口 4つのプラットフォーム向けインストーラーを見る