V2Rayのカスタムルーティングルール:domain・ip・geositeの書き方と優先順位
domain、full、regexp、ip、geosite、geoipなどのルールの書き方を整理し、上から順に適用される仕組みやよくある競合を解説。すぐに使える設定例も紹介します。
記事を読む →デバイスに合ったオープンソースクライアントを選び、サブスクリプションの追加からルーティングまで、順を追ってプロキシを設定できます。
クライアント画面の例 · メニューやデフォルトポートはクライアントの設定によって異なります
OSを選択
PCではv2rayN、Androidではv2rayNGがおすすめです。インストール前にOSとCPUアーキテクチャを確認してください。インストーラー、対応条件、更新情報はダウンロードページにまとめています。
クライアントは設定の管理、コアの起動、ローカル接続口の設定を担います。接続に必要なサーバーアドレス、認証情報、サブスクリプションURLは別途用意してください。インストール後にリストが空でも、設定がまだ追加されていないだけで、インストール失敗とは限りません。サブスクリプションに複数のサーバーが含まれる場合は、ひとつを有効な設定として選んでから接続をテストします。
同じサブスクリプションでも、クライアントによって読み込み結果が異なることがあります。対応プロトコル、トランスポート設定、サブスクリプション形式などが理由です。移行前の設定を残し、まずサーバーを1件だけ読み込んで正常に使えるか確認してから、グループ全体を追加しましょう。インストーラーが動くかはデバイスのアーキテクチャ、接続できるかはプロトコルの互換性で決まるため、別々に確認してください。
クライアント設定ガイド
まずリクエストがクライアントに届いているかを確認し、その後で転送方法を設定します。日常的な設定を順番にまとめました。ひとつずつ確認してください。
サブスクリプショングループを使うと、同じ提供元のサーバーをまとめて管理でき、個別の更新や絞り込み、削除が簡単になります。「サブスクリプショングループの設定」を開き、メモと完全なサブスクリプションURLを入力して保存し、「すべてのサブスクリプションを更新(プロキシ経由ではない)」を実行します。現在のネットワークからURLにアクセスできない場合は、既存のプロキシ経由で更新する必要があるか確認してください。更新が成功してもサーバーに接続できるとは限りません。有効なサーバーを選び、実際のリクエストでテストしましょう。設定を1件ずつ貼り付けるより、グループで管理するほうが継続的な運用に便利です。ただし、サブスクリプションURLはアクセス権限を含むため、スクリーンショットや公開ログに載せないでください。
サブスクリプショングループ → サブスクリプショングループの設定
サブスクリプショングループ → すべてのサブスクリプションを更新(プロキシ経由ではない)
システムプロキシを設定すると、システム設定に従うアプリのリクエストがクライアントのローカル待ち受けポートへ送られます。利用可能なサーバーを選び、「システムプロキシを自動設定」にしてから、ブラウザーで目的のサイトにアクセスして確認してください。すべてのアプリを一括して制御する機能ではないため、独自のネットワーク設定を使うプログラムは直接接続する場合があります。TUNを有効にするより影響範囲を把握しやすく、初期設定に適しています。ローカルポートが別のクライアントに使われている場合は、重複しているプロセスを終了してください。終了前にシステムプロキシを解除すると、クライアント終了後もアプリが無効な接続先を参照する事態を防げます。
システムプロキシ → システムプロキシを自動設定
設定 → パラメーター設定 → ローカル待ち受けポート
システムプロキシ → システムプロキシを解除
ルーティングは、コアに届いたリクエストをプロキシ経由、直接接続、またはブロックのどれにするか決める機能です。システムプロキシが扱う通信の入口とは別の層にあります。普段は「中国本土を迂回」から始め、対象のドメインやアドレスを分類して設定します。特定のサイトを調べるときは、一時的に「全般」に切り替えて結果を比較できます。「全般」にしても、システムプロキシを無視するプログラムが自動的に接続されるわけではありません。アプリにプロキシアドレスをひとつ設定するより、ルーティングルールのほうが細かな通信要件を指定できます。カスタムルールはできるだけ具体的にし、先に一致したルールが後続のルールより優先される場合がある点にも注意してください。
ルーティング → 中国本土を迂回 / 全般
設定 → ルーティング設定
ルールの確認:対象ドメイン → 一致するルール → アウトバウンド
TUNは仮想ネットワークインターフェースを通じて通信を取り込み、システムプロキシに従わないアプリに適しています。有効にする前にシステムプロキシでサーバーの利用可否を確認し、クライアントの案内に従って権限を許可し、必要なコンポーネントが準備できているか確認してください。システムプロキシよりもシステムルーティングやDNSへの影響が大きく、ほかのVPN、仮想ネットワークアダプター、ネットワーク管理ソフトと競合しやすくなります。有効化後にLANへ接続できなくなった場合は、まずTUNを無効にして比較し、複数のルーティングルールを同時に変更しないでください。デスクトップとAndroidではVPN接続の仕組みが異なるため、設定項目や許可手順をそのまま流用できません。
メイン画面 → TUNを有効化
確認する順序:サーバーの利用可否 → 権限 → DNS → ルーティング
問題の切り分け:TUNを無効にして再テスト
GUIクライアントは操作画面を担当し、コアは設定の解析と接続の確立を担当します。v2rayNは設定の種類に応じて適切なコアを使用できますが、選択肢は現在インストールされている内容によって異なります。切り替える前に、サーバーで使われているプロトコル、トランスポート、安全性に関する設定を確認してください。名前だけで互換性を判断するのは避けましょう。クライアントを何度も切り替えるより、起動ログを確認するほうが「未対応のフィールド」や設定の解析エラーを早く見つけられることがあります。v2rayNGはXrayコア、v2flyNGはV2Flyコアを使用します。異なる実装のため、一方で使える拡張オプションが、もう一方でも使えるとは限りません。
設定 → パラメーター設定 → Core タイプ
更新を確認 → クライアントとコアの更新を確認
実行ログ → 設定の解析 / コアの起動情報
複数のプラットフォームで使う場合、通常はサブスクリプションを再登録するか、設定をエクスポートして読み込みます。クライアント内蔵のクラウド同期を利用する方法ではありません。移行時は、再利用できるサーバー設定とデバイス固有の設定を分けて考えましょう。サブスクリプションURLは許可された範囲で再入力できますが、ローカルポート、システムプロキシ、TUNの権限は新しいデバイスで個別に設定する必要があります。プログラムのフォルダーを丸ごとコピーするより、パスやアーキテクチャの違いを見つけやすい方法です。ルーティングルールを引き継げるかは、両方の環境で使える構文かどうかによります。読み込み後はサーバーを1件ずつ確認し、DNSとルーティングをテストして、エクスポートしたファイルを安全に保管してください。
元のデバイス:設定をエクスポート / サブスクリプションURLを保存
新しいデバイス:設定を読み込む → サーバーを選択 → 接続を確認
個別に設定:ローカルポート / システムプロキシ / TUNの権限
画面に「接続成功」と表示されても、段階ごとに確認が必要です。コアが起動したことは、設定が少なくとも実行段階まで進んだことを示します。ローカルポートが待ち受けを開始すれば、アプリから接続できる入口ができています。目的のサイトにアクセスできて初めて、今回のリクエストが通る経路全体を利用できたと判断できます。起動ログが表示されただけで、すべてのサーバーやアプリが正常だとは限りません。
設定を変更するたびに一項目だけ変更し、変更前の状態も記録しておきましょう。ブラウザーは使えるのに特定のアプリで接続できない場合は、そのアプリがシステムプロキシに従うかを確認します。どのアプリも使えない場合は、有効なサーバー、ポート、コアのログを確認してください。入口の問題と転送の問題を分けると、プロトコル、DNS、ルーティングを同時に切り替えるより原因を特定しやすくなります。プラットフォームごとの確認手順は全プラットフォーム向けインストール・設定ガイドをご覧ください。
初回設定の手順
まず設定を追加し、次に通信の入口を設定して、最後に動作を確認します。まずは変更を最小限にして接続を確立し、その後でルーティングやTUNを追加してください。
利用できるサブスクリプションURLを用意し、v2rayNの「サブスクリプショングループの設定」に保存してから更新します。サーバー一覧に表示されたら、使いたい項目を選んで有効なサーバーに設定してください。Androidでは、v2rayNGの追加メニューから設定を読み込むかサブスクリプションを管理し、内容を更新できます。QRコード、クリップボード、サブスクリプションURLはそれぞれ異なる追加方法です。手元の情報に合った方法を選んでください。
一覧が空の場合は、URLが完全か、期限切れでないか、更新ログに取得失敗と表示されていないか確認してください。同じURLを何度も追加して、重複したグループを作らないようにしましょう。重複しても接続性は向上せず、テスト結果を誤った設定と結び付けやすくなります。サブスクリプションURLはアクセス用の認証情報として扱い、安全に保管してください。
デスクトップではまず「システムプロキシを自動設定」を選び、ルーティングは「中国本土を迂回」から始めます。Androidでは接続ボタンをタップし、システムVPNの許可を確認してください。すでに別のVPNが動作している場合は、どのアプリが接続を制御しているか先に確認します。ここまで設定すると、クライアントが対象アプリのリクエストを受け取れるようになります。
初回設定で、すべてのスイッチを同時に有効にする必要はありません。ブラウザーでシステムプロキシが使えるなら、まずその状態で試してください。システムプロキシを無視するアプリも接続する必要がある場合に、TUNを検討しましょう。複数のプロキシクライアントを同じデバイスで実行すると、ローカルポートを取り合ったり、システム設定を上書きしたりすることがあります。動作確認では、使用中のクライアントをひとつに絞ると結果を判断しやすくなります。
目的のサイトを開き、クライアントのログに対応する接続が記録されているか確認します。遅延テストは現在のネットワークで応答を比較するための目安です。テストに失敗してもサーバーがまったく使えないとは限らず、成功してもすべてのサイトにアクセスできる保証にはなりません。実際のアプリからリクエストし、ルーティング結果が想定どおりか確認してください。
タイムアウトが発生した場合は、サーバーアドレス、ポート、ネットワークを確認します。ハンドシェイクに失敗する場合は、時刻、TLS、設定パラメーターを確認してください。ポートが使用中なら、重複したプロセスを終了します。確認後は、正常に使えた設定の組み合わせを記録しておきましょう。今後の更新や移行では、まずこの動作確認済みの設定に戻し、その後で変更をひとつずつ追加してください。
オープンソースエコシステムとクライアントの役割
V2Rayはエコシステム全体を指す総称として使われることがあります。ダウンロード時は、GUIクライアント、プロキシコア、サーバー設定を区別してください。それぞれ役割が異なります。
Project Vは、モジュール型ネットワークプロキシツールを中心とする技術体系を築きました。V2Rayはその中でも広く利用されている実装です。V2FlyコミュニティはV2Ray関連の実装とドキュメントの保守を続け、Xrayはこの技術的な流れから独立したコアプロジェクトとして発展しました。共通する概念や設定方法もありますが、機能、トランスポート、設定の詳細は完全には一致しません。自由に置き換えられる同一のプログラムとは考えないでください。
GUIクライアントを使う場合、コアの違いは特定のプロトコルや拡張オプションを認識できるか、生成された設定が現在のコアの要件に合うかに表れます。サーバーから提供されたパラメーターは、クライアントで使うコアに合わせてください。見慣れないトランスポート名があれば、まず対応状況を確認してから、クライアントを更新するかコアを変更するか判断します。同じインストーラーを何度も入れ直すのは避けましょう。
v2rayNはデスクトップ向けのオープンソースGUIクライアントです。サーバー管理、サブスクリプションの更新、システムプロキシ、ルーティングなどを担い、PCで接続を一元管理するのに適しています。v2rayNGはAndroid向けで、Xrayコアを使用し、スマートフォンでの設定読み込みやVPN接続によく使われます。v2flyNGもAndroid向けでV2Flyコアを採用しています。既存の設定がV2Fly系に適合する場合の選択肢になります。
これら3つのクライアントは、3種類のサーバーサービスではありません。インストールしただけで接続用のパラメーターが提供されることもありません。画面上でローカル設定を作成・管理し、実際のリモート接続は読み込んだ内容に基づいて行います。同じクライアント名でもサブスクリプションの提供元が同じとは限りません。また、サブスクリプションに特定のプロトコルが含まれていても、すべてのクライアントでその拡張機能を利用できるとは限りません。
オープンソースとは、該当するライセンスのもとでソースコードが公開されていることを意味します。使用、変更、再配布には各プロジェクトのライセンス条件が適用されます。V2RayとXrayのコアはMPL-2.0ライセンス体系を採用しています。クライアントとその依存コンポーネントについては、それぞれに付属するライセンスを確認してください。オープンソースライセンスはコードの利用条件を定めるものであり、サブスクリプションの提供元、サーバーの利用権限、ローカルのプライバシー設定に関する判断に代わるものではありません。
コミュニティでは通常、GUI、コア、ドキュメントをそれぞれ別に保守しています。機能が先にコアへ追加され、後からクライアントに設定項目が実装される場合もあれば、新しい設定形式が必要な場合もあります。更新情報を読む際は、どの層に変更があったか確認してください。画面に対応する項目がないからといって、プロトコルが使えないとは限りません。また、ほかのコアの設定項目を現在の設定にそのまま流用しないでください。
クライアントの更新、コアの更新、サブスクリプションの更新は、それぞれ異なる操作です。クライアントの更新は画面や管理機能に影響し、コアの更新は接続機能や設定の解析に影響します。サブスクリプションの更新では、サーバー一覧やパラメーターが置き換わります。問題を調べる際は、直前にどの更新を行ったか記録すると原因を絞り込みやすくなります。同じテスト中にインストーラー、サブスクリプション、ルーティングルールをまとめて変更しないでください。
更新前に必要な設定とカスタムルールを保存し、更新後は以前使えていたサーバーをひとつテストします。その後、よく使うサイト、LANへのアクセス、アプリのプロキシ動作を確認してください。特定のアプリだけで問題が起きる場合は、まず通信の入口を確認します。起動時に設定エラーが出る場合は、コアの互換性を確認してください。当サイトではダウンロード先とGUIの操作手順をまとめています。接続サービスそのものは、ユーザーが選んだ設定の提供元によって用意されます。
設定の記録とトラブル対処
基本接続を確認したら、状況に合った記事をご覧ください。ルーティングの記事ではリクエストの行き先を、ログの記事では失敗箇所を確認できます。入門向けのQ&Aでは、基本操作の順番をすばやく振り返れます。
domain、full、regexp、ip、geosite、geoipなどのルールの書き方を整理し、上から順に適用される仕組みやよくある競合を解説。すぐに使える設定例も紹介します。
記事を読む →Xrayコアのログ構造をログレベル別に解説し、ポートの競合、ハンドシェイク失敗、タイムアウトなどの代表的なエラーを読み解きます。設定、ネットワーク、サーバーのどこに問題があるかを切り分けられます。
記事を読む →v2rayNを初めて使うときによくある10の疑問をまとめました。サブスクリプションURLの入力方法、システムプロキシの選び方、ブラウザーで接続できない場合など、ひとつずつ確認できる手順を紹介します。
記事を読む →