v2rayNのAvalonia版とWPF版の違い|クロスプラットフォーム版とWindows版の選び方

v2rayNのAvalonia版とWPF版を、対応OS・画面・機能・実行環境で比較。用途に合った選び方を解説します。

この記事の要点

初めてインストールする場合は、まずOSとプロセッサーのアーキテクチャに合ったパッケージを選び、そのうえでAvalonia版とWPF版を検討します。Windowsでは既存の設定や操作習慣に合わせて選べます。macOSやLinuxでは、それぞれのOS向けのデスクトップ版を選んでください。2つのUIは異なるプロキシプロトコルではなく、画面のフレームワークだけで通信速度を判断することもできません。この記事では、パッケージの選び方、依存関係の確認、設定項目の比較、別ディレクトリを使った移行手順を紹介します。

UIフレームワーク・クライアント・プロキシコアの違い

AvaloniaとWPFは、どちらもGUIの構築に使われる技術です。サーバー一覧、サブスクリプショングループ、設定画面、トレイメニューはクライアントのUIにあたります。接続の確立、プロトコル処理、通信の転送は、クライアントが呼び出すプロキシコアが行います。「画面を変えること」と「プロトコルを変えること」を混同すると、トラブル時の確認箇所を誤る原因になります。

WPFはWindows向けのデスクトップUI技術で、v2rayNのWPF版もWindowsで使用します。AvaloniaはクロスプラットフォームのUI技術で、v2rayNはこれを使って複数のOS向けにデスクトップ版を提供しています。クロスプラットフォームとは、同じUI技術で複数のOS向けにビルドできるという意味であり、Windowsの実行ファイルがそのまま全OSで動くということではありません。

確認の順序:まずコアを確認し、その後にUIを比較

同じVLESSノードでも2つのバージョンで動作が異なる場合は、まずコアのバージョン、ノードのパラメーター、ルーティング、DNS設定をそろえます。そのうえで、UIの設定が保存されていないのか、機能の場所が異なるのかを確認してください。画面の見た目だけでプロトコルの互換性を判断しないようにしましょう。

Avalonia版とWPF版の比較

バージョン選びで特に重要なのは、対象OS、機能の場所、実行環境です。次の表は選択時の目安です。どのリリースでも両バージョンの機能が完全に一致するとは限りません。新機能の対応時期や項目名、画面構成はバージョンによって変わる場合があります。

比較項目 Avalonia版 WPF版
対応OS 配布パッケージに応じてWindows、macOS、Linuxを選択 Windows
プロセッサーのアーキテクチャ 対象OS向けに提供されているx64、ARM64などのパッケージを選択 Windowsデバイスと配布パッケージに対応するアーキテクチャを選択
日常の操作 クロスプラットフォームのUIでサブスクリプション、サーバー、設定を操作 Windows向けUIでサブスクリプション、サーバー、設定を操作
プロキシ機能 実際に使用するコア、バージョン、設定によって決まる 同様に、実際に使用するコア、バージョン、設定によって決まる
実行時の依存関係 ランタイムが同梱されているかどうかと、OS固有の依存関係によって異なる ランタイムの同梱状況によって異なる。フレームワーク依存型のパッケージには、対応する.NET Desktop Runtimeが必要
OSとの連携 トレイ、システムプロキシ、権限の動作はOSによって異なる Windowsのトレイ、システムプロキシ、権限の仕組みに対応

条件をそろえた比較テストがない限り、「特定のUI版は必ずメモリ消費が少ない」「必ず速い」とは言えません。メモリ使用量は、ノード数、ログ表示、コアの動作状況、ウィンドウの表示状態にも左右されます。ダウンロード速度は通常、回線、サーバー負荷、ルーティングルールの適用状況に大きく依存します。

OSと現在の設定に合わせてバージョンを選ぶ

まず動作するパッケージを選び、その後で使いやすいUIを選びましょう。Windowsに新規インストールする場合、ダウンロードページに対応アーキテクチャのAvalonia版があれば、まずそれで設定を始められます。WPF版を安定して使えている場合は、UIフレームワークだけを理由に作業ディレクトリを変更する必要はありません。

Avalonia版

おすすめ

新規インストールの候補として適しています。macOSやLinuxでは各OS向けのパッケージを選択してください。Windowsでも対応するデスクトップ版を選べます。OSごとにトレイ、プロキシ、権限の設定を確認しましょう。

