v2rayNのAvalonia版とWPF版の主な違いは、画面のフレームワークと対応プラットフォームです。プロキシプロトコルが異なるわけではありません。インストールやOS間の移行、起動トラブルの解決を検討している方向けに、OS、CPUアーキテクチャ、実行環境、既存設定の4点からインストールパッケージを選ぶ方法を解説します。設定後は同じノードとルーティングで接続を確認しましょう。画面の変化をコアの機能変更と混同せずに済みます。
1. AvaloniaとWPF:画面とプロキシコアを区別する
WPFはWindows向けのデスクトップUIフレームワークです。v2rayNのWPF版はWindowsで一般的なデスクトップ操作を採用しており、Windowsでの使い方に慣れている方に向いています。AvaloniaはクロスプラットフォームのUIフレームワークで、v2rayN Avalonia版はWindows・macOS・Linuxに対応します。ただし、インストールパッケージは各OSに合ったものを選ぶ必要があります。
v2rayNはノード管理、サブスクリプション更新、ルーティング設定、コアプロセス管理を担います。実際の接続処理は選択したプロキシコアが行います。VMessやVLESSはプロトコル、AvaloniaやWPFはUI技術です。UIフレームワークを変えても、VMessノードが自動的にVLESSへ変わることはなく、サーバー側にトランスポートやセキュリティ設定が追加されるわけでもありません。
| 比較項目 | Avalonia版 | WPF版 |
|---|---|---|
| 対応OS | Windows、macOS、Linux | Windows |
| 画面の基盤 | Avaloniaのクロスプラットフォーム向けコントロールとウィンドウ | WPFのWindowsデスクトップ向けコントロールとウィンドウ |
| インストールパッケージの選び方 | OSとCPUアーキテクチャの両方を確認 | WindowsとCPUアーキテクチャを確認 |
| プロトコル対応の確認 | 選択したコア、バージョン、ノード設定を確認 | 選択したコア、バージョン、ノード設定を確認 |
| OSとの連携 | トレイ、プロキシ、権限の挙動はOSによって異なる | Windowsのプロキシ機能とデスクトップの仕組みを利用 |
2. 動作環境:OS・アーキテクチャ・実行環境を確認
「Windows対応」とあっても、過去のすべてのWindowsバージョンで動作するとは限りません。最低OSバージョン、必要な.NETのバージョン、コアの対応範囲はリリースごとに変わる可能性があります。インストール前に対象バージョンの説明を確認してください。旧WPF版での起動実績を、新しいデスクトップ版にもそのまま当てはめることはできません。
- OSのバージョンを確認します。Windowsでは
Win + Rを押してwinverと入力します。macOSでは「このMacについて」、Linuxでは以下のコマンドの出力を確認します。OS名だけでなく、詳細なバージョンも記録してください。 - CPUアーキテクチャを確認します。Windowsでは「設定」→「システム」→「バージョン情報」でシステムの種類を確認します。LinuxとmacOSでは
uname -mを実行します。一般に、x86_64はx64、aarch64またはarm64はARM64を表します。 - パッケージの配布形式を確認します。フレームワーク依存型のパッケージには、対応するランタイムが必要です。自己完結型パッケージには通常、アプリに必要な.NETランタイムが含まれますが、OSのネイティブライブラリが別途必要な場合があります。ファイルサイズから判断せず、パッケージの説明を確認してください。
- 起動エラーの全文を保存します。ランタイムやネイティブライブラリの不足、アーキテクチャの不一致が原因の場合は、該当する依存関係を解決してください。起動時の問題は、サブスクリプションURLやノードのパスワードとは無関係です。
# Linux:ディストリビューションとアーキテクチャを確認
cat /etc/os-release
uname -m
# dotnetコマンドがインストール済みの場合:ランタイム一覧を表示
dotnet --list-runtimes
フレームワーク依存型のWPFパッケージでは、通常の.NET Runtimeではなく、対応する.NET Desktop Runtimeが必要です。AvaloniaパッケージにWPFのデスクトップランタイム要件を当てはめないでください。説明に.NET 8と記載されている場合は、対応する8.xランタイムがあるか確認しましょう。別のメジャーバージョンだけでは要件を満たさない場合があります。これは確認方法の説明であり、すべてのv2rayNリリースパッケージが.NET 8を使用するという意味ではありません。
- Windows:実行前にファイルをすべて展開してください。実行ファイルだけを圧縮ファイルから取り出すと、リソースやコアのファイルが不足することがあります。
- macOS:CPUに合ったパッケージを選びましょう。セキュリティ警告が表示された場合は、まず配布元を確認してから、macOSのセキュリティ設定に従って対処してください。システム全体のセキュリティ保護を無効にするのは避けましょう。
- Linux:ディストリビューション、デスクトップセッション、パッケージ形式を確認してください。GUIアプリでウィンドウを表示できるかどうかは、.NETの有無だけでなく、デスクトップ環境やネイティブライブラリにも左右されます。
3. バージョンの選び方:クロスプラットフォームでの新規導入とWindowsの既存設定
複数のデスクトップOSで使う場合は、まずAvalonia版を検討するとよいでしょう。Windowsのみで使い、WPF版のサブスクリプション、ルーティング、トレイ操作が安定しているなら、現在のバージョンを使い続けるのも合理的です。選択の基準は利用環境であり、特定のUIフレームワークのほうが接続速度に優れるという意味ではありません。
Avalonia版
おすすめクロスプラットフォームで新規導入する際の有力候補です。Windows・macOS・Linuxで共通した操作に慣れることができますが、インストールパッケージ、システムプロキシ、トレイ機能は各OSで確認してください。
おすすめの用途:複数OSでの利用、macOSまたはLinuxへの導入、デスクトップ設定の再構築
WPF版
Windows向けの選択肢です。使い慣れたショートカットやウィンドウ操作をそのまま利用できます。アップグレード時は、OS要件、コアのバージョン、設定の移行方法を確認してください。メインの実行ファイルだけを置き換えるのは避けましょう。
おすすめの用途:Windows専用端末、既存設定が安定している環境、従来型のデスクトップUIに慣れている方
選び方のポイント:OSで絞り込み、既存設定で動作を確認
macOSとLinuxでは、各プラットフォームに合ったAvalonia版を選びます。Windowsでは候補のバージョンを別のフォルダーにインストールして試してください。サブスクリプション更新、ノード接続、プロキシ解除後の復旧が正常に動作することを確認してから、普段使いのバージョンを切り替えましょう。
画面の応答性やメモリ使用量は、実際の端末で比較してください。ノード数、ログの更新頻度、画面の拡大率、コアのプロセス、TUNの状態によって結果は変わります。タスクマネージャーでメインウィンドウのプロセスだけを見ても、クライアントとコアを合わせた使用量は分かりません。同じ条件で測定していない場合、2種類のUIに一律の性能順位をつけるのは適切ではありません。
- 同じノード、同じトランスポート方式、同じルーティングルールでテストします。
- 一方のバージョンを終了してからもう一方を起動し、ポートやシステムプロキシの競合を防ぎます。
- ウィンドウの応答、コアの起動エラー、対象サイトへのアクセス結果を記録し、UIの問題と接続の問題を切り分けます。
4. UIの違い:サブスクリプション・システムプロキシ・TUNを個別に確認
どちらのUIも、ノード、サブスクリプション、接続を管理します。ただし、メニューの配置、右クリック時の動作、トレイの操作、通知ウィンドウは異なる場合があります。以下の項目を順に確認し、メニュー名はインストールしたバージョンの表示に従ってください。ボタンの位置が変わったからといって、古い設定ファイルをそのまま上書きしないでください。
| 確認する機能 | 操作場所・確認項目 | 確認結果 |
|---|---|---|
| サブスクリプショングループ | 「サブスクリプショングループ」→「サブスクリプショングループの設定」でURLとグループ名を確認 | 更新後に想定したノードが表示され、重複してインポートされていない |
| ローカルリスナー | 「設定」→「パラメーター設定」でリッスンアドレスとポートを確認 | アプリが使用するアドレス、ポート、プロキシ種別がリスナーの設定と一致している |
| システムプロキシ | クライアントのシステムプロキシ設定とOSのプロキシ設定を確認 | ブラウザーが想定したプロキシを使い、クライアント終了後に元の設定へ戻る |
| ルーティングルール | 選択中のルーティングプリセット、ルールの順序、接続先を確認 | 直接接続するアドレスは直接接続され、プロキシ経由のアドレスはプロキシへ送られる |
| TUNモード | 権限、仮想インターフェース、ルーティング、DNSの動作を確認 | 対象アプリからアクセスでき、LAN内へのアクセスも想定どおり動作する |
システムプロキシは、OSのプロキシ設定に従うアプリで主に利用されます。TUNは仮想ネットワークインターフェースを通じて通信を取り込み、追加の権限が必要になったり、ルーティングやDNSに影響したりすることがあります。AvaloniaのクロスプラットフォームUIでも、OSごとの差は解消されません。Linuxではデスクトップ環境やネットワークツールによっても挙動が変わる場合があります。
- まずTUNを有効にせず、利用可能なノードを1つ起動し、コアのログに設定エラーやリッスンエラーがないことを確認します。
- プロキシを明示したリクエストでローカルの接続先を確認してから、システムプロキシを有効にしてブラウザーでテストします。
- ほかのアプリの通信も取り込む必要がある場合に限り、TUNを有効にしてください。この段階でのみ失敗するなら、権限、インターフェース、ルーティングを重点的に確認します。UIのバージョンを何度も変える必要はありません。
5. 移行時の確認:固定ポートで設定の問題を切り分ける
移行前にクライアントを終了し、既存のユーザー設定とサブスクリプション情報をバックアップします。異なるUIやリリースでは内部の設定形式が変わる場合があります。バージョンにエクスポート、インポート、移行機能がある場合は、そちらを優先してください。互換性が明記されていない場合は、ノードのインポートまたはサブスクリプションの再登録から始め、ルーティングやプロキシの設定を一つずつ戻します。
以下では、ローカルのリッスンアドレス127.0.0.1、ポートの例10808、HTTPS接続先のポート443を使い、最小限の接続経路を確認します。これらはテスト用の値であり、すべてのバージョンの初期値を示すものではありません。実際のポートはパラメーター設定で確認してください。
# 10808でSOCKSサービスを提供している場合のみ使用
# Windowsではcurlをcurl.exeと記述できます
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://v2rayruanjian.com/
socks5hは、接続先のドメイン名をプロキシ側で解決することを示します。現在のリスナーがHTTPにしか対応していない場合は、実際のHTTP接続先を使ってください。ポート番号をそのままにしてプロトコル名だけを変えるのではなく、接続方式を一致させる必要があります。HTTPレスポンスヘッダーが返れば、このリクエストで接続先から応答を受け取れたことが分かります。ただし、1回の成功だけで、すべてのルーティング、DNS、アプリの通信が正しく処理されているとは限りません。
- 接続がすぐに拒否される:コアが起動しているか、ポート番号が正しいか、リスナーが存在するかを確認します。
- ポートが使用中と表示される:もう一方のv2rayNを終了し、ポートが解放されたことを確認してから再テストしてください。2つのバージョンで同時にシステムプロキシを変更しないでください。
- 接続がタイムアウトする:ノードの状態、サーバー側の設定、トランスポート、セキュリティ設定を確認し、ログに記録されたエラーを調べます。
- コマンドは成功するのにブラウザーでは失敗する:システムプロキシ、ブラウザー独自のプロキシ設定、拡張機能の影響を確認し、アプリ側の接続設定に問題を絞り込みます。
移行の判断:プロキシを明示した接続を確認してから普段使いのバージョンを切り替える
新しいバージョンでプロキシを明示したリクエストが成功してから、システムプロキシとTUNを確認してください。古い設定を完全にバックアップし、元のバージョンに戻せる状態を保てば、UI、コア、ルーティングを一度に変更せず、段階的に移行できます。
6. よくある質問:起動できない場合や接続に差がある場合
Windowsではデスクトップ版とWPF版のどちらを選べばよいですか?
Windowsだけで使い、現在のWPF版の設定が安定しているなら、そのまま使い続けられます。複数OSで同じ操作に慣れたい場合は、Avalonia版を別のフォルダーにインストールして試してください。同じノードでサブスクリプション更新、プロキシを明示した接続、システムプロキシを確認してから、普段使いのバージョンを切り替えましょう。
.NETがないと表示されます。ランタイムをインストールしても起動しないのはなぜですか?
まずエラーメッセージに記載されたフレームワーク名、メジャーバージョン、アーキテクチャを確認します。フレームワーク依存型のWPFパッケージでは、対応する.NET Desktop Runtimeが必要な場合があります。通常のRuntimeでは要件を満たさないことがあります。dotnet --list-runtimesで一覧を確認し、インストールしたランタイムのアーキテクチャがアプリと一致しているか確認してください。
Avalonia版に変えたら、以前のVLESSノードに接続できなくなりました。
まずノードの設定がすべてインポートされていることを確認し、選択したコアとそのバージョンを確認してください。トランスポート方式、TLSまたはREALITYのパラメーター、サーバーアドレス、ポートを見直します。ログを確認して設定の解析エラーとネットワークのタイムアウトを切り分けてください。UIフレームワークだけでVLESSの対応状況を判断することはできません。
2つのバージョンを同時に起動して、速度を直接比較できますか?
普段の比較では、1つずつ起動することをおすすめします。2つのバージョンが同じリッスンポートを使ったり、システムプロキシの設定を上書きし合ったりして、テスト結果が不正確になることがあります。一方を終了してからもう一方を起動し、ノード、接続先、ルーティング、テスト時間帯をできるだけそろえて記録してください。
最終的には、実際に確認できた動作環境を基準に選びましょう。インストールパッケージがOSとアーキテクチャに合い、必要な実行環境がそろい、サブスクリプションを更新でき、プロキシ経由で接続でき、終了後にネットワーク設定を元に戻せることが条件です。そのうえで、ウィンドウ、トレイ、設定画面の使い勝手からUIのバージョンを選びます。