設定項目の早見表
- ルーティングモード プロキシのみ · LAN をバイパス · グローバル プロキシのみLAN をバイパスグローバル
- アプリ別プロキシ アプリごとにプロキシを使うか選択
- 自動起動 端末の起動後に接続を自動で復元
- ドメイン解決ポリシー routing.domainStrategy IPIfNonMatch
この 4 つの設定は v2rayNG と v2rayN で名前が共通で、変更後すぐに反映されます。クライアントの再起動も、サブスクリプションの読み込み直しも必要ありません。
Xray コア · Android クライアント
v2rayNG は Android 向けで、Xray コアを採用し、VMess、VLESS、Trojan、Shadowsocks、REALITY に対応しています。デスクトップと Linux は v2rayN が担当し、サブスクリプションの読み込み、ルーティングモード、アプリ別プロキシにはそれぞれ対応する設定項目があります。
主な機能
v2rayNG と v2rayN は設定項目の名前がほぼ共通です。ここではよく調整する 4 つのグループ、ルーティングモードの選び方、アプリ別プロキシの役割、サブスクリプションの更新方法、プロトコルとコアの組み合わせに分けて説明します。いずれもクライアントに実際にある設定項目で、変更はすぐに反映されます。
この 4 つの設定は v2rayNG と v2rayN で名前が共通で、変更後すぐに反映されます。クライアントの再起動も、サブスクリプションの読み込み直しも必要ありません。
v2rayNG と v2rayN は同じ設定構造を共有しています。以下は config から抜き出した inbounds / outbounds / routing のスニペットです:
{
"inbounds": [
{ "protocol": "socks", "port": 10808 }
],
"outbounds": [
{ "protocol": "vless", "tag": "proxy" },
{ "protocol": "freedom", "tag": "direct" }
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{ "type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct" }
]
}
}
V2Fly と Xray は同じプロトコル仕様に対する 2 つのコア実装で、設定フィールドの構造はほぼ同じため、同じ設定をそのまま入れ替えて使えることがほとんどです。Xray は VLESS や REALITY といった新しい機能の更新が早く、v2rayNG は既定でこちらを使います。v2flyNG は V2Fly コアを搭載し、古い設定との互換性を保ちたい場面に向いています。
5 つのプロトコル名はどれもクライアントのプロトコル選択メニューにあります。VMess と Shadowsocks は古い設定との互換性が高く、VLESS と REALITY の組み合わせは新しくハンドシェイクの負荷が低めです。Trojan は標準の TLS ハンドシェイクを使うため、サーバー側で証明書の用意が済んでいる場合に向いています。
3 つのクライアントで 4 つのプラットフォームをカバーします。Android は Xray コアの v2rayNG と V2Fly コアの v2flyNG から選べ、デスクトップと Linux は v2rayN がインストーラーを提供します。サブスクリプションリンクは 4 つのプラットフォーム間でそのまま使い回せます。
ルーティングモードはどの通信をプロキシに通すかを決める設定で、クライアントには「プロキシのみ」「LAN をバイパス」「グローバル」の 3 つがあります。普段は「LAN をバイパス」がおすすめです。LAN 内の機器同士のアクセス、ルーターの管理画面、ローカルサービスは直接接続のまま、それ以外の通信がプロキシを通ります。すべての通信をプロキシ経由にしたいときだけ「グローバル」を選び、「プロキシのみ」はシステム全体のプロキシと組み合わせて使う場面に向いています。アプリ別プロキシは対象をさらにアプリ単位まで絞り込むもので、ブラウザーと特定のツールだけをプロキシ経由にし、ほかのアプリは直接接続のままにできます。社内システム用のアプリを併用している端末に向いています。自動起動は端末の再起動後に接続を自動で復元するかどうかを決めます。いずれも設定画面にあり、変更後にサブスクリプションを読み込み直す必要はありません。
プロトコルはクライアントとサーバー間のハンドシェイクと暗号化の方式を決めます。VMess は最も古く互換性が最も広い方式です。VLESS は VMess の冗長な検証と内蔵の暗号化層をなくし、ハンドシェイクが軽く、モバイル回線では消費電力を抑えやすくなります。Trojan は標準の TLS ハンドシェイクを利用するため、通信の特徴が通常の HTTPS に近くなります。Shadowsocks は構造が最もシンプルで、リソース消費を抑えたい端末に向いています。REALITY は VLESS をベースに、自分で証明書を用意する手順を省、サーバーが対象サイトの証明書を借りてハンドシェイクを完了します。コアについては、Xray と V2Fly のどちらもこれらのプロトコルを実装しています。v2rayNG は既定で Xray、v2flyNG は V2Fly に対応し、設定構造とサブスクリプション形式は互いに互換性があります。どちらを選ぶかはサーバー側から提示された設定次第です。
サブスクリプションはサーバー側で管理されたアドレスで、クライアントはそのアドレスからノード一覧を取得します。パラメーターを 1 つずつ手入力する必要はありません。読み込み方法は 3 つあり、サブスクリプションリンクの貼り付け、QR コードの読み取り、クリップボードからの認識です。読み込み後はサブスクリプショングループで手動更新できるほか、設定で自動更新を有効にすると一定間隔で一覧を取得し直します。サブスクリプション内のノード順はサーバー側が決め、クライアント側には選択中のノードとルーティングルールだけが保存されます。端末を変えたときは同じサブスクリプションを読み込み直せばノード一覧は復元できますが、ルーティングモードやアプリ別プロキシといったローカル設定は新しい端末で確認し直す必要があります。
ダウンロード案内
ダウンロードページはプラットフォームごとに分かれ、それぞれ対応するクライアントとインストーラーの種類を掲載しています。デスクトップは v2rayN に統一、Android は v2rayNG と v2flyNG から選びます。どれを落とせばよいか迷ったら、まず下のプラットフォーム別の説明を確認してください。
オープンソースのエコシステム
V2Ray のプロトコル仕様、コア実装、GUI クライアントはそれぞれ別のプロジェクトです。関係を整理しておくと、クライアントのプロトコル選択メニューやコアの選択肢から適切なものを選びやすくなります。
V2Ray はもともと Project V の下のプロキシツールとして登場し、その後プロトコル仕様とプログラム実装が段階的に分かれました。仕様は VMess や VLESS といったプロトコルのハンドシェイク手順と暗号化方式を定義し、実際の接続処理は各コアが担います。VMess は初期の主力プロトコルで互換性が広く、古い設定の多くはこれを前提としています。VLESS はその後ハンドシェイクを再設計し、冗長な検証と内蔵の暗号化層をなくして暗号化をトランスポート層に任せることで、負荷を下げました。REALITY はさらに進んで、サーバーが対象サイトの証明書を借りて TLS ハンドシェイクを完了するため、独自ドメインの証明書を用意する手順が不要です。これらのプロトコル名はクライアントのプロトコル選択メニューに並び、どれを選ぶかはサーバー側の設定がどれに対応しているかで決まります。
コアは接続の確立、プロトコルの解析、ルーティングの振り分けを実際に処理するプログラムで、クライアントの設定項目は最終的にコアが読める設定に変換されます。V2Fly と Xray は同じプロトコル仕様に対する 2 つの実装で、設定ファイルのフィールド構造はほぼ同じため、同じ設定をそのまま入れ替えて使えることがほとんどです。Xray は VLESS や REALITY といった新しいプロトコル機能の更新が早く、v2rayNG は既定でこちらを使います。V2Fly コアは v2flyNG が搭載し、旧版の設定との互換性を保ちたい場面に向いています。2 つのコアはそれぞれ独立してリリースされるため更新のペースは完全にはそろいません。プロトコルの挙動に差を感じたら、まずサーバー側とクライアント側で使っているコアが一致しているか確認してください。
v2rayN、v2rayNG、v2flyNG はいずれもオープンソースライセンスで公開され、ソースコードは公開のうえコミュニティーによって継続的に保守されています。v2rayN は Windows、macOS、Linux をカバーし、v2rayNG と v2flyNG は Android 向けです。3 つは同じサブスクリプション形式と設定構造を共有するため、プラットフォームを変えてもサブスクリプションリンクをそのまま使い回せ、作り直す必要はありません。クライアントが担うのは接続、プロトコル解析、ルーティングの振り分けまでで、ノードとサーバー側の設定は利用者自身のサブスクリプション提供元が決めます。この関係を整理しておくと、不具合の切り分けでクライアント設定の問題か、サブスクリプションやネットワーク環境の問題かを判断しやすくなります。
クライアントとコアはそれぞれ独立してリリースされ、更新内容も異なります。コアの更新はプロトコル実装の調整や性能の変化をもたらすことが多く、クライアントの更新は画面や設定項目が中心です。サブスクリプションの中身はサーバー側が管理するため、ノードの増減にクライアントの再インストールは不要で、サブスクリプショングループで一度手動更新すれば最新の一覧を取得できます。長期間にわたって一覧を新しく保ちたい場合は、設定で自動更新を有効にしてください。デスクトップ版と Android 版では更新の入口の名前が少し異なりますが、どちらも手動で実行できます。クライアントを更新する前に、現在のルーティングモードとアプリ別プロキシの設定を控えておき、更新後に見比べて確認することをおすすめします。
記事
5 つの記事は初回接続の確認、DNS リークの調査、複数デバイス間の設定同期、プロトコルの比較、TUN モードを扱っています。テーマ別のタグから必要な記事をすぐに見つけられます。
TUN 仮想ネットワークインターフェースが通信を引き受ける仕組みを解説し、v2rayNG で TUN を有効にする手順、権限の扱い、引き受け範囲の確認方法を順に示します。
全文を読むハンドシェイク方式、暗号化の負荷、モバイルでの消費電力という 3 つの観点から 4 つのプロトコルを比較し、ネットワーク環境と端末の種類に応じてプロトコルを選ぶ順序を提案します。
全文を読む共有リンクの書き出し、サブスクリプションアドレスのコピー、同期ディレクトリの自作という 3 つの方法を比較し、端末を変えたあとにどの設定を確認し直す必要があるかを説明します。
全文を読むよくある質問
サブスクリプションの読み込み、ルーティングモード、デスクトップ版のインストーラーの選び方まで、まずはこの数項目を確認してください。より細かい調査手順は FAQ ページにまとめています。
まずサブスクリプションのアドレスが完全で有効か確認し、サブスクリプショングループで手動更新を 1 回実行してください。QR コードの読み取りに失敗する場合は、リンクを貼り付ける方法で読み込み直します。それでも一覧が空のままであれば、サブスクリプション自体の有効期限が切れていないか、アドレスが途中で切れていないかを確認してください。
普段は「LAN をバイパス」を選び、LAN 内の機器同士のアクセスとルーターの管理画面は直接接続のままにします。すべての通信をプロキシ経由にしたいときは「グローバル」、システム全体のプロキシと組み合わせて使うときは「プロキシのみ」を選びます。
画面と設定項目はほぼ同じで、違いはコアにあります。v2rayNG は Xray、v2flyNG は V2Fly を使います。サブスクリプションと設定形式は共通なので、どちらか一方を選べば問題ありません。
Windows にはデスクトップ版とクラシック WPF 版の 2 つの入口があり、macOS はチップ別に dmg を、Linux はディストリビューション別に deb か rpm を選びます。詳しい対応表とシステム要件はダウンロードページをご覧ください。