この記事は、V2Rayを使い始めたばかりで、ノードやサブスクリプションURLはあるものの、クライアント・コア・プロキシモードの連携方法が分からない方に向けた内容です。ソフトの選び方、サブスクリプションの追加、システムプロキシ、TUN、接続トラブル、ルーティングを順に解説します。読み終える頃には基本設定を完了し、ログ、ポート、ノードパラメータの確認箇所も把握できます。
1. V2Ray、コア、クライアントの関係
質問1:V2Rayはデスクトップクライアントですか?
いいえ。一般に「V2Ray」はネットワークプロキシ技術全体を指す場合と、プロトコル、トランスポート、ルーティング、DNSを処理するコアプログラムを指す場合があります。コアには通常、一般ユーザー向けの完全なGUIはありません。v2rayN、v2rayNG、v2flyNGが、設定の追加、ノード選択、コアの起動、システムプロキシの調整を担当するクライアントです。
利用可能な設定は3層に分けて考えると分かりやすいでしょう。クライアントは操作と設定管理、コアは接続の確立とルーティング、ノードパラメータはサーバーアドレス、ポート、ユーザー識別子、トランスポート方式、暗号化レイヤーを定義します。クライアントに「実行中」と表示されても、コアプロセスが起動したことを示すだけで、選択中のノードが必ず接続できるとは限りません。
質問2:V2FlyとXrayのコアはどう理解すればよいですか?
V2FlyはV2Ray Coreのプロトコル、トランスポート、ルーティング機能を引き継いでおり、VMess、VLESS、WebSocket、gRPCなど一般的な設定に適しています。Xrayは近い設定体系をさらに拡張したもので、VLESS、Reality、特定のフロー制御パラメータを含むノードでよく使われます。どちらもサブスクリプションサービスではなく、サーバーを自動提供するものでもありません。クライアントが生成した設定を読み込み、ルールに従って通信を処理します。
Xrayコア
おすすめ一般的なVMess、VLESS、Reality設定に対応しており、v2rayNとv2rayNGの日常的な設定では通常こちらを優先します。
適している構成:新しい設定、VLESS、Realityノード
V2Flyコア
V2Ray Coreの設定体系を引き継ぎ、一般的なVMess、VLESS、標準的なトランスポートの組み合わせに適しています。
適している構成:既存の設定、v2flyNG、互換性の確認
質問3:v2rayN、v2rayNG、v2flyNGはどう選びますか?
Windows、macOS、Linuxのデスクトップ環境ではv2rayNを使用します。Android端末ではv2rayNGとv2flyNGから選べます。v2rayNGはXrayコアを使用し、新しいXray設定に対応したサブスクリプションに適しています。v2flyNGはV2Flyコアを使用し、V2Flyの設定体系を明確に要求するノードに向いています。名前だけで判断せず、サブスクリプションの説明にあるプロトコルとトランスポートパラメータを選択基準にしてください。
2. ノードリンクとサブスクリプションURLの違い
質問4:サブスクリプションURLはどこから入手しますか?
サブスクリプションURLは、ノードサービスの運営者または自分で構築したサーバーの設定システムが発行します。v2rayN、v2rayNG、v2flyNGやコアが自動生成するものではありません。通常はHTTPSで始まるURLで、クライアントがアクセスすると複数のノード設定を取得します。URLにはアカウント識別用のトークンが含まれる場合があるため、公開ページ、スクリーンショット、ログ共有に貼り付けないでください。
サーバーのIPアドレス、ポート、ユーザー識別子しかない場合は、プロトコル、トランスポート層、TLS、SNI、パス、Flowなどの項目も分からなければ完全な設定を手動で作成できません。IPアドレスだけでは接続できません。設定の提供元に、対応クライアント、コアの種類、更新方法を確認するのが最も確実です。
質問5:vmess://、vless://とサブスクリプションリンクは何が違いますか?
vmess://とvless://は通常、単一ノードの共有リンクです。一度インポートすると、クライアントに1件のローカル設定が作成されます。サブスクリプションURLはリモート設定の集合で、複数のノードやグループを含む場合があります。「サブスクリプションを更新」を実行すると、クライアントが内容を再取得して変更を反映します。単一ノードのリンクは、サーバー側で名前やパラメータが変更されても自動更新されません。
単一ノードの共有リンク
- よくある先頭部分
- vmess:// または vless://
- 含まれる内容
- 1件のノード設定
- 更新方法
- 新しいリンクを再インポート
- 利用場面
- 一時的なテストまたは単一構成
インポート後に、アドレス、ポート、トランスポート方式、TLSの項目を確認します。
サブスクリプションURL
- よくある先頭部分
- https://
- 含まれる内容
- 複数のノードまたはグループ
- 更新方法
- クライアントから手動更新
- 利用場面
- 長期的に管理するノード一覧
更新前に現在のノードを記録し、グループ変更後に別の設定を誤って選ばないようにします。
- コピーした内容が
vless://またはvmess://の1行だけなら、「クリップボードからインポート」などの項目を使用します。 - コピーした内容がHTTPSのURLで、設定の提供元からサブスクリプションとして案内されている場合は、手動ノードエディターではなく「サブスクリプショングループ」に追加します。
- サブスクリプション更新後にノードが減った場合、リモート側の設定が変更された可能性があります。クライアントの削除機能が故障したとは限りません。
3. サブスクリプション追加とコア選択の正しい手順
質問6:初回インポート後に何をすればよいですか?
初回設定では、ルーティング、DNS、TUN、ポートを同時に変更しないでください。まずサブスクリプションを追加し、ノードを1つ選択してコアを起動し、その後システムプロキシを有効にしてWebページへのアクセスを確認します。基本経路が使えることを確認してから、ルールを1つずつ調整します。これにより、問題がノードパラメータ、システム側の取り込み、追加したルールのどこにあるかを切り分けやすくなります。
-
クライアントを確認
デスクトップではv2rayNを起動し、Android端末では設定要件に応じてv2rayNGまたはv2flyNGを選びます。起動後はまずステータスバーを確認し、コアが正常に読み込まれていることを確認します。
-
サブスクリプションを追加
v2rayNで「サブスクリプショングループ」→「サブスクリプショングループの設定」→「追加」と進み、名前を入力してサブスクリプションURLを貼り付けます。保存後、「すべてのサブスクリプションを更新」を実行します。
-
コアを選択
「設定」→「パラメータ設定」→「Coreタイプ」と進み、ノードの要件に応じてXrayまたはV2Flyを選択します。RealityやFlowなどの項目がある場合は、設定提供元の説明を優先してください。
-
ノードを選択
ノード一覧から設定を1つ選び、アクティブサーバーに設定します。アドレスが空欄でないこと、ポートが1~65535の範囲内であることを確認してからコアを起動します。
-
プロキシを有効化
まずシステムプロキシモードを選択し、異なる2つのサイトにアクセスしてコアのログを確認します。基本的なアクセスが正常になってから、TUNやカスタムルーティングを有効にするか判断します。
Android版はバージョンによってメニュー名が変わることがありますが、操作の流れは同じです。サブスクリプションを追加し、設定を更新し、ノードを選択して接続を開始します。初回にネットワーク接続の許可が表示されたら確認してください。許可しないと、クライアント画面ではノードが選択済みでも、システム通信がローカルプロキシ経路に入らない場合があります。
4. システムプロキシとTUNモードの違い
質問7:システムプロキシとTUNは何が違いますか?
システムプロキシは、OSのプロキシ設定を使い、HTTPまたはSOCKSプロキシに対応するアプリをクライアントの待受ポートへ向けます。設定が分かりやすく影響範囲も確認しやすいため、ブラウザーやシステムプロキシに従うデスクトップアプリに適しています。システムプロキシを無視したり、直接ネットワーク接続を確立したりするアプリもあり、その通信は自動的にプロキシコアへ入りません。
TUNモードは仮想ネットワークインターフェースを作成し、より低いレイヤーでルーティング条件に一致する通信を取り込みます。そのため、システムプロキシ設定を読み取らないアプリも広くカバーできます。通常はシステム権限が必要で、ルーティングテーブル、DNS、除外ルールも関係します。TUNを有効にした後、LAN機器に接続できない、ドメイン名を解決できない、通信ループが起きるといった問題が出た場合は、まずTUNを無効にし、システムプロキシモードで基本ノードが正常か確認してください。
| 比較項目 | システムプロキシ | TUNモード |
|---|---|---|
| 取り込む対象 | システムプロキシに従うアプリ | 仮想インターフェースのルーティングに一致する通信 |
| 初回設定 | プロキシモードを選択し、ローカルポートを確認 | 仮想インターフェースを許可し、ルーティングとDNSを確認 |
| よくある問題 | アプリがプロキシを無視する、ポートが待受状態でない | ルーティングの競合、DNS異常、権限不足 |
| 確認の順番 | 127.0.0.1と待受ポートを確認 | まずTUNを無効にしてからシステムプロキシを確認 |
初心者はまずシステムプロキシで動作を確認することをおすすめします。コアのログにローカルSOCKSの待受が127.0.0.1:10808と表示されている場合、アプリを手動設定するときはアドレスに本機のループバックアドレスを指定し、ポートはログと一致させます。リモートノードのポートをローカルプロキシのポートに誤って入力しないでください。両者の役割はまったく異なります。
- ブラウザーはアクセスできるのに特定のアプリだけ接続できない:まず、そのアプリがシステムプロキシを読み取るか確認します。
- すべてのアプリで接続できない:コアが起動しているか、ローカルポートが待受状態か、ノードがタイムアウトしていないか確認します。
- TUNを有効にしたときだけ異常が起きる:仮想インターフェースの権限、DNS設定、LANのバイパスルールを確認します。
5. ノードに接続できないときの確認箇所
質問8:ノードのテストがタイムアウトしたら、最初に何を確認しますか?
まず「サブスクリプション更新の失敗」と「ノード接続の失敗」を切り分けます。前者はサブスクリプション内容の取得時に起き、URL、ネットワーク環境、更新方法が関係します。後者はコアがノードへ接続するときに起き、サーバーアドレス、リモートポート、プロトコル、TLS、トランスポート層、システム時刻を重点的に確認します。速度テスト欄が空だからといって、すぐにクライアントを再インストールしないでください。ログに記録された最初の明確なエラーのほうが役立つことが多いです。
同じノードを3回続けてテストし、各回の間隔を約5秒空けることをおすすめします。1回だけタイムアウトして後から復旧するなら、一時的なネットワークの揺らぎかもしれません。毎回ほぼ同じタイミングで失敗する場合は、DNS解決とリモートポートを確認します。システム時刻のずれがTLS接続に影響することもあるため、日付、タイムゾーン、自動時刻合わせが正しいことを確認してください。
質問9:接続済みと表示されるのに、Webページが開けない場合は?
「接続済み」は、クライアントがローカル経路を作成した、またはコアプロセスが動作していることだけを示している場合があります。次に、システム通信がその経路へ入っているか、コアがリクエストをリモートへ転送できているかを確認します。ローカル待受、システムプロキシ、コアログ、DNS、ルーティングルールの順で調べると、ノードを何度も切り替えるより原因を特定しやすくなります。
サブスクリプションの更新がずっとタイムアウトする場合は?
まずブラウザーでサブスクリプションURLにアクセスできることを確認し、URLが完全にコピーされているか確認します。クライアントに「プロキシ経由で更新」オプションがある場合は、利用可能なノードを選んだ状態で有効にして再試行します。
コアを起動するとすぐ終了する場合は?
実行ログを開き、最初のエラーを確認します。ポートが使用中と表示された場合は、「設定」→「パラメータ設定」でローカル待受ポートを確認し、未使用のポートに変更してからコアを再起動します。
ノードの遅延は測定できるのに、Webページが開けない場合は?
遅延テストに成功しても、実際の通信が正常とは限りません。システムプロキシが有効か確認し、DNS解決、TLSハンドシェイク、ルーティングによる遮断の情報がログにないか調べます。
ドメイン名では開けないのに、IPアドレスならアクセスできる場合は?
DNSを重点的に確認します。まずクライアントの既定DNS設定に戻し、カスタムhostsと複雑なルーティングルールを無効にしてから、コアを再起動して比較テストを行います。
ノードを切り替えても古い接続が使われる場合は?
アクティブサーバーを切り替えた後、コアを再起動し、対象アプリも終了してから再度開きます。長時間維持されている接続はすぐに再確立されないことがあり、ブラウザーの接続プールが古いセッションを再利用する場合もあります。
6. ルーティングはシンプルなルールから始める
質問10:グローバル、ルール、直接接続モードはどう選びますか?
グローバルモードは通常、プロキシ可能な通信の大部分を現在のノードへ転送します。ノード自体が動作するかを確認するのに適していますが、複雑な振り分けを長期運用する方法ではありません。ルールモードはドメイン、IP、ポート、プロセスに応じて異なる出口を選ぶため、日常利用ではこちらが一般的です。直接接続モードはプロキシの影響を一時停止したり、ローカルネットワークを確認したりするためのもので、クライアントを終了したことを意味しません。コアプロセスは動作し続ける場合があります。
初めてルーティングを設定するときは、既定ルールから始め、明確に検証できるルールを1つだけ追加します。たとえばLANアドレスを直接接続にして、プリンター、ルーター管理画面、ファイル共有が復旧するか確認します。一度に多数のドメイン分類、DNS書き換え、プロセスルールを追加すると、ログと具体的な条件を対応させにくくなります。
- ステップ1:現在のモード、アクティブノード、コアの種類、DNS設定を記録し、復元可能な基準状態を作ります。
- ステップ2:本機とLANアドレスは直接接続のままにします。一般的なプライベートアドレス範囲をリモートノードへ送るべきではありません。
- ステップ3:毎回1グループのルールだけを追加し、対象サイトへ再アクセスして、ログで適用された出口方向を確認します。
- ステップ4:ルールの結果が期待どおりでないときは、まず今回の変更を元に戻します。コアとプロキシモードを同時に切り替えないでください。
ルーティングルールは通信を直接接続、プロキシ、遮断のどれに振り分けるかを決めます。一方、サブスクリプションのノードは選択可能なリモート接続パラメータを提供するだけで、両者は別の概念です。サブスクリプションを更新しても、ローカルのルーティング設計が自動的に完了するわけではありません。クライアントの既定ルールもバージョンによって変わる可能性があるため、確認時には既定ルールとカスタムルールのどちらを使っているか明確にしてください。
10個の疑問について基本確認を終えたら、決まった手順で設定を検証できます。サブスクリプションを更新し、ノードを選択し、コアを起動し、ローカル待受を確認してからシステムプロキシを有効にし、対象サイトへアクセスしてログの適用結果を確認します。基本手順が安定してからTUNの有効化、DNSの調整、振り分けルールの追加を行うと、問題の範囲を明確にできます。