まずクライアント、コア、サーバーの役割を整理し、サブスクリプションの取り込みからWebページへの接続確認まで進めましょう。v2rayN、v2rayNG、v2flyNGを初めて使う方向けに、サブスクリプションの取得、ローカルでの通信処理、リモート接続、ルール設定のどこで問題が起きているかを切り分ける方法を紹介します。何度も再インストールして試す必要はありません。PCの操作手順はv2rayNの一般的な中国語版UIを例にしています。メニュー名はバージョンによって異なる場合があります。
1. V2Ray、Xray、クライアントの違いは?
設定画面と、実際に通信を処理するプログラムは分けて考えましょう。V2Rayはプロキシツールのプロジェクトで、コアプログラムがローカルポートの待ち受け、ルーティングルールの適用、リモートサーバーへの接続を担います。Xrayは関連する別の技術エコシステムに属するコアです。対応プロトコルや設定の詳細は完全には同じではないため、名前だけで互換性を判断できません。
- クライアント:サーバー一覧、サブスクリプション管理、システムプロキシの切り替え、ログ表示などを提供し、コアの設定を生成または読み込みます。
- コア:インバウンド、アウトバウンド、DNS、ルーティングの設定を実行します。画面上で起動していても、コアが正常にポートを待ち受けているとは限りません。
- サーバー:リモート接続先のアドレスと認証情報を提供します。クライアントをインストールしただけでは、利用可能なサーバーは用意されません。
v2rayNは複数のコアを管理できるPC向けクライアントです。v2rayNGはXrayコアを採用したAndroid向けクライアント、v2flyNGはv2flyコアを採用したAndroid向けクライアントです。「この設定項目はサポートされていません」と表示された場合は、クライアント名だけでなく、実際に動作しているコアとバージョンを確認してください。
2. v2rayN・v2rayNG・v2flyNGの選び方
まずOSに合わせて候補を絞り、次にノードの要件との互換性を確認します。PCではv2rayN、Androidではv2rayNGまたはv2flyNGを選びます。PC向け手順の「システムプロキシを設定」をAndroidにそのまま当てはめないでください。Androidでは通常、システムVPNの許可を使って端末の通信を処理するため、仕組みが異なります。
| クライアント | 対応プラットフォーム | 最初に確認すること |
|---|---|---|
| v2rayN | Windows、macOS、Linux | OSとCPUアーキテクチャに合ったものを選び、実際に使うコアを確認します。 |
| v2rayNG | Android | ノードのプロトコル、トランスポート、セキュリティ設定がXrayでサポートされているか確認します。 |
| v2flyNG | Android | 設定がv2flyでサポートされているか確認し、他のコア専用のパラメーターをそのまま流用しないでください。 |
選び方:設定全体に合うクライアントを選ぶ
プロトコル、トランスポート方式、TLS設定を確認してから、それらの項目に対応するクライアントとコアを選びます。「VLESS」や「VMess」という名前だけでは、設定全体の互換性は判断できません。
3. サブスクリプションURLと個別ノードのリンクの違い
サブスクリプションURLは通常、クライアントがアクセスしてノード一覧を取得するためのURLです。一方、個別ノードの共有リンクには、1つのノードの接続情報が含まれています。サブスクリプションの更新に成功しても、内容を取得・解析できたことを示すだけです。一覧内のすべてのサーバーが稼働中であることや、アカウントの利用枠が残っていることまでは保証されません。
- サブスクリプションURL:通常は
https://で始まりますが、一般的なWebページのURLも同じ形式です。先頭部分だけで判断せず、サービス提供元がサブスクリプション用として案内しているURLを使ってください。 - ノード共有リンク:よくある形式は
vmess://やvless://です。サブスクリプション更新用のURLではないため、サブスクリプションURLの入力欄に入れないでください。 - 完全な設定ファイル:JSONファイルにはインバウンド、アウトバウンド、ルーティングなどが含まれる場合があり、ノード一覧とは異なります。クライアントに用意されたカスタム設定の読み込み機能を使ってください。
サブスクリプションURLは認証情報と同じように管理してください。URL内のトークン、ノードのUUID、パスワードが写ったスクリーンショットを公開してはいけません。PCやスマートフォンを替える場合も、利便性のためにURL全体を公開の掲示板などに貼らないでください。漏えいした場合は、提供元の管理画面から再発行してください。
4. v2rayNでサブスクリプションを追加・更新する
現在使えている設定は残したまま、サブスクリプション用のグループを新しく作ると、更新元を分けて管理できます。以下ではv2rayNで一般的なメニュー名を使います。バージョンによってボタン表示になっている場合も、「サブスクリプショングループ設定」を開いてください。サブスクリプションURLを個別ノードとして読み込まないよう注意しましょう。
-
グループを作成
「サブスクリプショングループ」→「サブスクリプショングループ設定」を開き、新しいグループを追加します。識別しやすいメモとサブスクリプションURL全体を入力してください。URLの前後に空白や改行が入っていないか確認します。
-
更新を実行
保存後、「サブスクリプショングループ」メニューから「すべてのサブスクリプションを更新(プロキシを使用しない)」を選びます。まずは直接接続で取得できるか確認してください。利用可能なプロキシがない状態で、プロキシ経由の更新に頼らないようにしましょう。
-
結果を確認
更新メッセージと、グループ内のサーバー数を確認します。ノードが0件の場合は、クライアントをすぐ削除するのではなく、URLがログインページや期限切れの案内、互換性のないデータを返していないか確認してください。
-
サーバーを選択
サーバー一覧から1つ選び、右クリックメニューの「アクティブサーバーに設定」で切り替えます。コアの起動を確認してからシステムプロキシを有効にし、Webページにアクセスできるか試します。
利用可能なプロキシがあり、サブスクリプションURLに直接接続できない場合に限り、「プロキシ経由」での更新を試してください。自動更新の間隔は現在の設定画面の単位を確認し、分と時間を混同しないようにしましょう。更新頻度を上げても、サーバーの品質が改善するわけではありません。
5. VMess・VLESS・TLSは手動で設定する必要がある?
手入力によるミスを減らすため、提供元が作成した共有リンクまたはサブスクリプションを使いましょう。VMessとVLESSはプロトコル名、TLSは通信のセキュリティ層です。トランスポート方式は別の設定項目です。これらはサーバー側の設定と一致させる必要があり、単独で「速度を上げる」ための項目ではありません。
- アドレスとポート:接続先にはサーバーのアドレスを入力してください。サブスクリプションURLや管理画面のURLではありません。サーバー側で待ち受けているポート番号を設定します。
- 認証情報:UUIDなどの項目が欠けていないか確認します。VMessでは端末の時刻も正確にする必要があります。時刻が大きくずれていると認証に失敗することがあります。
- トランスポート設定:WebSocketのパスやHostなどは、提供元の設定どおりにしてください。パスのスラッシュや大文字・小文字の違いが接続に影響する場合があります。
- セキュリティ設定:TLSを有効にする場合は、サーバー名、証明書の信頼性、端末の時刻を確認してください。証明書の検証を無効にする方法を、通常の解決策として使わないでください。
たとえばサーバー側でWebSocketとTLSが必要な場合、クライアントにアドレスとUUIDだけ入力しても接続できないことがあります。新しい設定項目が見つかったら、まずコアの対応状況を確認し、提供元に問い合わせてください。他のガイドの設定一式を既存のノードに上書きしないようにしましょう。
6. システムプロキシ・TUN・ローカルポートの違い
システムプロキシを使うと、OSのプロキシ設定に従うアプリがローカルの待ち受けポートにリクエストを送ります。TUNは仮想ネットワークインターフェースを通じて通信を処理するため、対象範囲や必要な権限が異なります。まずはシステムプロキシでブラウザーの接続を確認し、その後にTUNが必要か検討すると、トラブル時の確認項目を減らせます。
v2rayNの「設定」→「パラメーター設定」で、ローカルの待ち受けポートと関連項目を確認してください。HTTP、SOCKS、混合リスナーの構成はバージョンによって異なります。すべてのポートが同じ種類のプロキシプロトコルを受け付けるとは限りません。上記の数値はアドレスの役割を区別するための例であり、すべての環境での初期設定ではありません。
7. グローバルとルーティングの役割
システムプロキシはアプリの通信をクライアントに渡すかどうかを決め、ルーティングルールは受け取った通信の送信先を決めます。これは別の段階です。「グローバル」は通常、クライアントが受け取った通信をプロキシ経由で送る設定を指します。すべてのアプリの通信が対象になったり、TUNが有効になったりするという意味ではありません。
- 直接接続:リモートプロキシサーバーを経由せず、端末から接続先に直接アクセスします。ローカルサービスやLAN内のアドレスなどは、直接接続のままにする必要がある場合があります。
- プロキシ:ルールに一致した通信をプロキシ経由で送信します。リモートサーバーへの接続が成功していることが前提です。
- ブロック:ルールに一致したリクエストを拒否します。ブロックルールに誤って一致している場合、ノードを何度切り替えても解決しません。
V2Ray/Xrayの通常のルーティングルールは上から順に評価され、最初に一致したルールで送信先が決まります。ドメインルールとIPルールでは必要な情報が異なり、ドメインの名前解決方法も判定結果に影響します。使い始めのうちはクライアントのルーティングプリセットを利用してください。特定のサイトだけ接続できない場合は、ログを確認して該当ルールを調整します。すべての接続先を同じ送信先に固定するのは避けましょう。ルールの詳細は応用ガイドをご覧ください。
8. 接続済みなのにWebページが開かないのはなぜ?
AndroidのステータスバーにVPNアイコンが表示されても、ローカルのVPNサービスが確立したことを示すだけです。PCでコアが動作している場合も、ローカルのプロセスが起動していることしか確認できません。いずれも、リモート認証、DNS名前解決、Webページへのリクエストが完了した証拠にはなりません。接続経路を手元から順に確認するほうが、接続ボタンを何度も押すより効果的です。
- ローカル環境を確認:コアの起動に失敗していないか、待ち受けポートが使用中でないか、ブラウザーに個別のプロキシ拡張機能や手動設定がないか確認します。
- 通信の取り込みを確認:PCでは「システムプロキシを設定」が有効か確認します。Androidでは、対象アプリがアプリごとのプロキシ設定から除外されていないか確認してください。
- リモート接続を確認:同じサブスクリプション内の別サーバーに切り替え、アカウントの有効期限、通信量、ノード設定を確認します。
- リクエストを確認:異なる2つのWebサイトにアクセスして試します。1つだけ失敗する場合は、そのサイトのDNS、ルーティング、サーバー側の制限を重点的に確認してください。
遅延テストが一度成功しても、Webページにアクセスできるとは限りません。TCP接続、プロキシ経由のリクエスト、実際のページ読み込みでは、確認している処理が異なります。「どのテストが成功し、どれが失敗したか」を記録すると、「接続できない」とだけ報告するより原因を特定しやすくなります。
9. ログによく出るエラーの読み方
まず問題が起きた時刻を記録し、もう一度再現して前後のログを確認します。エラーに表示されたアドレスは、ローカルの待ち受け先、DNSサーバー、リモートノード、最終的な接続先のいずれかです。前後の内容から判断してください。以下はよくあるエラーの一部で、OSやコアのバージョンによって表示内容が完全には一致しない場合があります。
エラー:address already in use
原因:待ち受けに使うアドレスとポートが、別のプロセスに使用されています。対処:クライアントの重複起動や競合するプログラムを終了してください。必要に応じてローカルポートを変更し、アプリに手動設定したプロキシのアドレスも合わせて更新します。
エラー:connection refused
原因:接続先のポートから拒否されています。サービスが待ち受けていないか、アドレスやポートが間違っている可能性があります。対処:ログに表示された接続先が端末内かリモートかを確認し、該当するサービスとポートの状態を調べてください。
エラー:i/o timeout
原因:ネットワーク処理がタイムアウトしました。名前解決、接続、応答待ちのいずれかで発生している可能性があります。対処:前後のログから発生段階を判断し、ネットワークとノードをそれぞれ変更して比較します。一度に変更する条件は1つにしてください。
エラー:x509: certificate has expired or is not yet valid
原因:証明書の有効期間を確認できませんでした。端末の時刻が間違っているか、リモートの証明書が期限切れの可能性があります。対処:まずシステムの日付と時刻を同期してください。時刻が正しいのにエラーが続く場合は、提供元に証明書の修正を依頼します。
ログを共有する前に、サブスクリプションのトークン、UUID、パスワードなどの認証情報を隠してください。エラーの原文、発生時刻、クライアントとコアのバージョン、操作手順を残せば十分です。最後の「失敗」という一文だけを切り取ったり、認証情報を含む設定ファイル全体を公開したりしないでください。
10. 初期設定後に残しておきたい設定
動作確認済みの基本設定を残しておきましょう。アクティブサーバーを1つ、通信を処理する方法を1つ、ルーティングプリセットを1つにします。その後は設定を一度に1つだけ変更し、問題が起きたら元に戻してください。新しいルール、DNS設定、ノード自体のどれが原因か切り分けやすくなり、使えていた設定が再現できない状態になるのを防げます。
画面を消すと接続が切れる場合、サブスクリプションを再登録する必要はある?
まずAndroidの「設定」→「アプリ」→対象のクライアント→「バッテリー」でバックグラウンド制限を確認します。メニュー名はメーカーによって異なります。必要なバックグラウンド動作を許可し、アプリごとのプロキシ設定とシステムVPNも確認してください。サブスクリプションはすぐに削除しないでください。
PCを再起動したら、TUNも有効にする必要がある?
起動時に接続するためだけにTUNを有効にする必要はありません。まずv2rayNを起動し、アクティブサーバーとコアの動作状態を確認してから、以前使えていたシステムプロキシの設定に戻します。システムプロキシに従わないアプリの通信も処理する必要がある場合に、TUNの利用を別途検討してください。
更新後に動かなくなった場合、設定をそのまま上書きしてよい?
まずクライアントとコアのバージョンを記録し、現在の設定をバックアップしてください。新しいバージョンの設定と照らし合わせて、待ち受けポート、アクティブサーバー、ルーティングプリセットを確認します。バックアップを取らずにデータを消したり、異なるバージョンのコアファイルを混在させたりしないでください。
- OS、クライアントのバージョン、実際に使っているコアのバージョン、ローカルの待ち受けポートを記録します。
- サブスクリプションの取得元とアカウントの管理方法を記録し、バックアップファイルは自分だけがアクセスできる場所に保管します。
- クライアントを終了したら、システムプロキシが解除されていることを確認します。解除されていないと、次回もブラウザーが停止済みのローカルポートに接続しようとする場合があります。
- 再設定が必要な場合は、まずクイックスタートに沿って最小限の動作確認を行い、その後カスタムルールを戻してください。