v2rayNを初めてインストールする場合は、Windowsのアーキテクチャに合ったパッケージを選び、完全に展開できているか、サブスクリプションを更新できるか、ローカルの待ち受けポートが正しいかを確認しましょう。この記事では「アプリが起動する → ノードを追加できる → コアが接続できる → アプリがプロキシを経由する」の順に手順を説明します。インストール済みなのにWebページを開けない場合も、問題のある段階を切り分ける参考になります。
1. WPF版とDesktop版の選び方
v2rayNは、ノードやサブスクリプション、プロキシ設定を管理するデスクトップアプリです。実際の通信はコアが処理します。WPF版とDesktop版の違いは主にUI技術と実行環境であり、プロキシプロトコルの違いではありません。どちらを選んでも、接続速度が自動的に向上するわけではありません。Desktop版はクロスプラットフォームのUIを採用し、WPF版は従来のWindows向けUIを維持しています。対応プロトコルは、同梱されているコアとそのバージョンによって異なります。
Desktop版
おすすめ初めてインストールする場合は、まずDesktop版を検討し、ダウンロードページの説明でWindowsのアーキテクチャと実行環境の要件を確認してください。クロスプラットフォームUIとWPF版ではメニューの配置が異なる場合があります。古いガイドを参照するときは、スクリーンショットを一つずつ照合するのではなく、設定項目の意味を確認しましょう。
おすすめのユーザー:新規インストールする方、WindowsでクロスプラットフォームUIを使いたい方。
WPF版
従来のWindows向けUIに慣れている場合は、WPF版を選べます。起動時にランタイム不足のメッセージが表示されたら、配布パッケージが要求する.NET Desktop Runtimeとプロセッサアーキテクチャを確認してください。名前が似ている通常のランタイムを入れても代用できません。
おすすめのユーザー:従来のUIでの操作に慣れていて、これまでの手順を引き継ぎたい方。
ダウンロード前にWindowsの「設定」→「システム」→「バージョン情報」を開き、「システムの種類」を確認します。x64とARM64は、ダウンロードページとパッケージの説明に合わせて選んでください。PCのメーカーやブランドだけで判断しないようにしましょう。ダウンロード先はクライアントのダウンロードページにまとめています。特定のバージョン番号を指定したり、すべての配布パッケージに共通する要件としてランタイムのバージョンを挙げたりはしていません。
2. 完全に展開して初回起動する
アーカイブ版は、すべてのファイルを展開してから v2rayN.exe を実行してください。圧縮ソフト内から実行したり、このファイルだけをコピーしたりすると、依存ファイルやコア、リソースが不足する可能性があります。現在のユーザーが書き込み可能な固定フォルダー(例:D:\Tools\v2rayN)を使うのがおすすめです。Dドライブがない場合は、ユーザーフォルダー内に専用のフォルダーを作成してください。
-
パッケージの種類を確認
ダウンロードページでWindows向けのDesktop版またはWPF版を選び、アーキテクチャと実行環境の要件を確認してからダウンロードし、展開します。
-
すべてのファイルを展開
エクスプローラーでアーカイブを右クリックし、「すべて展開」を選択します。圧縮ファイルを開いた状態で実行したり、異なるUI版のファイルを同じフォルダーに上書きしたりしないでください。
-
メインプログラムを起動
展開先フォルダーにある
v2rayN.exeを開きます。通常のシステムプロキシを使う場合は、まず一般ユーザー権限で起動してください。エラーが発生したら、メッセージとログをすべて保存します。 -
待ち受け設定を確認
「設定」→「パラメーター設定」を開き、ローカルの待ち受けアドレスとポートに関する項目を探して、現在の値を記録します。UI版によって、項目が異なるタブに配置されていることがあります。
-
設定が保存されるか確認
設定を保存して通常どおり終了し、もう一度起動して設定が残っていることを確認します。起動のたびに初期状態へ戻る場合は、フォルダーへの書き込み権限や、別の場所にあるプログラムを起動していないかを確認してください。
日本語以外のパスが、必ずしも不具合の原因とは限りません。一部の外部コンポーネントでパスを正しく処理できないことはありますが、まずログにパスやファイルの読み込みエラーがないかを確認しましょう。切り分ける場合は、プログラムを終了し、フォルダー全体を短い英数字のパスにコピーして再試行します。サブスクリプションや設定を復元できるよう、元のフォルダーは残してください。ネットワーク共有フォルダー、同期フォルダー、システム保護対象のフォルダーでは、書き込み権限やファイルロックの問題が起きやすくなります。
3. サブスクリプションを追加してノードを選ぶ
サブスクリプションURLはノード一覧を取得するためのもので、個別ノードの共有リンクとは異なります。まず、受け取ったURLが完全なサブスクリプションURLであることを確認し、「サブスクリプショングループ」→「サブスクリプショングループの設定」を開きます。グループを追加し、名前とURLを入力して保存してください。画面上で追加操作が「+」と表示されていても、追加されるのはサブスクリプショングループであり、サーバー設定ではありません。
- URLを入力:コピー時に混入した空白や改行を取り除き、URLのパスとクエリパラメーターはそのまま残します。名前は「メイン」など任意のものを付けられます。アカウント情報を含める必要はありません。
- グループを更新:「サブスクリプショングループ」メニューから、対象のグループを更新するコマンドを選びます。利用可能なノードがまだない場合は、まず「プロキシを使用せずに更新」を試してください。直接接続に失敗し、利用可能な接続がある場合は、「プロキシ経由で更新」を試します。
- 結果を確認:ログでリクエストの成否を確認し、ノードが追加したグループに登録されているか確認します。一覧が空の場合、サブスクリプションの期限切れ、サーバーから空の内容が返されたこと、現在のバージョンで形式を認識できないことなどが考えられます。
- 使用するノードに設定:サーバー一覧で対象ノードを右クリックし、「アクティブサーバーに設定」を選びます。一覧にノードが表示されていても、現在の接続先に設定されているとは限りません。
V2Rayで使うプロトコルは、サービス提供元から指定されたノード情報と、使用中のコアの対応状況に基づいて選びます。VLESS、VMess、TLS、トランスポート方式などの項目を見ても、「最適化」のためにサーバーアドレス、ポート、ユーザーID、サーバー名を安易に変更しないでください。これらの値はサーバー側と一致している必要があります。サブスクリプションを更新すると、手動で変更したノードが置き換わる場合もあります。
- VLESS:プロトコル自体にはペイロードを暗号化する機能がありません。安全性はTLSなどの併用方式によって異なるため、プロトコル名だけで接続設定の正否を判断できません。
- VMess:システム時刻を正確に保ってください。時刻が大きくずれていると、認証に影響することがあります。認証エラーをすぐにローカルプロキシのポートが原因だと決めつけないでください。
- コアの対応状況:v2rayNのUIとコアは別のレイヤーです。コアが設定に対応していない場合、UI版を切り替えても通常は解決しません。
4. システムプロキシとローカルポートを確認
アクティブノードを確認したら、v2rayNの「システムプロキシ」メニューから「システムプロキシを自動設定」を選び、システムプロキシ設定に従うブラウザーでテストします。変更されるのはWindowsのプロキシ設定であり、すべてのアプリが利用するとは限りません。ターミナルツールやゲーム、独自のプロキシ設定を使うアプリでは、個別の設定が必要な場合があります。
ローカルの待ち受けポートとリモートサーバーのポートは別のものです。以下では 127.0.0.1:10808 を例にしますが、配布版や過去の設定によってポートが異なる場合や、HTTP、SOCKS、混合の待ち受けが分かれている場合があります。以下のコマンドを使う前に、そのポートがHTTPプロキシのリクエストを受け付けることを確認してください。SOCKS専用ポートをHTTPプロキシとして指定しないでください。
curl.exe --proxy http://127.0.0.1:10808 --head --max-time 15 https://example.com/
- 接続が拒否される:まずローカルポートの指定ミス、コアの未起動、待ち受けの失敗を確認します。この場合、リクエストは通常、リモートノードに到達していません。
- タイムアウトまたはハンドシェイクエラー:コアのログを確認し、リモートへの接続性、認証、トランスポート設定、システム時刻を調べます。ブラウザーのエラーページだけで原因を特定することはできません。
- HTTPレスポンスを受信:今回のリクエストに応答があったことは分かりますが、すべてのドメインやアプリがプロキシ経由で通信しているとは限りません。
このコマンドはプロキシを明示的に指定するため、ターミナルがWindowsのシステムプロキシを読み取るかどうかに依存しません。ブラウザーでは失敗し、コマンドでは成功する場合は、ブラウザーのプロキシ拡張機能、独自のプロキシ設定、バイパスルールを確認します。ブラウザーでは成功し、ターミナルでは失敗する場合は、ツール独自のプロキシ設定や環境変数を確認してください。普段プロキシを使わないときは、クライアントで「システムプロキシを解除」を選んでから終了します。停止した待ち受け先がWindowsに残るのを防げます。
5. V2Rayノードの速度テストと接続確認
V2Rayノードの速度を、単一の遅延値だけで判断しないでください。TCP接続テスト、実際のリクエストテスト、ダウンロード速度テストでは、測定対象が異なります。TCP接続に成功しても認証の成功を意味するとは限らず、遅延が小さくても継続的な転送速度が速いとは限りません。初回設定では、サーバー一覧の右クリックメニューから「実接続」や「遅延」といった名前のテストを選び、その後、到達可能だと分かっているページをブラウザーで開いてください。
| テスト結果 | 判断できること | 次に確認すること |
|---|---|---|
| TCPテストは成功するが、実際のリクエストは失敗 | サーバーのポートには到達できる可能性があるが、認証とトランスポートは未確認 | ユーザー情報、TLSサーバー名、コアのログを確認 |
| 実際のリクエストは成功するが、ブラウザーは失敗 | ノードは利用できるが、アプリまでのプロキシ経路が一致していない可能性がある | システムプロキシ、ブラウザー拡張機能、バイパスリストを確認 |
| 一部のドメインには接続できるが、ほかには接続できない | ルーティング、DNS、接続先サイトの制限が関係している可能性がある | ルールの適用状況と接続先ドメインの名前解決結果を確認 |
| すべてのノードでローカルの待ち受けに失敗する | リモートノードより、共通するローカル環境の確認を優先 | ポートの競合、プロセスの状態、ファイルのアクセス権を確認 |
ノードを比較するときは、テスト対象、ルーティングモード、ネットワーク環境をそろえます。まず少数の候補だけをテストし、大量の並列リクエストによるレート制限を避けましょう。ダウンロード速度テストでは通信量が大きくなる場合があります。サブスクリプションに通信量の上限がある場合は、事前に提供元の利用条件を確認してください。一時的な変動がある場合は再テストできますが、一度の結果をノードの固定性能として扱わないでください。
6. システムプロキシとv2rayNのTUNモード
v2rayNのTUNモードは仮想ネットワークインターフェースを使い、ルールに一致するトラフィックを取り込みます。システムプロキシとは対象範囲が異なります。初めて設定する場合は、まずシステムプロキシの動作を確認してください。システムプロキシに従わないアプリがある場合や、より広い範囲のトラフィックを取り込みたい場合にTUNを検討します。こうすると、ノードの問題と仮想インターフェース、ルーティング、DNSの問題を切り分けやすくなります。
アプリがシステムプロキシに従うかどうかで選ぶ
システムプロキシ
- 「システムプロキシ」→「システムプロキシを自動設定」から始めます。
- システムプロキシに従うブラウザーやアプリに適しています。
- 通常、メインプログラムを管理者権限で起動する必要はありません。
- ターミナルはプロキシを明示する引数を使って個別に確認できます。
TUNモード
- 現在の配布パッケージがTUNに対応しているか、必要なコンポーネントがあるかを確認します。
- 管理者権限やサービス、仮想インターフェースが必要になる場合があります。
- 有効にした後、DNS、ルーティング、LANへのアクセスを確認します。
- 問題が起きたら、まずTUNを無効にしてシステムプロキシと比較します。
選択の基準はトラフィックを取り込む必要性です。どちらが「速いか」ではありません。切り替える際は元の設定を残し、一度に変更する条件は一つにしてください。
ほかのVPNや仮想ネットワークアダプターを使っている場合、TUNがデフォルトルート、DNS、インターフェースの優先順位の影響を受けることがあります。複数のトラフィック制御ツールを同時に有効にして、すべてのルーティング設定を一度に変更しないでください。リモートデスクトップでは特に注意が必要です。ルート変更によって接続が切れることがあるため、ローカルで復旧できる手段を用意し、TUNの停止方法も把握しておきましょう。
7. クラッシュ、権限、ポート競合のトラブル対処
トラブルシューティングは、ログに記録された最初の有効なエラーから始めます。画面が開かない、コアが起動しない、サブスクリプションの取得に失敗する、Webページが開けない、という問題はそれぞれ別です。「再ダウンロード」だけでは原因を切り分けられません。発生した手順、選択したUI版、システムアーキテクチャ、エラーメッセージを記録してから、以下の方法を試してください。
ダブルクリックしてもウィンドウが表示されない。ランタイム不足?
まずタスクマネージャーでプロセスが起動していないか確認し、ウィンドウがトレイに隠れていないかも調べます。フレームワーク不足のメッセージが明確に表示された場合は、配布パッケージの要件に合うアーキテクチャのランタイムをインストールしてください。WPF版でDesktop Runtimeを求められた場合、通常の.NET Runtimeでは代用できません。メッセージがない場合は、Windowsの「イベント ビューアー」→「Windowsログ」→「アプリケーション」で、該当する時刻のエラーを確認します。
ログにポート競合と表示される。調べ方は?
PowerShellで以下の待ち受け状態を確認します。例の10808は実際に使っているポートに置き換えてください。PIDを使ってタスクマネージャーの「詳細」からプロセスを特定します。v2rayNが重複して起動している場合は、余分なインスタンスを通常の方法で終了してください。見覚えのないシステムプロセスを強制終了しないでください。
英数字のフォルダーに移したら直った。元のフォルダーは使えない?
これは2回の実行環境が異なっていたことを示すだけで、日本語の文字が原因だとは断定できません。フォルダーのアクセス権、ファイルの完全性、同期フォルダー上にないか、セキュリティソフトの処理履歴を引き続き確認してください。判断の根拠には、ログに記録された具体的なパスエラーを使います。
常に管理者として実行したほうが安定する?
通常のシステムプロキシでは、管理者として実行する必要はありません。ログに設定を書き込めないと表示された場合は、書き込み可能なフォルダーに変更します。TUNの有効化に昇格権限が必要な場合は、現在のリリース情報に従ってください。権限を上げても、サブスクリプションの期限切れ、リモート接続のタイムアウト、誤った認証情報は解決しません。
メインプログラムは動くのに、コアのファイルが見つからない?
ファイルをすべて展開したか確認し、Windowsの「セキュリティ」→「ウイルスと脅威の防止」→「保護の履歴」も確認してください。ブロックの履歴がある場合は、ファイルの入手元とリスク情報を確認してから対応します。セキュリティ機能をすべて無効にしないでください。また、選択したパッケージでコアの準備が別途必要かどうかも確認します。
Get-NetTCPConnection -State Listen -LocalPort 10808 |
Select-Object LocalAddress, LocalPort, OwningProcess
検索結果がない場合は、確認時点で該当するTCPの待ち受けがなかった可能性があります。結果が表示された場合も、ポート番号だけで判断せず、待ち受けアドレスとプロセスを確認してください。ローカルポートを変更したら設定を保存し、コアを再読み込みしてからシステムプロキシを設定し直します。ブラウザーやターミナルに手動で入力したプロキシアドレスも更新してください。
8. アップグレード前のバックアップと最終確認
アップグレード前にv2rayNを通常の方法で終了し、関連するコアのプロセスも停止したことを確認してから、元の作業フォルダーをバックアップします。Desktop版とWPF版の設定移行については、それぞれのリリース情報を確認してください。異なるフォルダーをそのまま上書きしても問題ないとは限りません。バックアップにはサブスクリプションURLやノードの認証情報が含まれる場合があるため、個人用の場所に保管し、一般公開のクラウドストレージにはアップロードしないでください。
- メインプログラム:起動と通常終了ができ、再起動後も設定が保存されている。
- サブスクリプション:グループを正常に更新でき、アクティブノードを確認でき、ログに解析エラーが繰り返し記録されていない。
- コア:ローカルの待ち受けが成功し、ポート競合やファイル不足のメッセージが表示されない。
- プロキシ:ブラウザーとプロキシを明示したコマンドの結果を比較でき、ルーティングルールが想定どおりに動作する。
- 終了:使用を終えたらシステムプロキシを解除する。TUNを有効にしていた場合は、インターフェースとルートが元に戻ったことを確認する。
Windows版V2Rayクライアントの設定では、どのUIをインストールしたかよりも、ノード、コア、ルーティング、アプリの設定が一致しているかが重要です。同じサービスをAndroid端末でも使う場合は、ダウンロードページでv2rayNGまたはv2flyNGの配布先を確認できます。v2rayNGはXrayコア、v2flyNGはV2Flyコアを使用するため、対応プロトコルをそれぞれ確認してください。v2rayNGでもサブスクリプションを個別に更新する必要があります。デスクトップでノードを変更しても、別の端末には自動で同期されません。