V2Ray初心者の10の疑問:サブスクリプション、ノード、モード、接続確認をまとめて解決

サブスクリプションのインポートからノード選択、システムプロキシ、TUN、ログ確認まで、初回設定の順番に沿って10のよくある問題を解説します。

この記事の概要

この記事は、v2rayN、v2rayNG、v2flyNGを使い始めたばかりの方に適しています。サブスクリプションの入手先、空の一覧への対処、プロトコルの見分け方、プロキシモードの選択、遅延の見方、接続障害の切り分けを扱います。確認を終えると、問題がサブスクリプション、ノード、コア、システム側の取り込み、ネットワーク経路のどこにあるかを判断できます。

サブスクリプションのインポート:URL、更新、ローカル設定

質問1:サブスクリプションURLはどこから入手できますか?

サブスクリプションURLは、ノードサービスの管理画面またはネットワーク管理者から提供されます。クライアント自体が利用可能なノードを生成するわけではありません。通常はHTTPSで始まる専用リンクで、アクセスするとエンコードされたノード一覧や構造化設定が返されます。アカウントのログインURL、サイトのトップページ、単一のVMess共有リンクは、サブスクリプションURLとは別物です。貼り付けを間違えると、更新に失敗したり一覧が空のままになったりします。

サブスクリプションリンクは通常アカウントに紐づいているため、認証情報と同じように管理してください。公開ページに掲載したり、関係のない相手に転送したりしないでください。サービスの管理画面に「サブスクリプションをコピー」と「単一ノードをコピー」がある場合、複数ノードを自動更新したいときは前者を選びます。共有リンクが1件だけなら、クライアントの「クリップボードから複数URLをインポート」などの項目を使います。

質問2:初回のサブスクリプションはどの順番でインポートしますか?

ここではv2rayN 7.xのデスクトップ画面を例にします。まずサブスクリプショングループを作成し、次に更新を実行して、最後にノードを選択します。URLを保存するだけでは現在の接続は自動的に作られません。更新に成功して初めて、ノード情報がグループ一覧に追加されます。

  1. サブスクリプションを追加

    「サブスクリプショングループ」→「サブスクリプショングループ設定」→「追加」を開き、別名を入力して完全なサブスクリプションURLを貼り付け、保存します。

  2. グループを更新

    「サブスクリプショングループ」→「すべてのサブスクリプションを更新」を開き、ステータスバーに更新完了と表示されるまで待ちます。初回更新時は、現在のネットワーク接続を変更しないことをおすすめします。

  3. ノードを選択

    メイン一覧に戻り、対象ノードをダブルクリックするか、右クリックメニューからアクティブサーバーに設定します。その行が選択状態になっていることを確認してください。

  4. コアを確認

    「設定」→「パラメーター設定」→「Core タイプ」を開き、通常のVLESS、VMess、REALITYノードにはXrayコアを優先して使用します。

  5. 接続の取り込みを開始

    まずシステムプロキシモードを選択し、新しいブラウザーウィンドウでテストします。すでに開いている接続は、以前の経路を使い続ける場合があります。

ノード一覧:空白、プロトコル、有効性

質問3:サブスクリプション更新後もノード一覧が空なのはなぜですか?

まず更新メッセージを確認し、更新ボタンを何度も押すのは避けてください。401や403が表示される場合は、リンクの認証情報が失効した、サブスクリプションがリセットされた、またはサーバーにアクセスを拒否された可能性があります。タイムアウトは、名前解決、現在のネットワーク、またはリモートサービスに一時的に到達できないことを示します。更新成功と表示されても件数が0なら、グループのフィルター条件と返された内容を確認します。

v2rayNで「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、そのグループが有効になっていることを確認します。包含・除外キーワードが厳しすぎないかも確認してください。たとえば包含キーワードに「Reality」と入力しているのに、サブスクリプションのノード名が地域名だけの場合、インポート時にすべての情報が除外されます。いったんフィルターを空にして再更新すると、フィルターの問題かサブスクリプション内容の問題かをすばやく切り分けられます。

401/403
認証情報またはアクセス状態
10秒
タイムアウト切り分けの目安
10808
よく使われるローカルSOCKSポート
10809
よく使われるローカルHTTPポート

質問4:ノード名、プロトコル、回線はどう違いますか?

ノード名はサブスクリプション提供者が付けたラベルにすぎず、地域、入口、倍率などを示すために使われます。ノード名だけでプロトコルや回線品質を判断することはできません。VMessとVLESSはクライアントとサーバー間の通信に使うプロトコルです。TCP、WebSocket、gRPCはトランスポート方式で、TLSとREALITYは接続の安全性やハンドシェイクのパラメーターに関係します。インポート後は、クライアントに表示される設定項目を基準にしてください。

ノードが使えるかどうかは、サーバー設定とクライアントのコアが一致しているかで決まります。VLESSの設定では、アドレス、ポート、ユーザーID、トランスポート方式、フロー制御、サーバー名、公鍵などが同時に必要になる場合があります。VMessノードでは、ユーザーID、安全設定、トランスポートパス、TLS設定が一般的です。サブスクリプションで自動インポートした場合、サーバー側のパラメーターを理解しないまま個別に変更することはおすすめしません。

