オープンソースのエコシステム
Project V・V2Fly・Xray
V2Rayは、Project Vのモジュール型プロキシツール群から始まりました。この背景を理解するには、GUIクライアントとコアを分けて考えることが大切です。画面上のサーバー一覧、サブスクリプション管理、メニューはクライアントの機能です。プロトコルの処理、ルールの照合、アウトバウンド接続は主にコアが担います。クライアントは画面で選択した内容をコアが読み込める設定に変換し、関連プロセスの起動と管理も行います。
V2FlyはV2Rayのコミュニティによる開発を引き継ぎ、Xrayは関連技術を基盤とする別のコアとして発展しました。設定の考え方や一部のプロトコルには共通点がありますが、機能の進化、必要な設定項目、トランスポートの対応状況は同じではありません。プロトコル名が同じでも、安全性を担うレイヤー、トランスポート、各オプションを確認してください。コア名を変えるだけで設定をそのまま使えるとは限りません。
クライアントを選ぶときは、まず2点を確認しましょう。デバイスに合うGUIはどれか、接続パラメーターがどのコアの機能を必要とするかです。デスクトップではv2rayNのコア設定で対応範囲を確認でき、モバイルではv2rayNGまたはv2flyNGで適切なコアを選べます。コアの種類は速度ランキングではありません。実際の通信品質は、ネットワーク環境、サーバーの状態、DNS、ルーティング設定にも左右されます。
プロトコルとコアの用語を見る →
3つのクライアントのオープンソース性
v2rayN、v2rayNG、v2flyNGはいずれもソースコードが公開されたGUIクライアントですが、同じプログラムの別スキンではありません。v2rayNはデスクトップ向けで、サーバー、サブスクリプション、実行設定をまとめて管理します。v2rayNGはXrayの接続機能をAndroidのネットワークインターフェースに接続し、v2flyNGはV2Flyコアを必要とするモバイル設定に対応します。操作方法は参考にできますが、メニューや設定項目はそれぞれ確認してください。
オープンソースライセンスは、コードの利用、改変、再配布に関する条件を定めています。v2rayNとv2rayNGのクライアントコードはGPL系ライセンスを採用し、v2flyNGのクライアントコードもGPL系ライセンスで公開されています。利用するコアや同梱の依存ライブラリは、それぞれのライセンスに従って配布されます。V2FlyのV2RayコアはMITライセンス、XrayコアはMPL系ライセンスです。クライアントのライセンスが、すべての構成要素に適用されるわけではありません。
オープンソースでも、インストール後の設定や保守が不要になるわけではありません。クライアントが利用できるのは、実際に提供された接続パラメーターだけです。サーバー側の設定を代替するものではなく、あらゆるサブスクリプションの動作を保証することもできません。問題が起きたら、設定の取り込み、起動、ネットワークへの接続、接続先へのアクセスのどの段階で発生しているかを確認しましょう。クライアント名だけを頼りに何度も切り替えるより、該当する設定を調べるほうが効果的です。当サイトの運営者情報では、掲載内容と運営方針を説明しています。
更新時はアプリ・コア・ルールデータを分けて考える
クライアントの更新では、画面、設定管理、プログラムの修正が主に変更されます。コアの更新ではプロトコルの実装や通信動作が変わり、GeoIPやGeoSiteなどのルールデータの更新では、照合対象となるアドレスやドメインの集合が変わります。これらの更新時期は必ずしも一致しません。新しいクライアントをダウンロードしても、古いルールデータが同時に更新されるとは限りません。また、サブスクリプションを更新して再取得できるのはサーバー設定であり、ローカルの待ち受けポートの競合は解消されません。
更新前に、クライアントのバックアップまたはエクスポート機能で設定を保存し、使用中のサーバー、ルーティングのプリセット、システムプロキシの状態、カスタムルールを記録してください。更新後は、以前接続できた宛先を使って再テストし、ルーティングとDNSも確認します。起動できない場合は、ログに最初に出たエラーを確認しましょう。ポートの競合、権限不足、設定項目の非互換では、それぞれ対処が異なります。すべてをネットワークの不調と判断しないでください。ルールデータベースについては、GeoIP・GeoSiteの更新ガイドを参照してください。
症状から原因を絞り、すべての設定を一度にリセットしない
「接続済み」と表示されても、通常はローカルプロキシまたはネットワークインターフェースが起動したことを示すだけで、すべての接続先に到達できるとは限りません。ブラウザーで接続できない場合は、まず使用中のサーバーと実接続テストの結果を確認し、次にアプリがシステムプロキシを参照しているか確認してください。一部のドメインだけで問題が起きる場合は、DNS、ルールの順序、選択されたアウトバウンドを調べます。デスクトップ版を終了した後も通常のWebサイトにアクセスできない場合は、ローカルポートを指すシステムプロキシ設定が残っていないか確認しましょう。
モバイル端末で画面ロック後に接続が切れる場合は、バックグラウンド実行の制限が関係している可能性があります。画面を表示した状態でもテストを完了できない場合は、接続パラメーターと他のVPNアプリとの競合を確認してください。問題が起きた時刻、操作前後の変化、必要なエラーメッセージを記録し、サブスクリプションURLやアカウント情報は伏せましょう。詳しい確認手順はFAQをご覧ください。ルーティング、アウトバウンド、トランスポートなどの用語がわからない場合は、まず用語集を確認し、クイックスタートに沿って検証可能な基本設定に戻してください。