v2rayNが起動直後に落ちるときの対処法|.NETランタイム・フォルダー権限・設定破損

v2rayNを起動するとすぐ閉じる場合は、.NETデスクトップランタイムの不足、インストール先の権限、設定ファイルの破損を順に確認してください。

この記事の概要

v2rayNをダブルクリックしても画面が表示されない、起動後すぐ終了する、アップデート後に開けなくなった場合の対処法です。まず画面プロセスのクラッシュとコアプロセスの起動失敗を切り分け、ランタイム、パッケージのアーキテクチャ、書き込み権限、ユーザー設定を確認します。主な対象はWindowsです。macOSのアプリ権限やアーキテクチャの問題は別途説明します。作業前にバックアップを取り、条件を一つずつ変えて検証することで、画面を復旧する際にサブスクリプションやルーティング設定を失わないようにします。

1. 起動直後の終了か、ウィンドウ非表示・コアの起動失敗かを確認

「開かない」からといって、必ずしもアプリがクラッシュしたとは限りません。v2rayNはメインウィンドウを閉じても通知領域で動作し続けることがあり、すでに別のインスタンスが起動していると、新しいウィンドウが表示されない場合もあります。Windowsではタスクバーの隠れているインジケーターを確認し、次にタスクマネージャーの「詳細」タブでv2rayN.exeを探してください。プロセスが動作している場合は、通知領域からメイン画面を復元します。何度もダブルクリックして状況を複雑にしないでください。

確認できる症状まず疑う点次に行うこと
プロセスが一瞬表示されて消えるランタイム、権限、設定の異常起動時の出力とシステムイベントを確認
プロセスは動作中だが、メインウィンドウが見えない通知領域に最小化されている、またはウィンドウ位置に問題がある通知領域から復元し、外部ディスプレイを外して再確認
画面は開くが、ログにコアの終了が記録されるコアファイル、生成された設定、待ち受けポートの異常画面側のランタイムを再インストールする前に、最初のコアエラーを確認
TUNを有効にした場合のみ終了またはエラーが発生管理者権限、ドライバー、仮想ネットワークアダプターに関連する問題まずTUNを無効にし、通常のプロキシモードで動作を確認

作業を続ける前に、通知領域からアプリを終了してください。画面が応答しない場合は、タスクマネージャーで該当プロセスを終了します。アプリのフォルダー全体を別の場所にコピーし、そのバージョンが実際に使っているユーザーデータフォルダーもバックアップしてください。サブスクリプションURL、ノードのUUID、パスワード、秘密鍵は機密情報です。スクリーンショットやログを共有する際は必ず隠してください。

プロセスを確認データをバックアップエラーを確認一項目ずつ修正再起動して検証

2. 起動エラーを確認し、必要な.NETをインストール

Windowsのフレームワーク依存パッケージでは、必要な.NETランタイムをシステムにインストールする必要があります。一方、自己完結型パッケージには通常ランタイムが含まれています。「以前.NETをインストールした」だけで、ランタイムの問題を除外しないでください。デスクトップアプリにはMicrosoft.WindowsDesktop.Appが必要な場合があり、Microsoft.NETCore.AppやASP.NET Coreランタイムだけでは代用できません。x64とARM64も、それぞれ対応するものが必要です。

解凍したアプリのフォルダーでPowerShellを開き、次のコマンドを実行します。1つ目はアプリの出力を残せるか試し、2つ目は現在認識されているランタイムを一覧表示し、3つ目はパッケージが要求するランタイムを確認します。GUIアプリの中にはエラーをターミナルに出力しないものもあるため、画面に何も表示されないことだけで正常起動と判断しないでください。

.\v2rayN.exe
dotnet --list-runtimes
Get-ChildItem -Filter "*.runtimeconfig.json" | Get-Content

dotnetコマンドが見つからない場合、ランタイムが未インストールの可能性のほか、コマンド検索パスが更新されていない可能性もあります。自己完結型パッケージなら、システムにコマンドがなくても動作します。パッケージの種類と起動時のメッセージをあわせて判断してください。runtimeconfig.jsonでframeworkまたはframeworksのnameとversionを確認します。たとえばMicrosoft.WindowsDesktop.Appを要求するパッケージには、Microsoftが提供する対応するメジャーバージョンのデスクトップランタイムをインストールしてください。要求を回避するために設定ファイルのバージョンを書き換えてはいけません。

エラー:You must install or update .NET to run this application.

原因と対処:必要なランタイムが見つかっていません。ダイアログに表示されたフレームワーク名、バージョン、Architectureを確認し、対応するデスクトップランタイムをインストールしてから再起動します。新しいメジャーバージョンを一つ追加するだけでは、古いメジャーバージョンの要件を満たせない場合があります。

エラー:The framework 'Microsoft.WindowsDesktop.App' was not found.

原因と対処:Windowsデスクトップフレームワークが不足しているか、インストールしたランタイムのアーキテクチャがアプリと一致していません。ダウンロードしたパッケージのx64またはARM64表記を確認し、同じアーキテクチャで、必要なメジャーバージョンに対応する.NET Desktop Runtimeをインストールしてください。

