Windowsだけで使い慣れた画面を利用したい場合は、WPF版が候補です。Windows・macOS・Linuxで近い操作感を求めるなら、Avalonia版を検討できます。違いは主にUI技術とOSとの連携方法であり、プロキシプロトコルの優劣ではありません。この記事では、インストーラーの選び方、コアとの関係、移行手順、ポートの確認方法を解説し、初めて使う方にも既存設定を引き継ぐ方にも判断材料を提供します。
1. Windowsユーザーはどちらを選ぶ?
現在のバージョンが安定して動作しているなら、UIフレームワークだけを理由に乗り換える必要はありません。初めて導入する場合は、まずOSを確認し、次に普段の使い方に合うかを検討しましょう。WPFはWindows専用のUIフレームワークです。AvaloniaはクロスプラットフォームのデスクトップUIに使われますが、OSとCPUアーキテクチャに合ったインストーラーが必要です。
WPF版:Windowsだけで使う場合におすすめ
おすすめWindowsユーザーが初めて選ぶ場合に適しています。特に、普段の操作手順や参考にするチュートリアルの画面がWPF版と同じ場合に便利です。これは利用環境に基づく提案であり、WPF版のほうがプロキシ速度が速いという意味ではありません。
おすすめの用途:Windowsだけで使う、従来の操作手順を続けたい、既存の設定が安定している。
Avalonia版:複数OSで使う場合におすすめ
同系統のUIをWindows・macOS・Linuxで利用できるため、複数のデスクトップ環境で似た操作感を保ちやすくなります。ただし、トレイ、ウィンドウ、権限の動作はOSによって異なり、3つのOSでまったく同じように動くわけではありません。
おすすめの用途:複数のデスクトップOSをよく切り替える、UI操作の違いを減らしたい、現行バージョンの機能を確認できる。
ダウンロードページの「デスクトップ版」は、この記事ではAvalonia版を指します。WPF版もデスクトップアプリです。「完全版」と「軽量版」の違いではありません。用途に合うかどうかは、フレームワーク名だけで判断せず、配布中のバージョンで実際に利用できる機能を確認してください。
2. UIフレームワーク、クライアント、プロキシコアの違い
v2rayNは、ノード管理、サブスクリプションの更新、各種設定に加え、プロキシコアの起動と管理を担当します。AvaloniaとWPFは、ウィンドウの表示と画面操作を担います。接続、プロトコルのハンドシェイク、ルーティングを実際に処理するのは、起動中のプロキシコアです。
| 比較項目 | Avalonia版 | WPF版 |
|---|---|---|
| UI技術 | クロスプラットフォーム対応のAvalonia UIフレームワーク | Windows Presentation Foundation |
| 対応OS | 各OS向けのビルドが提供されている場合、Windows・macOS・Linuxで利用可能 | Windows(配布バージョンのシステム要件を満たす必要あり) |
| インストーラーの選び方 | OSとCPUアーキテクチャに合わせて選択 | Windows向けビルドとCPUアーキテクチャに合わせて選択 |
| プロトコル対応の判断基準 | 使用するコアのバージョンと、クライアントが設定を生成する機能 | 使用するコアのバージョンと、クライアントが設定を生成する機能 |
| OS連携の違い | 各OSのトレイ、権限、ウィンドウの動作を個別に確認 | Windowsでのトレイ、権限、ウィンドウの動作を確認 |
| 性能の比較 | 同じ条件で測定する必要があり、フレームワークだけでは判断できない | 同じ条件で測定する必要があり、フレームワークだけでは判断できない |
たとえば、ノードにVLESSとREALITYを使う場合は、実際に使用するXrayコアと必要なパラメーターが対応しているかを確認してください。「Avalonia版をインストールした」ことは、この確認の代わりにはなりません。VMess、Trojan、Shadowsocksも、コアと設定を個別に確認する必要があります。WPFとAvaloniaはプロキシプロトコルの名称ではありません。
3. ダウンロード前にOS・アーキテクチャ・実行環境を確認
UIを比べる前に、インストーラーが動作するかを確認しましょう。Windowsでは「設定」→「システム」→「システム情報」からシステムの種類を確認できます。OSのバージョンによっては、最後の項目が「バージョン情報」と表示されます。x64とARM64を区別し、「64ビットOS」をx64 CPUと同じものと考えないでください。
- システム要件を確認する。配布中のバージョンが対応するWindowsのバージョンと、ダウンロード項目に記載されたアーキテクチャを確認してください。WPFという名称だけで、古いOSでも動作するとは限りません。
- パッケージの形式を確認する。インストーラーか圧縮ファイルか、実行環境が含まれるかは、配布バージョンによって異なる場合があります。実行ファイルがあるだけで、必要な依存関係がすべてそろっているとは判断できません。
- 起動時の案内に従って依存環境を用意する。.NETランタイムが不足していると表示された場合は、必要なバージョンとアーキテクチャに合わせてください。デスクトップランタイムが必要な場合、別の一般的なランタイムをインストール済みでも十分とは限りません。
- 2つのバージョンは別の場所に配置する。初回の試用時は既存のプログラムフォルダーを上書きせず、2つのバージョンから同じ設定データを同時に操作しないでください。
macOSではCPUに合ったビルドを選び、Linuxではディストリビューションのパッケージ形式とCPUアーキテクチャに合わせて選択してください。クロスプラットフォーム対応とは、UIフレームワークと各OS向けビルドによるものです。Windows用インストーラーを他のOSでそのまま使えるという意味ではありません。
インストーラーのファイル名、バージョン、依存関係は更新されます。最新情報はクライアントのダウンロードページと各パッケージの説明で確認し、古いチュートリアルに記載されたファイル名を頼りに探さないようにしてください。特定の過去バージョンを恒常的なダウンロード先として案内するものではありません。
4. WPF版からAvalonia版へ移行する:まずノード、次にルール
移行の目的は接続動作を再現することであり、画面上のすべてのスイッチを同じ見た目にすることではありません。安全に進めるには、まず既存の設定をバックアップし、動作確認済みのノードを1つインポートして接続を確認します。その後、サブスクリプション、ルーティング、自動起動の設定を戻してください。
移行手順:元の環境を残し、新しいバージョンを個別に検証
元のバージョン:いつでも戻せる状態にする
- 終了前にv2rayNとコアのバージョンを記録する。
- 設定データをバックアップし、必要なサブスクリプションURLと独自ルールを別に保存する。
- ローカルの待ち受けポート、システムプロキシの状態、現在のルーティングモードを記録する。
- 自動起動を無効にしてプロセスを終了し、元のコアがポートを使用していないことを確認する。
新しいバージョン:段階的に設定を戻す
- 別の場所に配置し、検証済みのノードを1つインポートする。
- コアが正常に起動することを確認してから、ブラウザーでアクセスを試す。
- サブスクリプション、ルーティング、DNS、必要に応じて使うTUN設定を1つずつ戻す。
- システムを再起動して再確認し、最後にどちらのバージョンを自動起動するか決める。
各手順で変更する設定は1種類だけにしてください。問題が起きたときは、すべてのデータを一度に移すより、直前の手順に戻すほうが原因を特定しやすくなります。
通常、同じサブスクリプションは再登録できます。ただし、独自ルーティング、DNS、ショートカット、ウィンドウ設定、独自設定ファイルの保存方式がバージョン間で引き継げるとは限りません。現行バージョンにインポートや復元機能がある場合は、対応するファイル形式と元のバージョンを確認してからバックアップを使ってください。
メニューの確認は「設定」→「パラメーター設定」から始め、待ち受けポートや関連項目を確認します。サブスクリプションは「サブスクリプショングループ」で1件ずつ確認してください。バージョンによって表示名や分類が変わることがあります。同じ名前の項目が見つからない場合は、設定内容を手がかりに探し、元のデータフォルダーを何度も上書きしないでください。サブスクリプションURLに認証情報が含まれる場合があるため、スクリーンショットやログでは機密部分を隠してください。
5. ポート競合と速度の違いを切り分けて確認
バージョン変更後に接続できない場合は、まずクライアントのプロセスが2つ同時に動いていないか確認してください。以下では手動で指定した比較用ポートを例に確認方法を説明します。すべてのバージョンのデフォルト値を示すものではなく、SOCKSとHTTPのポートが常に別々に用意されるという意味でもありません。
ポートを別々にしても、2つのバージョンがシステムプロキシ設定を取り合う場合があります。普段の動作確認では一度に起動するバージョンを1つにしてください。「設定」→「パラメーター設定」で実際の待ち受けポートを確認してから、システムプロキシの接続先を確認します。トレイアイコンが起動中を示しているだけで、新しいバージョン経由で通信していると判断しないでください。
netstat -ano | findstr :10808
netstat -ano | findstr :10818
上記はWindowsのコマンドプロンプトで確認する例です。出力されたローカルアドレス、ポート、PIDを確認し、TCPの待ち受けではLISTENINGの状態を確認します。次にタスクマネージャーでPIDに対応するプロセスを調べてください。ポートが使用中というだけでは、プロセスに問題があるとは限りません。所有元を確認せずにプロセスを終了しないでください。
- ブラウザーでは接続できるが、コマンドラインでは失敗する:コマンドラインのプログラムがシステムプロキシを参照しているか、以前のポートを明示的に指定していないか確認してください。
- バージョン切り替え後、一部のサイトだけ開けない:ルーティングルール、DNS、スニッフィングの設定を比較し、設定の違いをUIフレームワークの問題と取り違えないようにしてください。
- ノードの遅延は正常なのに、ダウンロード速度が遅い:遅延テストは実効速度のテストではありません。ノードの負荷、回線、接続先サイトの制限も確認してください。
- メモリ使用量が増えたように見える:UIのプロセスとコアのプロセスを分けて観察し、ノード数、ウィンドウの状態、稼働時間をそろえて比較してください。
2つのバージョンの速度を比較する場合は、同じノード、ダウンロード先、コアのバージョン、ルーティング設定を使い、それぞれ交互に3回測定して中央値を記録してください。偶然の変動を抑えるための方法であり、性能の優劣をあらかじめ示すものではありません。同じ条件での記録がなければ、特定のフレームワークによって回線が速くなるとは言えません。
6. バージョン選びと移行に関するよくある質問
Windowsだけで使う場合、WPF版からAvalonia版へ移行する必要はありますか?
現在のバージョンが安定して動作し、必要な機能もそろっているなら、フレームワークだけを理由に移行する必要はありません。新しいUIを試したい場合は別の場所にインストールし、サブスクリプションの更新、トレイからの終了、システムプロキシの解除、再起動後の動作を確認してください。普段の使い方に合うことを確かめてから切り替えましょう。
Avalonia版でも同じサブスクリプションを使えますか?
既存のサブスクリプションを追加して手動更新し、ノード数と、動作確認済みノードのプロトコル、ポート、通信方式、セキュリティ設定を確認してください。リストをインポートできても、すべての拡張パラメーターが正しく反映されたとは限りません。接続できない場合は、使用中のコアのログも確認しましょう。
REALITYが使えていたのに、バージョン変更後に接続できません。プロトコルを変えるべきですか?
まずプロトコルは変更しないでください。使用中のXrayコアのバージョンを確認し、サーバーアドレス、ポート、ユーザーID、公開鍵、サーバー名などの必須パラメーターを照合します。生成された設定と起動エラーを確認し、インポート漏れやコアの不一致から先に切り分けてください。
新しいバージョンを終了したら、以前のバージョンでもWebページを開けなくなりました。
Windowsの「設定」→「ネットワークとインターネット」→「プロキシ」を開き、終了したプログラムのポートが接続先に残っていないか確認してください。その後、使うバージョンだけを起動してシステムプロキシを設定し直し、接続を確認します。TUNを使っている場合は、仮想ネットワークインターフェースとルーティングが元に戻っているかも確認してください。
2つのバージョンを両方とも自動起動に設定できますか?
おすすめしません。両方のウィンドウが開けても、ポート競合、システムプロキシ設定の上書き、TUNの競合が起きる可能性があります。移行後は自動起動の設定を1つだけ残し、再起動後にタスクマネージャーと実際の待ち受けポートを確認してください。
選ぶポイントは2つです。Windowsだけで使い、既存の操作手順を続けるならWPF版が候補です。複数のデスクトップOSで近いUIを使いたいならAvalonia版を検討してください。プロトコルへの対応はコアで、接続動作は設定で確認し、UIは実際の使いやすさとOS連携を基準に選びましょう。