Windowsでv2rayNをダブルクリックしてもウィンドウが表示されない、起動直後に閉じる場合や、Androidでv2rayNGの起動に問題がある場合に向けた解説です。まずアプリ本体の終了とコアの起動失敗を切り分け、ランタイム、完全な展開、フォルダーへの書き込み権限、セキュリティソフトの記録、設定の分離という順に確認します。一度に変更する項目は一つにし、エラーの原文と旧設定を保管してください。接続の問題を画面のクラッシュと混同しないことが大切です。
まず確認:ウィンドウが閉じるのか、コアが起動しないのか
v2rayNはクライアントの画面を表示し、Xrayなどのコアがプロキシ通信を処理します。メインウィンドウが表示されない場合と、画面は正常でも下部ログにエラーが出る場合では、調べる箇所が異なります。VMessやVLESSの設定ミスは通常、接続に影響するもので、まずランタイムの再インストールを試すべき症状ではありません。
Ctrl + Shift + Escで「タスク マネージャー」を開き、「詳細」からv2rayN.exeを探します。プロセスが残っている場合は、タスクバーの通知領域にある隠れたアイコンを確認し、トレイからウィンドウを戻してみてください。何度も連続してダブルクリックすると、既存のプロセス、トレイへの最小化、起動失敗を区別しにくくなります。
| 症状 | まず確認する項目 | 判断材料 |
|---|---|---|
| ダブルクリック後、プロセスがすぐ終了する | ランタイム、アプリの異常、セキュリティソフトによるブロック | 起動時のメッセージとWindowsのアプリケーションログ |
| プロセスはあるがウィンドウが表示されない | トレイへの最小化、ウィンドウ位置、既存プロセス | 通知領域とタスク マネージャー |
| ウィンドウは正常だが、コアの起動に失敗する | コアのファイル、設定、ローカルの待ち受けポート | クライアント画面下部のログ |
| 起動は正常だが、Webページを開けない | システムプロキシ、ルーティング、DNS | 接続ログとブラウザーのプロキシ設定 |
たとえばログにaddress already in useと表示され、127.0.0.1:10808が関係している場合、待ち受けポートが使用中の可能性があります。10808はよく使われる設定値にすぎないため、実際の設定を確認してください。「接続できない」というだけで、アプリがクラッシュしたと判断することはできません。
.NETランタイム:フレームワークとアーキテクチャを確認
Windows版v2rayNの依存関係は、リリースのバージョンやパッケージ形式によって異なります。WPF版では通常、対応するバージョンの.NET Desktop Runtimeが必要です。ほかのデスクトップ版はパッケージ内の説明や起動時の表示を確認してください。自己完結型パッケージにはランタイムが含まれている場合もあります。古いバージョンの要件を、すべての版に当てはめないでください。
You must install or update .NET to run this application.
原因と対処:.NETホストが、アプリに必要なランタイムを見つけられていません。表示されたフレームワーク名、バージョン、アーキテクチャを控え、その3点に合うランタイムをインストールしてから、アプリを再起動してください。
BadImageFormatException
原因と対処:アーキテクチャが合わない、または破損したバイナリコンポーネントを読み込んだ可能性があります。まずインストールパッケージがx64、x86、ARM64のどれかを確認し、完全なパッケージを新しいフォルダーに展開して試してください。例外の名前だけでランタイム不足と断定することはできません。
「設定」→「システム」→「バージョン情報」で、Windowsの「システムの種類」を確認します。x64アプリには通常x64ランタイムが必要で、x86ランタイムだけでは代用できません。必要なフレームワークがMicrosoft.WindowsDesktop.Appと表示された場合は、通常の.NET RuntimeやASP.NET Core Runtimeではなく、Desktop Runtimeを選んでください。
PowerShellでは、次の読み取り専用コマンドを実行できます。1つ目は、そのコマンドに対応する.NETホストが検出できるランタイムを一覧表示し、2つ目は現在の展開先にあるアプリのランタイム設定を読み取ります。実行前に、実際のv2rayNフォルダーへ移動してください。
dotnet --list-runtimes
Get-ChildItem -File -Filter "*.runtimeconfig.json" | Get-Content
Microsoft.WindowsDesktop.App 8.0.xと表示されても、インストールされているのが8.0系であることを示すだけで、別のメジャーバージョンを必要とするアプリが起動できるとは限りません。- アプリの設定で9.0系が必要とされている場合、「8.0をインストール済み」でも要件を満たしません。マイナーバージョンの選択にはアプリのランタイムロールフォワード設定も関係するため、起動時の表示を確認してください。
dotnetが見つからないと表示されても、検索パスやインストールしたランタイムのアーキテクチャが原因の可能性があります。「設定」→「アプリ」→「インストールされているアプリ」も確認してください。- ランタイム設定ファイルが見つからなくても、バージョンを合わせようとして自分でファイルを作成しないでください。まずパッケージの種類と、完全に展開できているかを確認します。
ランタイムはMicrosoft公式のダウンロードページから入手してください。クライアントを実行するだけなら、SDKのインストールは必要ありません。インストール後は、実行中のプロセスを終了してから再試行します。インストーラーからWindowsの再起動を求められた場合は、先に再起動してください。
完全に展開し、フォルダーの権限を確認する:新しい場所で比較
圧縮ファイルのプレビュー画面からアプリを実行すると、実行ファイルだけが一時的に展開され、ほかの依存ファイルが正しい場所に置かれないことがあります。古いフォルダーに新しい版を上書きすると、互換性のないファイルが残る場合もあります。確実に比較するには、元のフォルダーを残し、同じ完全なパッケージを現在のユーザーが書き込める新しいフォルダーに展開してください。
-
旧プロセスを終了する
トレイのメニューからv2rayNを終了し、「タスク マネージャー」→「詳細」で旧プロセスが終了したことを確認します。旧フォルダー全体をバックアップしてください。バージョンによってデータ保存先を変更できる場合は、その場所もバックアップします。
-
テスト用フォルダーを作成する
Win + Rを押して%LOCALAPPDATA%と入力し、開いた場所にv2rayN-Testを作成します。圧縮ファイル内や読み取り専用のメディア、組織のポリシーで制限された場所には作成しないでください。 -
ファイルをすべて展開する
エクスプローラーで圧縮ファイルを右クリックし、「すべて展開」を選びます。パッケージ内のフォルダー構成はそのまま保ってください。インストーラーが含まれている場合は、パッケージの手順に従ってインストールし、メインプログラムだけをコピーしないでください。
-
書き込み権限を確認する
実際の展開先で右クリックし、「新規作成」→「テキスト ドキュメント」を選びます。保存後に削除してください。作成できない場合は、フォルダーの「プロパティ」→「セキュリティ」で現在のユーザーの権限を確認します。すべてのユーザーにフルコントロールを付与しないでください。
-
設定を読み込まずに起動する
まず新しいフォルダー内のアプリを起動し、旧設定をインポートせず、TUNも有効にしないでください。メインウィンドウが安定して表示されることを確認したら、必要なノードやサブスクリプションを一つずつ追加します。設定の種類ごとに戻して、その都度再起動して確認してください。
通常の画面起動で、常に管理者権限を使うべきではありません。管理者として実行した場合にだけ正常に動くなら、データフォルダーへの書き込み権限やセキュリティポリシーを確認してください。TUNの仮想ネットワークアダプター操作には追加の権限が必要な場合がありますが、通常の起動トラブルとは分けて考えます。
新しいフォルダーでは起動でき、古いフォルダーでは起動できない場合、旧ファイル、設定、権限の範囲に問題がある可能性が高いものの、特定の設定ファイルが破損しているとは限りません。古いフォルダー全体を新しい場所に上書きすると、切り分けた問題のあるファイルまで戻ってしまいます。
セキュリティソフトのブロックと異常ログ:記録をもとに確認
ダブルクリックしても何も表示されない場合や、メインプログラムは残っているのにコアのファイルが消えている場合は、セキュリティソフトの処理履歴を確認します。Windowsでは「Windows セキュリティ」→「ウイルスと脅威の防止」→「保護の履歴」を開き、処理されたファイルのパスと日時が今回の起動と一致するか確認してください。
パッケージの入手元と対象ファイルの用途を確認してから、そのファイルの復元やルール変更を検討してください。テストのためにすべての保護機能を無効にしたり、ダウンロードフォルダー全体を除外対象にしたりしないでください。組織が管理する端末では、制限を回避せず管理者にポリシーを確認してもらいましょう。
UnauthorizedAccessException
原因と対処:アプリがアクセスしようとしたパスへのアクセスが拒否されています。エラーに表示された実際のパスを確認し、フォルダーに書き込みできるかを調べます。「ランサムウェアの防止」にある「コントロールされたフォルダー アクセス」にブロックの記録がないかも確認してください。
FileNotFoundException
原因と対処:必要なファイルまたは依存ファイルが見つかりません。完全に展開されているか、隔離履歴がないかを確認し、アーキテクチャに合った完全なパッケージを入手し直してください。出所不明のサイトから同名のDLLを個別にダウンロードし、フォルダーに追加しないでください。
保護の履歴に該当する記録がない場合は、Win + Rを押してeventvwr.mscと入力し、「Windowsログ」→「Application」を開きます。起動時刻付近にある「.NET Runtime」または「Application Error」をソースとするイベントを探し、障害が発生したアプリケーションのパス、例外の種類、障害モジュール名を控えてください。
- イベント1026には、.NETアプリケーションの未処理例外が記録されることがあります。ただし、クラッシュのたびに同じイベントが記録されるとは限りません。
- イベント1000は、アプリケーションエラーでよく見られます。原因を特定する手がかりにはなりますが、根本原因が確定したことを意味するわけではありません。
- ログを共有する前に、サブスクリプションのURL、ノードのアドレス、UUID、パスワード、個人名を含むフォルダー名を削除してください。まずは例外名、モジュールのバージョン、発生時刻があれば分析を始められます。
更新後にクラッシュする場合:設定を一つずつ戻す
設定を読み込まない新しいフォルダーでは起動でき、旧データをインポートした後だけ終了する場合は、復元の手順を分けて確認します。まず設定を一つ追加し、次にサブスクリプションのグループ、最後にルーティング、DNS、TUNの設定を戻してください。コアを切り替える場合は、設定項目の互換性も確認します。すべてのコアが同じ設定を受け付けるとは限りません。
- まず画面を確認:システムプロキシを使わず、TUNも有効にせずにアプリを終了して再起動し、画面が安定して表示されることを確認します。
- 次にコアを確認:クライアントが対応する方法で設定を追加し、ログで設定の読み込み結果を確認します。見慣れない項目を手作業で継ぎ足して移行しないでください。
- 最後に通信の引き継ぎを確認:画面とコアが正常に動作した後で、システムプロキシまたはTUNを有効にします。切り分け時は一度にどちらか一方だけを有効にし、競合する要因を減らしてください。
- 元に戻せるバックアップを保存:各段階が終わるたびにバックアップを保存します。問題が起きたら一つ前の段階に戻し、データを何度もすべて消去するのは避けてください。
「サブスクリプションを更新」を、すべての起動問題に対する解決策と考えないでください。サブスクリプションはノード設定を配信するもので、デスクトップランタイムの不足やWindowsのフォルダー権限は修復できません。以前使えていたバージョンに戻して比較する場合も、専用のフォルダーと対応するバックアップを使い、新旧バージョンが同じデータを同時に変更しないようにしてください。
v2rayNGの強制終了:アプリの終了とVPNの未許可を切り分ける
Android版v2rayNGはXrayコアを使用し、Windowsの.NET Desktop Runtimeには依存しません。確認する順序は、アプリのバージョン、OSとの互換性、ストレージの空き容量、設定、VPNの許可です。v2flyNGはv2flyコアを使用するため、デスクトップ版ランタイムの対処法は適用できません。
Androidの「設定」→「アプリ」→「v2rayNG」→「ストレージとキャッシュ」を開き、空き容量を確認して「キャッシュを削除」を試してください。システムによっては「ストレージ使用量」と表示されます。「ストレージを消去」やアプリのアンインストールは、アプリのデータが削除されることが多いため、必要な設定をエクスポートしてから行ってください。
v2rayNGで接続をタップすると終了する場合、まず何を確認する?
ホーム画面に戻るのか、サービスが停止するのか、VPNの許可画面をキャンセルしたのかを切り分けてください。アプリとAndroidのバージョンを控え、ほかのVPNサービスを終了してから再試行します。それでもプロセスがクラッシュする場合は、システムのクラッシュ記録を確認してください。
VPNの許可をキャンセルした場合、再インストールが必要?
通常は必要ありません。v2rayNGに戻って接続をもう一度開始し、システムの「接続リクエスト」ダイアログで許可してください。許可しないとサービスを開始できませんが、アプリがクラッシュしたことにはなりません。
画面ロック後に切断する場合、強制終了?
必ずしもそうではありません。「設定」→「アプリ」→「v2rayNG」→「バッテリー」で、バックグラウンド動作の制限を確認してください。システムによっては、自動起動の設定も確認が必要です。このアプリだけ設定を変更し、画面ロックの前後でサービスが動作しているか確認します。
キャッシュを削除しても強制終了する場合、すべてのデータを消去すべき?
まずサブスクリプションと必要な設定をバックアップしてから、アプリデータのリセットを検討してください。データが空の状態でも終了する場合は、パッケージのアーキテクチャ、OSの互換性要件、インストールが完全かどうかを確認します。同じ設定を何度もインポートしないでください。
Androidのアプリ専用ストレージでは、通常、従来型のストレージ権限を別途許可する必要はありません。ファイルをインポートするときは、システムのファイル選択画面からアクセスを許可できます。「すべてのファイルへのアクセス」を許可すれば解決する、というわけではありません。VPNの許可とファイルアクセスの許可は別のものなので、実際のエラーに応じて対処してください。
修復を確認:3つの結果をチェック
一度ウィンドウが開いただけでは、問題が解決したとは判断できません。まず通常の権限で起動し、正常に終了して再起動できることを確認します。日常的なプロキシ設定を戻すのはその後です。これにより、実行環境が修復されたのか、一時的に設定の問題を回避できただけなのかを判断できます。
- 画面が安定:起動と正常終了を3回続けて行い、タスク マネージャーに意図しない旧プロセスが残っていないことを確認します。
- 設定を保存できる:元に戻せる画面設定を一つ変更して終了し、再起動後に設定が保持されていること、フォルダーへのアクセスエラーが出ないことを確認します。
- コアが動作する:有効な設定を一つ使い、依存ファイルの不足、設定の解析失敗、ポートの競合がログにないことを確認してから、必要なネットワーク接続をテストします。
まだクラッシュする場合は、OSとクライアントのバージョン、パッケージのアーキテクチャ、完全に展開したかどうか、新しいフォルダーでのテスト結果、エラーの原文を準備してください。「何度も再インストールしたが直らない」より、原因の特定に役立ちます。ネットワーク接続に問題が残る場合は、システムプロキシ、DNS、ルーティングの確認に進み、正常と確認できたランタイムは変更しないでください。