エラー:This app can't run on your PC

原因と対処:Windowsの汎用的な起動エラーで、システムと実行ファイルの互換性が関係している可能性があります。「設定」→「システム」→「バージョン情報」でシステムの種類を確認し、使用しているパッケージのシステム要件と照らし合わせてください。ノードの問題と決めつけないでください。

結論:起動時に指定されたフレームワークを確認

フレームワーク名、メジャーバージョン、アーキテクチャを確認してから、不足しているものをインストールします。ランタイムを追加しても起動直後に終了する場合は、新たなエラーを記録して次の原因を調べてください。異なるバージョンを何度もインストールして試す必要はありません。

3. 解凍状態とフォルダーの書き込み権限を確認

圧縮ファイルのプレビュー画面から実行ファイルを直接ダブルクリックすると、実行ファイルだけが一時的に展開され、依存ライブラリやリソース、コアファイルがそろわないことがあります。いったんアプリを終了し、パッケージ全体を専用フォルダーに解凍してから起動してください。アップデートの際、異なるアーキテクチャや異なる画面パッケージのファイルを混ぜて上書きしないでください。

  1. 書き込み可能なフォルダーを作成:たとえばエクスプローラーのアドレスバーに%LOCALAPPDATA%と入力し、テスト用のv2rayN-testフォルダーを作成します。システムの保護対象フォルダー、ネットワーク共有、同期中のフォルダーは避けてください。
  2. 書き込み可能か確認:アプリが実際に使用しているデータフォルダーにテキストファイルを作成し、保存してから削除します。アクセス拒否が表示された場合は、現在のアカウントの権限とセキュリティソフトのフォルダー保護履歴を確認してください。
  3. パッケージ全体を解凍し直す:元のフォルダーは残し、新しいフォルダーに同じ配布元・同じアーキテクチャの完全なパッケージを解凍します。解凍中にエラーが発生した場合は、圧縮ファイルの破損やディスクの問題を先に確認してください。
  4. ブロック履歴を確認:Windowsで「Windows セキュリティ」→「ウイルスと脅威の防止」→「保護の履歴」を開き、ファイルが隔離されていないか確認します。配布元と警告の詳細を確認し、保護機能をすべて無効にすることは避けてください。

通常の画面操作に、管理者権限を常用する必要はありません。「管理者として実行」したときだけ起動する場合は、書き込み先またはアクセス権限に問題が残っている可能性があります。TUNなど管理者権限が必要な機能は、別途切り分けてください。まず通常の権限でメイン画面が起動するか確認すると、権限の違いによる誤判定を防げます。

エラー:Access to the path ... is denied.

原因と対処:アプリがアクセスしようとしたパスへのアクセスが拒否されています。エラーに表示されたパスを手がかりに、設定、ログ、一時ファイルのどれに該当するかを確認し、その場所の権限を修正するか、現在のアカウントで書き込めるデータフォルダーに移してください。

4. 設定の破損を切り分け、サブスクリプションとルーティングデータを保持

アップデートの中断、システムの異常終了、ディスク容量不足などにより、読み込めない設定ファイルやデータベースが残ることがあります。この場合、アプリのファイルを上書きしても解決しないことがあります。異常なデータが元の場所に残っているためです。まず、使用中のパッケージがデータを保存する場所を確認してください。バージョンによってはアプリのフォルダー内のguiConfigsなどを使用し、別のパッケージではユーザー設定フォルダーを使う場合があります。実際のファイルやログのパス、該当バージョンの説明を確認し、古い手順にある特定のファイル名を根拠なく削除しないでください。

  1. 完全に終了する:v2rayNと、v2rayNが起動した関連コアプロセスを終了します。終了時に古い状態がディスクへ再度書き込まれるのを防ぎます。
  2. バックアップをコピー:データフォルダー全体を別の場所にコピーし、アプリのバージョン、データの保存先、作業日時を記録します。ノード情報はデータベースに保存される場合があるため、JSONファイル一つだけのバックアップでは不十分です。
  3. 名前を変更して隔離:データの保存先を確認できたら、元の名前の末尾に-backup-20260909を付けるなどしてフォルダー名を変更します。対象は一つだけにしてください。保存先がわからない場合は先にログを確認し、システムフォルダーをまとめて移動しないでください。
  4. 起動を確認:アプリに初期データを作成させます。空の設定で安定して起動し、古いデータを戻すと再び終了する場合は、設定またはデータベースの互換性に原因を絞れます。
  5. 段階的に復元:まずノードを一つだけインポートしてテストし、次にサブスクリプションを復元します。最後にカスタムルーティング、DNS、その他の詳細設定を戻してください。種類を一つ戻すごとに再起動します。

空の設定でも起動直後に終了する場合は、バックアップを戻して実行環境やシステムイベントを調べてください。ファイルを削除し続けるのは避けます。JSONの解析エラーが明示されている場合は、バックアップのコピーでカンマ、引用符、ファイルの途切れを確認できます。データベースの読み書きエラーは、テキストエディターで直接修正しないでください。