VLESS + REALITY

トランスポート
一般的にはTCP
Flow
xtls-rprx-vision
ポート
一般的には443
主要項目
公鍵とサーバー名

Xrayコアでの処理に適しており、各項目をサーバー設定と完全に一致させる必要があります。

VMess + WebSocket

トランスポート
WebSocket
パス
サーバー側で指定
TLS
サブスクリプションの値に従って有効化
主要項目
ユーザーIDとホスト名

パス、ホスト名、ポートのいずれか1つでも一致しないと、ハンドシェイクに失敗する可能性があります。

プロキシモード:システムプロキシ、TUN、ルーティング

質問5:システムプロキシとTUNモードはどう違いますか?

システムプロキシは、プロキシのアドレスをOSの設定に登録します。ブラウザーやシステムプロキシに対応したデスクトップアプリなら、そのまま利用できます。設定が簡単で影響範囲も明確なため、初回テストの入口に適しています。一部のプログラムはシステムプロキシを無視したり、独自にUDP接続を作成したりするため、その通信は自動的にクライアントへ入りません。

TUNモードは仮想ネットワークインターフェースを通じて、より広い範囲のIP通信を取り込みます。システムプロキシ設定を読み取らないプログラムにも対応でき、UDPやDNSを一元処理したい場面にも適しています。一方、仮想NIC、ルーティングテーブル、DNS転送に関わるため、初回起動時にシステム権限が必要になる場合があります。セキュリティソフト、ほかの仮想ネットワークツール、企業ネットワークのポリシーと競合すると、切り分ける範囲も広くなります。

システムプロキシ

おすすめ

設定手順が短く、サブスクリプション、ノード、コアで接続を確立できるかを最初に確認するのに適しています。ブラウザーでのテストに成功してから、取り込み範囲を広げるか判断しましょう。

適した用途:初回設定、ブラウザー、一般的なデスクトップアプリ

TUNモード

仮想インターフェースでより多くの接続を取り込み、システムプロキシに従わないプログラムにも対応します。ルーティングルールと組み合わせて、直接接続かプロキシかを決められます。

適した用途:全体の取り込み、UDPアプリ、個別のプロキシ設定がないプログラム

手動プロキシ

個々のアプリに127.0.0.1とクライアントの待受ポートを入力します。対象範囲が最も明確で、ポートやプロトコルのエラーも特定しやすくなります。

適した用途:開発ツール、単一アプリの検証、限定的な取り込み

質問6:グローバル、ルール、直接接続モードはどう選びますか?

グローバルモードは通常、取り込まれた接続をすべて現在のプロキシ出口へ送る設定です。ノードを短時間検証するのに適していますが、あらゆるネットワーク環境で固定的に使う設定ではありません。ルールモードは、ドメイン、IP、地域データ、ルールの順序に基づいて、プロキシか直接接続かを選びます。日常利用では一般的な方式です。直接接続モードでは通信がプロキシを経由しないため、取り込みを一時停止したり比較テストをしたりできます。

ルーティングの判断と通信の取り込み方式は別の階層です。システムプロキシまたはTUNは、通信をクライアントへ入れるかどうかを決めます。ルーティングルールは、入ってきた通信をどの出口から出すかを決めます。「クライアントは起動しているのに対象アプリが元のネットワークを使う」場合は、まず取り込みを確認します。「一部のサイトの出口が想定と違う」場合は、ルールの順序、ドメインの一致、出方向タグを確認します。

接続確認:遅延、出口、複数端末の設定

質問7:遅延テストに合格すれば、必ず使えるのでしょうか?

遅延は1つの観測結果にすぎません。クライアントのTCP遅延は通常、対象ポートへの接続を確立できるか測定するだけで、プロトコル認証まで完了するとは限りません。実際の遅延はプロキシリクエストまで実行するため、利用状況に近い結果になりますが、継続的な通信速度を保証するものではありません。ノードに80ミリ秒と表示されても、テスト時の応答が速いだけで、混雑時間帯のスループットが安定するとは限りません。

ノードの利用可否を判断するには、少なくとも3段階の確認が必要です。TCPまたは実際の遅延を測定し、対象ページを開き、出口アドレスが想定どおり変化したことを確認します。遅延値は出るのにページを開けない場合は、プロトコルのハンドシェイク、システムプロキシ、DNS、ルーティングを重点的に確認します。遅延がタイムアウトする場合は、まずノードのアドレス、ポート、現在のネットワーク、サービス状態を確認します。

質問8:通信がプロキシを経由していることをどう確認しますか?

まずクライアントを有効にしていない状態で、出口ネットワークの情報を記録します。次にアクティブノードとシステムプロキシを有効にし、新しく開いたブラウザーウィンドウで信頼できるネットワーク情報確認ページにアクセスします。出口地域や通信事業者は、選択したノードの特徴と一致するはずです。その後クライアントに戻り、リアルタイムログまたは接続情報で、該当するドメイン、対象ポート、出方向タグを確認します。

