クライアントをインストールする準備はできているものの、コア、ノード、サブスクリプションの違いがまだ分からない方に向けた記事です。まずデバイスに合ったクライアントを選び、正規に入手したサーバー設定を追加しましょう。パソコンで初めて接続するときはシステムプロキシを使い、選択したノード経由で実際にWebページへアクセスできることを確認してから、TUNやルーティングルールの設定を検討します。ここでは主にデスクトップ版v2rayNの操作を説明し、Androidについては別途解説します。ポート番号の例は、実際の設定に代わるものではありません。
1. V2Ray、Xray、クライアントの違いは?
V2Rayは一般に、プロキシツールのプロジェクトとそのコアプログラムを指します。v2flyはV2Rayを保守するコミュニティプロジェクトです。Xrayは関連する別のコアプロジェクトで、共通の歴史がありますが、その後の機能や設定の対応状況は完全には一致しません。コアは接続の確立、プロトコルの処理、ルーティングを担い、クライアントはサブスクリプションの追加、ノードの選択、設定変更、ログ確認などの画面を提供します。
そのため、v2rayNをインストールしても、使えるコアが一種類に限られるわけではありません。v2rayNでは複数のコアに対応する設定を管理できますが、実際に接続できるかどうかは、使用中のコア、ノードのプロトコル、パラメーターによって決まります。クライアント名に「V2Ray」とあるかどうかだけで、特定のノードが使えると判断することはできません。
- v2rayN:サーバー設定を管理し、対応するコアを起動するデスクトップクライアントです。
- v2rayNG:主にXrayコアを使用するAndroidクライアントです。
- v2flyNG:v2flyコアを使用するAndroidクライアントです。
- VMess、VLESS:クライアント名ではなくプロトコル名です。トランスポートやセキュリティの設定もサーバー側と一致させる必要があります。
VLESS + REALITYの設定を使う場合は、VMess設定のプロトコル欄をVLESSに変えるのではなく、使用するクライアントのコアが対応しているかを先に確認してください。用語の詳しい説明は用語集をご覧ください。
2. パソコンとAndroidにはどのクライアントを入れる?
まずOSに合わせて選び、次にサーバー設定の要件を確認します。デスクトップではv2rayN、Androidではv2rayNGまたはv2flyNGから選べます。ここでの「おすすめ」はデスクトップの初心者向けという意味で、ほかのクライアントが使えないということでも、特定のコアがあらゆるネットワークで速いということでもありません。
v2rayN:デスクトップでの入門に
おすすめWindows、macOS、Linuxのデスクトップで使えます。サブスクリプションの一元管理、サーバーパラメーターの確認、コアのログ確認に便利です。インストール時はデバイスのアーキテクチャとパッケージ形式も確認してください。
おすすめの用途:パソコンでの初期設定、デスクトップでのサブスクリプション管理
v2rayNG:AndroidとXray
Androidデバイスでサブスクリプションや個別の共有リンクを追加できます。Xray関連の設定を使う場合は、インストールしたバージョンと内蔵コアが、サービス提供元の指定するパラメーター一式に対応しているか確認してください。
おすすめの用途:Androidでの日常利用、Xrayノードの設定
v2flyNG:Androidとv2fly
v2flyコアを使う設定に適しています。利用できるかどうかはノードのプロトコルとトランスポート方式によって異なります。別のクライアントで追加できるリンクが、すべてそのまま使えるとは限りません。
おすすめの用途:Androidデバイス、v2flyが指定された設定
インストーラーはクライアントのダウンロードページにまとめています。パソコンでx64またはarm64を選ぶ前にシステム情報を確認してください。Androidでアーキテクチャが分からない場合は、ダウンロードページの汎用版の説明をご覧ください。デスクトップ用インストーラーをAndroidデバイスにコピーして実行しないでください。
3. クライアントを入れれば接続できる?サブスクリプションはどこで入手する?
いいえ。クライアントは接続に使うツールであり、別途、利用可能なサーバーと接続パラメーターが必要です。サブスクリプションは通常、サービス提供元または自分で管理するサーバー設定システムから入手します。このサイトのクライアントインストーラーにノードは付属していません。信頼できる提供元から入手し、お住まいの地域の法律とネットワーク利用規則を守ってください。
- サブスクリプションURL:通常はHTTPSアドレスです。クライアントからアクセスすると複数のサーバー設定を取得でき、後から更新できます。
- 個別の共有リンク:たとえば
vmess://やvless://で始まる文字列で、通常は1つのノードを表します。継続的に更新できるサブスクリプションとは異なります。 - 手動設定:アドレス、ポート、認証情報、トランスポート、セキュリティ設定などが必要です。不足している情報があれば提供元に確認してください。
4. ノードのパラメーターは自分で変更する?
正常にインポートできたら、まずはサービス提供元の設定をそのまま使ってください。リモートポートが必ず443とは限らず、「より安全そう」という理由でTLSの設定を変えるのも避けましょう。ドメイン、SNI、WebSocketパス、REALITYの公開鍵などにはそれぞれ役割があります。クライアントとサーバーの設定が一致しないと、ハンドシェイクに失敗することがあります。
- VMess:サーバーアドレス、ポート、ユーザーID、トランスポートの種類、TLSなどのセキュリティ設定を確認します。
- VLESS:アドレスと認証情報に加え、サーバーが求めるFlowとトランスポートのセキュリティ方式を確認します。すべてのVLESSノードがREALITYを使うわけではありません。
- WebSocket:パスとHostは提供元の指定どおりに入力します。パスは設定ごとに異なるため、他人の
/wsを共通の値として使わないでください。 - REALITY:公開鍵、Short ID、serverName、フィンガープリントなどの指定を確認してください。設定ミスを隠すためにセキュリティチェックを無効にしないでください。
初めて使うときは、パラメーターを手作業で組み立てないことをおすすめします。インポート後に空欄があれば、その項目がノードに必要かどうかを確認し、リンク形式とクライアントの互換性を調べてください。サーバー側の更新後は、新しいパラメーターを推測するよりサブスクリプションを更新するほうが確実です。
5. v2rayNでサブスクリプションを追加してノードを選ぶ方法
ここではv2rayNでよく使われるメニュー名を紹介します。バージョンによってボタンの位置や、括弧付きの説明が変わる場合があります。実際のメニュー名に従って操作してください。まずは「プロキシ経由なし」で更新します。サブスクリプションURLへのアクセスにプロキシが必要だと確認できた場合に限り、「プロキシ経由」で更新してください。
-
クライアントを起動する
インストーラーの種類に応じてインストールまたは解凍し、v2rayNのメインプログラムを起動します。初回はTUNをオフにしてください。仮想ネットワークアダプターとノード接続の問題を同時に切り分けずに済みます。
-
サブスクリプショングループを作成する
「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、グループを追加します。「別名」に分かりやすい名前を、「アドレス」にサブスクリプションURL全体を入力して保存します。
-
サブスクリプションを更新する
「サブスクリプショングループ」から「すべてのサブスクリプションを更新(プロキシ経由なし)」を選択します。処理結果を確認し、ノード一覧に新しい項目が表示されたか確認してください。更新に失敗しても、すぐにグループを何度も削除しないでください。
-
アクティブノードに設定する
サーバー一覧からノードを選び、右クリックして「アクティブサーバーに設定」を選択します。アクティブサーバー名が実際に変わったことを確認してください。遅延テストだけではこの操作の代わりになりません。
-
システムプロキシを設定する
メイン画面またはタスクトレイのメニューから「システムプロキシ」→「システムプロキシを自動設定」を選択します。ルーティング設定は変更せず、まずブラウザーでプロキシ経由になるはずのHTTPSページを開いてください。
Androidでは、v2rayNGの「サブスクリプショングループの設定」でURLを追加し、「サブスクリプションを更新」してノードを取得できます。または追加メニューからクリップボード内の個別共有リンクをインポートできます。ノードを選んでサービスを起動し、初めてシステムからVPN接続の許可を求められたときは、アプリ名を確認してから許可してください。
6. システムプロキシとTUNの違いは?
システムプロキシは、アプリに「このプロキシアドレスへリクエストを渡せる」と通知する設定です。この設定に従うアプリだけが利用します。一方、TUNは仮想ネットワークアダプターを通じて、そこへルーティングされた通信を受け取ります。通常はより広い範囲の通信を扱えますが、ルーティング、除外ルール、権限の影響を受けます。デスクトップで初めて問題を切り分けるときは、まずシステムプロキシを使い、基本的な接続ができてからTUNを検討してください。
システムプロキシの例
- ローカルアドレス
127.0.0.1- 混合ポートの例
10808(実際の設定を確認してください)- 適用範囲
- システムプロキシ設定に従うアプリ
- 初回の設定
- 「システムプロキシ」→「システムプロキシを自動設定」
以前の設定ではSOCKS用の10808とHTTP用の10809を別々に使う場合があります。古い手順に記載されたポートを、現在の設定にそのまま当てはめないでください。
TUNの利用条件
- 通信の取り込み方法
- 仮想ネットワークアダプターとシステムルート
- 必要な権限
- システムの指示に従って許可します。一部のプラットフォームでは権限の昇格が必要です。
- トラブル時の確認項目
- ネットワークアダプターの作成、ルートの競合、DNS
- 有効にするタイミング
- 基本的なノード接続を確認してから有効にする
TUNを有効にしても、使えなくなったノードが直るわけではなく、すべての通信がリモートプロキシを経由する保証もありません。
ローカルの待ち受けポートは「設定」→「パラメーター設定」で確認できます。127.0.0.1は現在のデバイス自身を表します。パソコンに接続するために、スマートフォンのプロキシ設定へこのアドレスを入力しないでください。Androidクライアントが起動するVPNサービスは、システムの通信を取り込む仕組みであり、デスクトップのシステムプロキシ設定とは異なります。
7. 接続済みと表示されたら、実際に使えているか確認するには?
「接続済み」はローカルサービスが起動したことを示すだけの場合があります。ノードテストで遅延が表示されても、すべてのWebページが開けるとは限りません。状態アイコンだけで判断せず、アクティブノード、アプリでのアクセス結果、ログを合わせて確認してください。
- 選択中のノードを確認:アクティブサーバー名を確認し、ノードAをテストしたのに実際にはノードBを使っていた、という間違いを防ぎます。
- 実際のアクセスを確認:現在のルーティングでプロキシ経由になるHTTPSページを開き、再読み込みしたうえで別のページにもアクセスします。キャッシュによる誤判定を避けられます。
- ログを確認:リクエストの宛先、選択されたアウトバウンド、エラー情報を確認します。ログの詳細度は異なるため、アウトバウンド名が表示されていない場合は、1行の記録だけで結論を出さないでください。
- 設定の切り替え前後を比較:ほかのVPNやプロキシツールを一時停止し、システムプロキシを解除した場合と再び有効にした場合の結果を比較します。テスト後は必要な設定に戻してください。
たとえばテスト欄に120 msと表示されても、その時点でテスト結果が返ったことを示すだけです。これは当サイトで測定したデータではありません。通信速度、Webページの初回応答時間、接続の安定性はそれぞれ異なる指標です。最小遅延を求めてノードを頻繁に切り替える必要はありません。速度テストでサブスクリプションの通信量を消費する場合もあるため、事前に利用上限を確認してください。
8. ルーティングによる振り分けとは?常にグローバルモードにする?
ルーティングによる振り分けでは、ドメイン、IP、アプリなどのルールに応じてアウトバウンドを選択します。「直結」はリクエストをリモートプロキシ経由にしないこと、「プロキシ」は指定したアウトバウンドへ渡すこと、「ブロック」はリクエストを遮断することです。クライアントのグローバルモードは通常、プロキシコアのアウトバウンドルールに影響しますが、すべてのアプリの通信が取り込まれるわけではありません。
- 普段の利用:まずは現在のルーティング設定を維持し、DNS、振り分けルール、ノードを一度に変更しないでください。
- 一時的な診断:短時間だけグローバルプロキシに切り替え、同じWebページが開くか比較できます。グローバルモードでのみ使える場合は、元の振り分けルールを確認してください。
- 設定を元に戻す:診断後は元の設定に戻してください。本来は直結するサービスが遠回りになったり、サブスクリプションの通信量を消費したりするのを防げます。
- ルールの順序:通常は上から順にルールが照合されます。先にある大まかなルールが、後の詳細なルールに優先する場合があります。
ルールを調整する場合は、高度な設定の説明をご覧ください。まず「どの宛先をどのアウトバウンドに通すか」を明確にしてからルールを変更しましょう。あらゆる問題をDNSのせいにすると、ノードやトランスポートの問題を見落とすおそれがあります。
9. クライアントを終了する前に必要なことは?
デスクトップクライアントを閉じた後も、システムプロキシが停止済みのローカルポートを参照していると、ブラウザーでプロキシサーバーへの接続が拒否されることがあります。ウィンドウを閉じてもタスクトレイに最小化されるだけで、完全に終了しない場合もあります。ウィンドウを隠す、コアを停止する、プログラムを終了する操作を区別してください。
- 「システムプロキシ」で「システムプロキシを解除」を選び、ブラウザーから通常どおりネットワークへアクセスできることを確認します。
- TUNを有効にしている場合は、先にTUNをオフにし、仮想ネットワークアダプターと関連ルートの動作が停止するのを待ちます。
- その後、クライアントの終了機能を使います。Androidではクライアントの接続サービスを停止し、システムの接続表示が消えたことを確認してください。
停電やプログラムの異常終了後に多くのWebページが開けなくなった場合は、まずOSのプロキシ設定が127.0.0.1を参照したままになっていないか確認してください。組織が管理するパソコンでは、組織から配布されたプロキシ設定を削除しないでください。今回のクライアント操作で変更した設定だけを元に戻します。
10. 更新失敗、タイムアウト、ブラウザー以外で使えないときは?
変更は一度に1つだけにし、どの手順でエラーが発生したか記録してください。サブスクリプションの更新失敗は「設定の取得」の問題で、ノードのタイムアウトは「接続の確立」の問題です。混同しないようにしましょう。まずは次の3つのケースから切り分けてください。
サブスクリプションの更新がタイムアウトする。URLが使えなくなった?
まず通常のネットワーク接続を確認し、URLが完全か、期限切れでないか、提供元がサブスクリプションの入口を変更していないかを調べてください。利用可能なノードがあり、そのURLへのアクセスにプロキシが必要だと確認できた場合は、「サブスクリプショングループ」→「すべてのサブスクリプションを更新(プロキシ経由)」を選んで再試行します。利用可能なノードがない場合、この設定では初回接続の問題を解決できません。
ノードがずっとタイムアウトする。クライアントを再インストールすべき?
まずシステムの日付と時刻を自動設定にし、アクティブノード、サーバーアドレス、ポートを確認してください。同じサブスクリプション内の別のノードでも試し、ログにtimeout、connection refused、TLSハンドシェイクエラーがないか調べます。まず原因を特定し、再インストールを最初の対処にしないでください。
ブラウザーは使えるのに、ほかのアプリで使えないのはなぜ?
そのアプリがシステムプロキシに従うか、独自のプロキシ設定や直結ルールを使用していないか確認してください。より広い範囲の通信を取り込む必要がある場合はTUNを試し、権限とルーティングも確認します。ログにローカルの10808ポートが使用中と表示されたら、使用しているほかのプログラムを終了するか、ポートを変更したうえで、そのポートを使うアプリの設定も更新してください。
それでも解決しない場合は、クライアントのバージョン、OS、コアの種類、ノードのプロトコル、機密情報を伏せたエラーログを用意し、ヘルプセンターで該当する問題を確認してください。サブスクリプション全体、UUID、利用可能なノードのリンクを公開しないでください。エラーを消すためだけに証明書の検証をスキップする設定を有効にするのも避けてください。