5. 画面が開く場合は、コアとポートの競合を確認

v2rayNは管理画面であり、実際のプロキシ接続はXrayなどのコアが処理します。メインウィンドウは開いていて、コアプロセスだけが終了する場合は、コアファイル、設定の生成、待ち受けポートを確認してください。VMessやVLESSノードのタイムアウトは通常、接続段階の問題です。デスクトップランタイムを再インストールしても解決しません。

10808
ローカルの代表的な待ち受けポート(実際の設定を確認)
10809
一部の古い設定で使われるHTTPポートの例

ポートやインバウンドの形式はバージョンによって異なります。まず「設定」→「パラメーター設定」でローカルの待ち受けポートを確認するか、コアが生成した設定ファイルのインバウンドポートを確認してください。次のコマンドは、設定で10808が使われている場合に限り有効です。実際のポートが異なる場合は、コマンド内の数字も置き換えてください。

Get-NetTCPConnection -State Listen -LocalPort 10808 |
  Select-Object LocalAddress, LocalPort, OwningProcess

出力されるOwningProcessはプロセスIDです。タスクマネージャーで照合できます。何も表示されなくても、アプリ全体が正常とは限りません。今回の検索で該当するTCP待ち受けが見つからなかったという意味です。古いコアや別のインスタンスがポートを使用している場合は、そのアプリを正常に終了するか、設定で空いているポートに変更してください。手動プロキシを使うアプリの設定もあわせて変更します。

6. macOSの起動トラブルはWindowsと分けて対処

macOS版のv2rayNはWindowsのデスクトップランタイムを使用しません。Windows Desktop Runtimeをインストールしても、Macアプリの起動問題は解決しません。まずAppleメニューの「このMacについて」でプロセッサの種類を確認し、AppleシリコンまたはIntelプロセッサに対応するパッケージを選んでください。システムからアーキテクチャの非互換性を指摘された場合は、設定を何度も変更するのではなく、対応するパッケージに切り替えます。

Macでも「アプリが開かない」ケースと「コアが起動しない」ケースを分けて考えます。メイン画面は正常で、システムプロキシまたはTUNを有効にした場合だけ問題が起きるなら、操作内容と権限確認の表示を記録して、該当機能を調べてください。Windowsのレジストリ、デスクトップランタイム、フォルダーパスをMacにそのまま当てはめないでください。

7. 修復後の確認とよくある質問

ウィンドウが戻ったら、次に原因を確認します。WindowsではWin + Rを押してeventvwr.mscと入力し、「Windowsログ」→「アプリケーション」で、起動時刻に対応する.NET RuntimeまたはApplication Errorの記録を探します。例外の種類、障害モジュール、発生時刻を保存してください。イベントIDは調査の手がかりにすぎず、番号だけで再インストールするものを決めないでください。

最新の.NETをインストールしたのに、なぜ起動直後に終了するの?

最新のメジャーバージョンが、アプリの要求するメジャーバージョンの代わりになるとは限りません。起動時のダイアログまたはruntimeconfig.jsonを再確認し、Windowsデスクトップフレームワークが必要か、ランタイムのアーキテクチャがアプリと一致しているかを調べてください。すべて一致している場合は、アプリケーションイベントと設定を確認します。

アンインストールして再インストールすると、サブスクリプションは消える?

データの保存先とアンインストール方法によります。作業前にアプリを終了し、データフォルダー全体をコピーしてください。画面を開ける場合は、必要な内容を別途エクスポートします。「アプリを解凍し直す」だけでサブスクリプションもバックアップされたと考えないでください。

新しいフォルダーに移したら起動できた。元のフォルダーはどうすればいい?

新しいフォルダーで起動できても、起動条件が満たされたとわかるだけで、権限の問題か古いデータの異常かはまだ判別できません。新しいインスタンスが古いデータを読み込んでいないことを確認してから、サブスクリプションとルーティングを段階的に戻します。再起動を複数回行って確認できるまで、元のフォルダーは残してください。

復旧後は起動するのに、ブラウザーでインターネットに接続できない

まずコアのログを確認し、次にシステムプロキシと実際の待ち受けポートを照合してください。クラッシュ前に設定されたシステムプロキシが、停止中のローカルポートを参照したままの場合があります。Windowsでは「設定」→「ネットワークとインターネット」→「プロキシ」を開き、手動プロキシのアドレスが現在のクライアントと一致するか確認します。

結論:段階的な再現テストで最終確認

まずデフォルト設定で起動し、終了後にもう一度開けることを確認します。次にノード一つで接続をテストし、最後にサブスクリプション、ルーティング、TUNを戻してください。問い合わせには、システムのバージョン、パッケージのアーキテクチャ、自己完結型かどうか、例外の完全な内容、実施した切り分けテストを添えると、「起動直後に落ちる」という説明だけより原因を特定しやすくなります。

v2rayNをダウンロード