クライアントのアイコンが動作中になっているだけでは、検証したことになりません。コアプロセスが動作し、ノードが選択され、アプリの通信が待受ポートに入り、ルーティングがプロキシ出口を選ぶという4つの条件が同時に成立する必要があります。ブラウザーに元の出口が表示される場合は、ブラウザー独自のプロキシ設定を使っていないか、システムプロキシのアドレスが127.0.0.1と現在の待受ポートを指しているか確認してください。

おすすめ構成:デスクトップとAndroidで同じサブスクリプションを共有

デスクトップ版(v2rayN)
  • Xrayコアを優先
  • まずシステムプロキシで接続を確認
  • ログでドメインと出方向を確認
  • 決まった周期でサブスクリプションを更新
Android版(v2rayNG)
  • 同じサブスクリプションリンクをインポート
  • 更新後にアクティブノードを再選択
  • 必要に応じてアプリごとのプロキシを設定
  • システムVPNの接続状態を確認

サブスクリプションが同じでも、アクティブノードが自動同期されるわけではありません。両端末で更新が完了したら、それぞれでノードを選択し、接続テストを実行してください。

障害対応:ログ、時刻、クライアントの選び方

質問9:ノードが突然すべて接続できなくなった場合、どう切り分けますか?

複数のノードが同時にすべて失敗した場合は、ノードを1つずつ編集するのではなく、まず共通部分を確認します。端末が基本的なネットワークへ正常にアクセスできることを確認し、サブスクリプションを再度更新してクライアントのコアを再起動します。次にシステム時刻を確認します。TLSとREALITYのハンドシェイクは正確な時刻に依存するため、端末の時刻が大きくずれていると証明書やハンドシェイクの検証に失敗する可能性があります。

ログは問題を特定するための主な手がかりです。connection refusedは通常、対象ポートが接続を受け付けていないか、ネットワークに直接拒否されたことを示します。timeoutは、制限時間内に接続が完了しなかったことを示します。authentication failedが出た場合は、ユーザーID、パスワード、サブスクリプションの更新状態を確認します。failed to find an available destinationが出た場合は、名前解決、ルーティング、対象アドレスを続けて確認します。

  1. 基本ネットワークを確認

    いったんシステムプロキシとTUNを無効にし、通常のWebページへ直接アクセスできることを確認します。ローカルの回線断、ゲートウェイの異常、DNS障害を切り分けます。

  2. システム時刻を同期

    システムの日付と時刻の設定で自動同期を有効にし、タイムゾーンが正しいことを確認してから、クライアントのコアを再起動します。

  3. サブスクリプションを更新

    「サブスクリプショングループ」→「すべてのサブスクリプションを更新」を実行し、401、403、タイムアウト、解析エラーのいずれかが返っていないか確認します。

  4. ノードを切り替え

    同じサブスクリプションに含まれる別地域のノードを選び、グローバルモードで比較します。単一ノードの障害かルールの問題かを切り分けられます。

  5. ログを読む

    最初のエラー付近に記録された時刻、対象ドメイン、ポート、エラーの種類を残し、接続拒否、タイムアウト、認証、DNSに分類して対応します。

質問10:v2rayN、v2rayNG、v2flyNGはどう選びますか?

v2rayNはWindows、macOS、Linuxのデスクトップ環境向けで、サブスクリプション管理、システムプロキシ、TUN、ルーティング、複数コアの設定項目を備えています。デスクトップユーザーには、設定を一元管理する画面として適しています。AndroidでVLESS、REALITY、Xrayの機能との互換性を優先する場合は、Xrayコアを使用するv2rayNGを選べます。

v2flyNGはv2flyコアの設定を対象としており、VMessなどv2fly系のノードをすでに利用していて、そのコアの動作が必要なAndroid環境に適しています。クライアントはノード名ではなく、プラットフォーム、プロトコル、サーバー側のパラメーターに基づいて選びます。サブスクリプションにVLESSやREALITYが含まれる場合は、現在のクライアントのコアが対応しているかを優先して確認してください。

デスクトップ向け構成

クライアント
v2rayN
プラットフォーム
Windows、macOS、Linux
コア
Xrayを優先
初回モード
システムプロキシ
切り分けの入口
実行ログ

サブスクリプションの更新、アクティブノードの選択、ブラウザーでの出口確認を終えてから、複雑なルーティングやTUNを有効にします。

Android向け構成

クライアント
v2rayNGまたはv2flyNG
Xrayプロトコル
v2rayNGを優先
v2fly設定
v2flyNGを選択可能
通信の取り込み方式
システムVPNインターフェース
確認方法
出口と接続ログ

インポート後に実際のプロトコル項目とコアの系統を確認し、サブスクリプション名だけでクライアントを選ばないようにします。

初心者が切り分ける順番は、次のように固定できます。サブスクリプションを更新できるか、一覧が生成されたか、アクティブノードが選択されているか、コアが互換性を持つか、アプリの通信がクライアントに入っているか、ルーティングが正しい出口を選んでいるか。層ごとに確認する方が、ノードを次々に交換するより効果的で、複数の設定を同時に変更して比較条件を失うことも防げます。

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