サブスクリプションごとにグループを作成し、ノード名の正規表現で取り込む項目を絞り、グループ単位で更新・確認します。複数のサブスクリプションを管理するv2rayNユーザー向けに、グループ、リスト検索、サブスクリプションの絞り込み、ルーティングの違いを整理。実際の名称を使って検証できる正規表現の例も紹介します。
まず確認:グループ分けとルーティングは別の機能
サブスクリプションのURLからは、通常、複数のサーバー設定が取得されます。v2rayNはプロトコル、アドレス、ポート、認証情報を読み取り、サーバー一覧にまとめます。複数の提供元を同じ一覧で見ると、地域名や倍率の表示が重複しやすく、更新に失敗した際も原因となった提供元を特定しにくくなります。
グループ分けで管理するのは設定の所属先、つまり各サーバーをどのサブスクリプションで管理するかです。グループを作っても、ブラウザーの通信とダウンロードツールの通信が自動で別々のグループを通るわけではありません。また、グループ名に「予備」と付けても、自動で障害時に切り替わることはありません。アプリの通信経路は、システムプロキシ、TUN、ルール設定、現在選択中のアウトバウンド設定で決まります。
提供元ごとにグループを作成
おすすめサブスクリプションごとにグループを分け、グループ内でノード名から地域を絞り込みます。更新エラー、URLの期限切れ、ノードの変更を追跡しやすくなります。
向いているケース:複数のサブスクリプションを使い、メインと予備の提供元を併用する場合
地域ごとに重複して取り込む
同じURLを複数のグループに登録し、それぞれで地域を絞り込みます。独立した一覧を作れますが、同じサブスクリプションへのリクエストや絞り込み・更新の管理負担が増えます。
向いているケース:地域ごとに固定の一覧が必要で、重複管理を許容できる場合
一時的に一覧を検索
現在の一覧から名前をすばやく検索する方法です。サブスクリプションから取得する内容は変わりません。検索条件を消して一覧全体を確認し、非表示と削除を混同しないようにしましょう。
向いているケース:一時的にノードを探したいが、取り込み範囲は変えたくない場合
VMessとVLESSはノード設定で使われるプロトコルであり、グループの種類ではありません。サブスクリプション名を正規表現で絞り込んでも、プロトコルは変換されません。名称に「VLESS」とあっても、サーバー設定を開いて実際のプロトコルと伝送パラメーターを確認してください。
サブスクリプショングループを作成する:提供元ごとに1件登録
以下では、デスクトップ版v2rayNの一般的な日本語画面を想定して説明します。バージョンによってボタンの位置や表記が多少異なる場合があります。「サブスクリプショングループ設定」、サブスクリプションURL、別名のフィルターといった項目を確認し、サーバー編集画面と取り違えないようにしてください。
-
グループ設定を開く
メイン画面で「サブスクリプション」→「サブスクリプショングループ設定」を開き、「追加」または「+」からサブスクリプションを登録します。初めて整理するときは、まず1件だけ追加し、正常に更新できることを確認してから次を登録してください。
-
提供元の名前を入力
メモ欄には「メイン-A」や「予備-B」などと入力します。URL欄にはプロバイダーから提供されたサブスクリプションURLをそのまま貼り付けてください。アカウントのログインページや、単一ノードの共有リンクは使用しないでください。
-
最初はフィルターを空欄にする
初回の取り込みでは「別名の正規表現フィルター」を空欄のまま保存します。先にURLが有効で内容を解析できることを確認すれば、サブスクリプションの不具合とフィルターの誤りが同時に起こるのを防げます。
-
現在のグループを更新
メイン画面に戻り、新しいグループを選択します。「サブスクリプション」メニューから「現在のサブスクリプションを更新(プロキシを使用しない)」に相当する操作を実行してください。現在のネットワークから接続できない提供元の場合は、プロキシ経由で更新する項目を選びます。
-
確認して次のグループを追加
ログで更新の成功を確認し、グループ内にサーバー設定が表示されることを確かめます。同じ手順で「予備-B」を作成し、それぞれ個別に更新してください。最初からすべての提供元を一括更新すると、エラーの原因を特定しにくくなります。
自動更新の間隔を設定できる場合は、手動更新が安定してから、提供元ごとに適切な頻度を設定してください。「常に最新」にするために何度もリクエストする必要はありません。サブスクリプションの更新は設定を取得する処理であり、リモートサーバーの障害を直したり、サービスアカウントの通信量や有効期限を変更したりするものではありません。
正規表現で絞り込む:地域を残して、案内項目を除外
サブスクリプション設定の「別名の正規表現フィルター」は、通常、別名、つまり一覧に表示されるノード名を照合します。一致した項目が残る仕組みです。サーバーの実際の所在地や回線品質を判定する機能ではありません。名称に目的のキーワードがなければ、サーバーが対象地域にあっても除外されることがあります。
まず単純な「OR」条件で動作を確認してから、除外条件を追加します。以下の「香港」「日本」「期限切れ」などは、説明用のノード名にすぎず、実在するプロバイダーのノードや利用可能性を示すものではありません。
| 目的 | 正規表現 | 説明 |
|---|---|---|
| 日本語の地域名を残す | 香港|日本|シンガポール | いずれかの語が名称に含まれていれば一致します。名称全体が同じである必要はありません。 |
| 英字の大文字・小文字を区別しない | (?i)香港|日本|シンガポール|\b(HK|JP|SG)\b | 大文字と小文字を区別しません。英字の略称には単語境界を使い、長い単語の一部に誤って一致するのを防ぎます。 |
| 指定した接頭辞だけを残す | ^(香港|日本)- | 「香港-」または「日本-」で始まる名称だけに一致します。 |
| 案内用の項目を除外する | ^(?!.*(残り通信量|期限切れ|公式サイト)).*$ | 名称全体にこれらの語が含まれない場合に一致します。それ以外の名称は引き続き対象になります。 |
| 地域の指定と除外条件を組み合わせる | ^(?!.*(残り通信量|期限切れ|公式サイト)).*(香港|日本).*$ | 案内用の項目を先に除外し、次に香港または日本を含む名称に絞ります。 |
|は「または」、^は先頭、$は末尾、.*は任意の長さの文字列を表します。否定先読み(?!...)は条件に一致する項目を除外するために使います。これらは対応する正規表現構文を受け付けるv2rayNの別名フィルター向けです。通常のキーワード検索欄にはそのまま使えません。
- 入力するのは式だけ:JavaScriptのように前後をスラッシュで囲む必要はありません。
香港|日本と入力し、/香港|日本/とはしないでください。 - 記号のエスケープに注意:文字としての
[A]に一致させるには\[A\]と入力します。小数点に一致させるには\.とします。 - 実際の名称を確認:
\bHK\bは「HK-01」には一致しますが、「HK01」には一致しない場合があります。まずプロバイダーの命名形式を確認し、最初から条件を複雑にしないでください。 - 必要な項目まで除外しない:通常のサーバー名にも「期限切れ」などの語が含まれる場合があります。除外する前に実例を確認してください。除外語のリストがすべての提供元に使えるとは限りません。
実際のサブスクリプションを更新する前に、固定サンプルで検証
正規表現にエラーがなくても、期待どおりに絞り込めるとは限りません。残したい名称と除外したい名称をいくつか書き出し、一つずつ結果を確認しましょう。「残したいもの」だけでなく「誤って削除してはいけないもの」も決めておくと、条件を複雑にしすぎずに済みます。
正規表現:^(?!.*(残り通信量|期限切れ|公式サイト)).*(香港|日本).*$
香港-01 → 残す
日本-02 → 残す
日本-予備 → 残す
シンガポール-03 → 除外:対象地域が含まれない
香港-期限切れ通知 → 除外:「期限切れ」を含む
公式サイトのURL → 除外:「公式サイト」を含む
上記の件数は、この手動サンプルに対する確定結果です。プロバイダーのノード数や接続テストのデータではありません。対象のサブスクリプションに式を設定し、「別名の正規表現フィルター」を保存してから、現在のサブスクリプションを更新します。設定を保存しただけでは、取り込み済みの一覧が再処理されない場合があります。
- メイン画面の一時的な検索条件を解除し、対象のサブスクリプショングループに切り替えます。複数の絞り込み条件が重なるのを防げます。
- 現在のサブスクリプションを更新したら、残る想定のサーバーと除外される想定の名称がそれぞれ1件以上あるか確認します。
- グループが意図せず空になった場合は、まず正規表現を
香港|日本に戻します。それでも結果がなければフィルターを空欄にして、もう一度更新してください。 - 絞り込み結果を確認したら、サーバーを1つ選んで接続をテストします。「更新成功」を実際の接続確認の代わりにしないでください。
サブスクリプションの更新失敗とノードの接続失敗を見分ける
サブスクリプションの更新ではサブスクリプションサーバーにアクセスし、ノードへの接続ではプロキシサーバーにアクセスします。使われるドメインやポートは異なる場合があります。サブスクリプションを取得できてもノードがタイムアウトする場合は、ノード設定、サービスの状態、ローカルネットワークを確認してください。ノードには接続できるのに更新に失敗する場合は、サブスクリプションURLと更新リクエストの通信経路を確認します。
更新は成功したのに、グループが空なのはなぜ?
まず一覧の検索条件を解除し、「サブスクリプション」→「サブスクリプショングループ設定」で対象グループの別名の正規表現フィルターを空欄にします。保存して再度更新してください。この状態で項目が表示されるなら、原因はフィルターです。それでも空なら、取得した内容を解析できるか、提供元から実際にサーバーが返されているかを確認します。
プロキシを使わない更新がタイムアウトする場合は?
まず、利用可能と分かっているサーバーを1つ選んでコアを起動します。次に「サブスクリプション」メニューから、現在のサブスクリプションを「プロキシ経由」で更新する項目を選びます。利用可能なサーバーがない場合、まだ正常に取り込めていない新しいサブスクリプションを使って自力で更新することはできません。URLへの接続性を改善するか、提供元に問い合わせてください。
ログにローカルプロキシへの接続拒否が表示される場合
コアが実行中か確認し、「設定」→「パラメーター設定」でローカルの待ち受けポートを確認します。たとえばログに127.0.0.1:10808へのアクセスが記録されている場合、該当するポートで待ち受けているか、プロキシのプロトコルが一致しているかを確認してください。10808はあくまで例です。実際の設定を参照してください。
ブラウザーでサブスクリプションURLを開くとログイン画面が表示される場合
プロバイダーの管理画面から、サブスクリプション専用のURLをコピーし直してください。管理画面のURLは使えません。ログイン画面、アクセス確認ページ、エラーメッセージが開いても、クライアントに取り込めるノードデータとは限りません。ログを共有するときはURL内のトークンを隠してください。
削除したノードが更新後に再び表示されるのはなぜ?
サブスクリプションから同じ項目が再び返されているためです。ローカルで手動削除しても提供元の内容は変更されません。特定の名称を継続して非表示にするには、そのグループの別名の正規表現フィルターを変更してから更新します。一時的に見たくないだけなら、手動で何度も削除せず、一覧検索を使ってください。
グループを整理する:提供元を明確にして、重複管理を減らす
日常の管理では「提供元を明確にする」「フィルターはシンプルにする」「変更を元に戻せるようにする」ことを意識しましょう。メインと予備で同じ命名規則を使うのは便利ですが、名称が同じだからといって設定も完全に同じとは限りません。ドメイン、ポート、プロトコル、伝送パラメーター、認証情報のいずれかが違えば、別の接続先である可能性があります。
- サブスクリプションURLを変更する場合は、既存のグループを編集:提供元は同じで、トークンやURLだけを更新する場合は、既存のサブスクリプション設定を変更するのがおすすめです。変更前に古いメモとフィルター式を控え、新しいURLが有効だと確認してから古い情報を整理してください。
- 手動で追加したノードは別に管理:サブスクリプションのノードを直接編集して、カスタムパラメーターを長期保存するのは避けてください。次回の更新で設定が再作成または上書きされることがあります。保持したい場合は、サブスクリプションとは別の設定として管理し、認証情報の取り扱いにも注意してください。
- 一括更新の前に各グループを確認:初期設定やトラブルシューティングでは「現在のサブスクリプションを更新」を使います。すべての提供元が安定してから、日常的な更新に「すべてのサブスクリプションを更新」を使ってください。ログにエラーがある場合は、該当する提供元ごとに対処します。
- 並べ替えを速度測定と混同しない:名前順の並べ替えは一覧を見やすくするだけです。接続テスト、ダウンロード速度、目的のWebサイトへのアクセスは別々の指標です。名称に「高速」や「専用線」とあっても、それだけで性能を判断できません。
- 別の端末では設定を確認し直す:この記事ではデスクトップ版v2rayNのグループ管理を説明しています。Android版のv2rayNGはXrayコア、v2flyNGはV2Flyコアを使用します。メニュー、フィルター項目、設定のエクスポート形式がデスクトップ版と完全に同じとは限りません。
手順はシンプルに保ちましょう。提供元ごとにグループを作成し、初回はフィルターなしで取り込み、実際の名称で正規表現を検証してから現在のグループを更新し、最後に接続を確認します。リストのノイズを減らせるだけでなく、更新時の問題がURL、フィルター、ノードのどこにあるかもすばやく判断できます。