おすすめのユーザー:初めて設定する方、複数のOSで使う方、OSが変わっても似た操作感を保ちたい方。

WPF版

これまでのWindowsでの操作手順を維持したい場合に適しています。サブスクリプション、ルーティング、システムプロキシが問題なく動いているなら、そのまま使い続け、新機能が必要かどうかを切り替えの判断材料にしましょう。

おすすめのユーザー:Windowsのみで使う方、WPFの画面に慣れている方、安定した設定をすでに使っている方。

  1. OSを確認:Windowsでは「設定」→「システム」→「バージョン情報」でシステムの種類を確認できます。macOSでは「このMacについて」でチップ情報を確認してください。
  2. アーキテクチャを確認:x64とARM64を区別してください。PCのメーカーだけで判断したり、OSのビット数とプロセッサーのアーキテクチャを混同したりしないようにしましょう。
  3. パッケージの説明を確認:対象OS、アーキテクチャ、ランタイムの同梱有無、最低システム要件を確認してください。
  4. 必要な機能を確認:TUN、特殊なルーティング、特定のコアが必要な場合は、選んだバージョンに対応する設定項目と実行コンポーネントがあることを確認してください。

実行時の依存関係と初回起動時の確認

「.NETがインストール済み」でも、アプリに必要な実行環境がそろっているとは限りません。ランタイムにはバージョン、アーキテクチャ、種類の違いがあります。WPFアプリにはデスクトップ向けのコンポーネントが必要なため、通常の.NET Runtimeだけでは動作しない場合があります。SDKは開発用であり、初回起動時のトラブルを解決するためにまず導入するものではありません。

依存関係の確認:配布形式に応じた2つの方法

ランタイム同梱パッケージ
  • まず完全に展開し、展開先のディレクトリから起動します。
  • メインの実行ファイルだけをコピーして、同じディレクトリにある依存ファイルを取りこぼさないようにしてください。
  • 起動できない場合は、システム要件、実行権限、セキュリティソフトの記録を確認します。
システムのランタイムに依存するパッケージ
  • エラーダイアログに表示されたランタイム名とメジャーバージョンを控えます。
  • ランタイムのアーキテクチャがアプリのパッケージと一致しているか確認します。
  • WPF版で要求される場合は.NET Desktop Runtimeをインストールし、完了後にプログラムを再起動します。

結論:まずパッケージの説明に従って必要な依存関係を追加します。詳細不明のランタイムを次々にインストールして試すのは避けてください。

Windowsでは、ターミナルで次のコマンドを実行すると、インストール済みの.NETランタイムを確認できます。コマンドを認識できない場合は、パッケージの説明を確認し、システムランタイムが必要か判断してください。このコマンドの結果だけでは、ランタイム同梱パッケージが起動できるかどうかは分かりません。

dotnet --list-runtimes

結果を確認するときは、Microsoft.WindowsDesktop.AppとMicrosoft.NETCore.Appの違いに注意し、エラーメッセージに記載されたバージョン要件と照らし合わせてください。macOSやLinux向けのAvalonia版では、システムのグラフィックライブラリや実行権限が必要な場合もあります。Windowsと同じ方法でランタイムを追加できるとは限りません。ウィンドウが開かない問題と、コアの接続失敗は分けて記録しましょう。後者は通常、クライアントのログを確認する必要があります。

サブスクリプション、システムプロキシ、待ち受けポートの確認手順

どちらのUIでもサーバー一覧を表示できますが、接続環境まで同じとは限りません。「サブスクリプショングループ」→「サブスクリプショングループの設定」、使用中のサーバー、「設定」→「パラメーター設定」、最後に「ルーティング設定」の順に確認してください。ボタンの位置や項目名はバージョンによって異なる場合があるため、実際の画面に合わせて操作します。

ポートは移行時に見落としやすい設定項目です。ここではローカルプロキシの例として127.0.0.1:10808を使い、ポートが競合した場合の候補として10818を示します。これらの値は確認方法を説明するための例であり、すべてのバージョンで同じポートが初期設定されているわけではありません。

127.0.0.1
同じPCからの接続に使うループバックアドレス
10808
この記事で使用する待ち受けポートの例
10818
空き状況を先に確認するポート候補

移行後の確認:クライアントは1つずつ起動

旧バージョンを終了し、旧コアが停止したことを確認してから新バージョンを起動します。ポート使用中のログが出る場合は、まず使用中のプロセスを特定してください。2つを同時に動かす必要があると確認できた場合に限り、2つ目のインスタンスに別のポートを設定し、両方の画面からシステムプロキシを変更しないようにします。

