オープンソースクライアント3種の選び方
v2rayNはデスクトップ向けで、GUIから接続、サブスクリプション、ルーティングを管理できます。複数のコアを使えるため、「画面から設定を追加できる」ことと「現在のコアでその設定を実行できる」ことは分けて確認してください。起動に失敗した場合は、画面の見た目を比べるのではなく、エラーに記載されたフィールド名とコア名を確認します。デスクトップのプロキシ待ち受けアドレスにも注意が必要です。端末内での利用とLAN内での共有は別の用途であり、公開範囲を広げるほどファイアウォールやネットワーク環境の確認が重要になります。
v2rayNGはAndroid向けのオープンソースGUIクライアントで、Xrayコアを使用します。システムのVPNインターフェースまたはローカルプロキシ経由で動作します。v2flyNGもAndroid向けで、V2Flyコアを使用するため、そのコアが必要な場合の選択肢になります。画面や操作方法には共通点がありますが、対応する設定はそれぞれのコアを基準に確認してください。現在の設定が使えているなら、名前が違うという理由だけで移行する必要はありません。切り替える場合は必要な情報をエクスポートし、VPNの許可、アプリのリスト、バックグラウンド動作の制限をそれぞれ確認しましょう。
オープンソースライセンスと動作設定は分けて確認
これらのクライアントはオープンソースプロジェクトとして開発されており、関連するクライアントプロジェクトにはGPL系ライセンスが採用されています。V2FlyとXrayのコアプロジェクトはMPL 2.0を採用しています。クライアント、コア、同梱される依存コンポーネントのライセンスを一括りにせず、再配布時の義務は各コンポーネントのライセンス文書を確認してください。一般ユーザーにとってオープンソースであることは、コードや実装が公開され、議論や検証の対象になることを意味します。外部から入手したすべてのサブスクリプションが同様に確認済みという意味ではありません。
サブスクリプションは動作設定であり、サーバーアドレス、ユーザーID、トランスポート設定、接続情報などが含まれる場合があります。ソフトウェアがオープンソースであっても、設定の入手元の安全性やサーバー側でのデータの扱いが保証されるわけではありません。取り込む前に入手元を確認し、サポートを求める際は必要なエラー情報だけを共有して、購読URL全体や接続情報を隠してください。設定をすべて公開するより原因を特定しやすく、接続権限の漏えいも防げます。
更新前に記録し、更新後に動作確認
クライアント、コア、ルーティング用リソースの更新は、それぞれ別の操作です。UIの更新ではメニュー名が変わることがあり、コアの更新では設定の対応状況が変わる場合があります。ルールリソースの更新は、通信の振り分け結果に影響します。動作が変わったときは、どの階層を変更したのか振り返りましょう。複数の更新と設定変更を一度に行うと、比較できる基準が失われ、単純な問題も再現しにくくなります。
安全に進めるには、使用中の設定、待ち受けポート、カスタムルーティングを記録し、該当する更新内容を確認してからインストールまたは置き換えます。作業後はサブスクリプションが残っているか、コアが起動するか、システムプロキシが現在のポートを参照しているかを確認し、直接接続する対象とプロキシ経由にする対象をそれぞれテストしてください。元に戻せるようにする場合は、以前の環境が新しい設定項目に対応するかも確認します。バックアップには機密情報が含まれるため、安全な場所に保管してください。
接続テストと実際のアクセスを合わせて判断
実接続テストは、一部の利用できない設定を見つけるのに役立ちます。ただし、テストの成功が示すのは、その時点の条件でテスト先への接続が完了したことだけです。ブラウザーのキャッシュ、アプリ独自のプロキシ設定、DNSの名前解決、サーバー側のポリシーなどにより、別の接続先では結果が異なる場合があります。一つのテスト結果だけで端末全体のプロキシ状態を判断したり、一度のタイムアウトをクライアントの故障と決めつけたりしないでください。
トラブルの切り分けでは、クライアント1つ、動作確認済みの設定1つ、テスト対象のアプリ1つに絞ります。まずプロキシを無効にした状態のネットワークを確認し、有効にした後の変化と比較してください。特定のアプリだけに問題がある場合は、そのアプリのプロキシ接続とルーティング結果に絞って調べます。ログにエラーが出たら、発生した操作とエラーの種類を記録すれば十分です。情報をすべて共有しようとして設定全体を公開しないでください。階層ごとに確認するほうが、繰り返し再インストールするより原因にたどり着きやすくなります。