WPF版からAvalonia版への移行手順:別ディレクトリで準備

UIを切り替えるとき、旧ディレクトリをそのまま上書きするのは避けましょう。バージョンによってデータ形式、設定項目、移行処理が異なる可能性があります。ディレクトリ全体をコピーすると、旧コアと新しいファイルが混在することもあります。問題が起きてから旧設定を探すより、戻せるバックアップを残して新しい環境を検証するほうが安全です。

  1. 旧環境を記録:クライアントのバージョン、使用中のコア、アクティブなサブスクリプショングループ、待ち受けポート、ルーティング名、システムプロキシの状態を書き留めます。独自のDNSやTUN設定があれば、あわせて記録してください。
  2. データを保存:現在のバージョンにエクスポートやバックアップ機能があれば利用します。明確な項目がない場合は、プログラムを終了してから設定データのディレクトリをバックアップしてください。バックアップにはノードの認証情報が含まれるため、安全な場所に保管します。
  3. 新しいディレクトリを用意:新しいパッケージを専用ディレクトリに完全に展開します。旧ディレクトリを上書きせず、2つのプログラムから同じ設定ファイルを書き換えないようにしてください。
  4. まずサブスクリプションを再設定:新しいUIでサブスクリプショングループを追加して更新します。サブスクリプションから取得できるのは通常ノード情報で、ローカルのルーティング、待ち受けポート、DNS、システムプロキシの設定までは自動的に復元されません。
  5. 設定を1つずつ復元:まず1つのノードで接続を確認し、次にルーティングとDNSを設定して、最後に必要に応じてTUNを有効にします。設定の種類を変えるたびに確認すれば、失敗箇所を特定しやすくなります。
  6. 元に戻す手順を確認:新しいバージョンに問題があれば、まずそのシステムプロキシを無効にしてプログラムを終了し、旧バージョンに戻します。すでに待ち受けを停止したポートをシステムプロキシが参照したままにならないようにしてください。

OSをまたいで移行する場合は、ローカル設定を特に見直してください。Windowsのディレクトリパス、スタートアップ方法、証明書ファイルの場所、権限設定は、そのままmacOSやLinuxには適用できません。サブスクリプションを正常にインポートできても、ノード情報を取得できただけであり、ローカルのプロキシ経路まで設定できたとは限りません。

バージョン選びと切り替えに関するよくある質問

WindowsでWPF版が問題なく使えています。切り替える必要はありますか?

フレームワーク名だけを理由に切り替える必要はありません。まず現在不足している機能を整理し、移行先バージョンの説明を確認してください。試す場合は別ディレクトリにインストールし、旧設定を残したうえで、同じノードとルーティングを使って結果を比較します。

デスクトップ版に切り替えても、以前のVMessやVLESSのサブスクリプションは使えますか?

まず「サブスクリプショングループ」→「サブスクリプショングループの設定」で以前のURLを追加し、更新します。読み込みや接続の可否は、サブスクリプションの形式、ノードのパラメーター、コアの対応状況によって異なります。問題が起きたら画面の種類だけで判断せず、更新ログを確認してください。

ノードが表示されるのに、ブラウザーでページを開けないのはなぜですか?

まず使用中のサーバーとコアのログを確認し、次に「システムプロキシ」の状態を確認します。ブラウザーに手動でプロキシを設定している場合は、入力したアドレスとポートが現在の待ち受け設定と一致しているか確認してください。ポートを10818に変更しても、10808を参照するアプリの設定は自動で更新されません。

新しい画面で、古い手順書にあるボタンが見つからない場合はどうすればよいですか?

画面のスクリーンショット上の位置ではなく、「サブスクリプショングループ」「パラメーター設定」「ルーティング設定」などの機能名で探してください。まずクライアントのバージョンを確認します。現在のビルドに必要な項目がない場合は、該当バージョンの説明を確認してください。設定画面の代わりに、生成されたコア設定をむやみに変更しないでください。

2つのバージョンをインストールして、同時に起動して比較できますか?

初めて検証するときは、交互に起動する方法がおすすめです。同時に動かす必要がある場合は、設定ディレクトリ、待ち受けポート、システムプロキシの制御を分離してください。両方のインスタンスでシステムプロキシを自動設定しないようにします。比較する前にノード、ルーティング、DNSもそろえないと、結果を正しく比べられません。

v2rayNをダウンロード