Windows
v2rayNを選びます。デスクトップ版にはクロスプラットフォームのUIと、使い慣れた操作ができる従来のWPF版があります。使い方に合わせて選んでください。インストール後は、まずサブスクリプションを追加し、次にシステムプロキシを設定すると、インストールの問題と接続の問題を切り分けやすくなります。
ダウンロードページへCLIENT / OSから選ぶ
デスクトップではv2rayN、Androidでは必要なコアに合わせてクライアントを選びます。
まずOSとプロセッサのアーキテクチャを確認し、該当するプラットフォームのダウンロードページに進みます。クライアントは設定を管理してコアを起動しますが、接続には有効なサーバー情報またはサブスクリプションURLが必要です。サブスクリプションをすでに持っていても、アーキテクチャの確認は省略できません。インストーラーが動作するかどうかと、サブスクリプションで接続できるかどうかは別の問題です。
v2rayNを選びます。デスクトップ版にはクロスプラットフォームのUIと、使い慣れた操作ができる従来のWPF版があります。使い方に合わせて選んでください。インストール後は、まずサブスクリプションを追加し、次にシステムプロキシを設定すると、インストールの問題と接続の問題を切り分けやすくなります。
ダウンロードページへv2rayNを使用し、Apple SiliconまたはIntelに合ったインストーラーを選びます。チップの種類は「このMacについて」で確認できます。初回起動時にセキュリティ警告が表示された場合は、まずファイルの入手元を確認し、システム設定の案内に従ってください。
ダウンロードページへまずはXrayベースのv2rayNGを選び、V2Flyコアが必要な場合にv2flyNGを検討します。一般的なスマートフォンではarm64を選びます。アーキテクチャがわからない場合は、汎用版の説明を確認してください。初回接続時はシステムのVPN許可が必要です。バックグラウンドで切断される場合は、バッテリー制限を確認しましょう。
ダウンロードページへv2rayNのdebまたはrpmパッケージを使い、ディストリビューションとプロセッサのアーキテクチャに合ったものを選びます。デスクトップ環境のプロキシ設定がターミナルのプログラムに反映されるとは限りません。まずブラウザーで接続を確認し、コマンドラインツールのプロキシ環境変数は個別に確認してください。
ダウンロードページへプラットフォームを変えても、プロトコルが変わるわけではありません。利用できるかどうかは、クライアントのコア、サーバー設定、通信パラメーターが一致するかで決まります。
すべてのクライアントを見る →CONFIGURATION / 設定の仕組み
各設定がどの層を制御するのかを把握してから、パラメーターを変更しましょう。以下は部分的な設定例であり、そのまま接続できる完全なファイルではありません。
サブスクリプション管理で信頼できる配布元のURLを追加して保存し、更新を実行した後、一覧からサーバーを選択します。サブスクリプションは設定をまとめて取得するためのもので、システムプロキシやVPNの許可を代わりに設定するものではありません。共有リンクを一つずつ貼り付けるより一括更新に便利ですが、配布元が管理する項目が上書きされる場合もあります。初回は既定のグループをそのまま使い、更新が成功したことを確認してから名前を整理してください。アクセス情報を含むサブスクリプションURLを、公開スクリーンショットに載せないようにしましょう。右側はローカルのインバウンド設定の一部です。設定をインポートした後も通信の入口が必要であることを示すもので、サブスクリプションファイルの形式ではありません。
操作手順:サブスクリプションを追加 → 更新 → サーバーを選択 → プロキシを有効化。
{
"inbounds": [
{
"tag": "socks-in",
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": {
"udp": true
}
}
]
}
まずクライアントのルーティングプリセットを使い、接続を確認してから、LANや特定のドメイン、アプリの要件に応じてルールを追加します。ルーティングは通常、上から順に判定されるため、条件が具体的なルールを広いルールより前に置きます。グローバルモードの切り替えだけで済ませる場合と比べ、ルールによる振り分けならローカルリソースへの直接アクセスを維持できますが、接続先のタグが定義されているか確認が必要です。右側の例では、プライベートIPアドレスをdirectという接続先に割り当てています。実際に使うには、この接続先の定義と対応するルール用リソースも必要です。ルールを追加したらコアを再読み込みし、明確な接続先で結果を確認してください。
まず単一のルールを確認し、問題がなければ対象範囲を広げます。
{
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
}
]
}
}
ブラウザーなどシステムプロキシに従うアプリでは、まずシステムプロキシの自動設定を使います。この設定を参照しないプログラムでは、プロキシを個別に指定するかTUNを使います。TUNは仮想ネットワークアダプターを通じて通信を取り込み、権限やルーティング、DNSにも関わります。速度を上げるスイッチではありません。システムプロキシだけを変更する方法より広い範囲をカバーできますが、ほかのネットワークツールとの競合に注意が必要です。初回設定では複数の取り込み方式を同時に有効にしないでください。右側はローカルHTTPプロキシの設定例です。ポートはアプリ側に入力する値と一致させ、具体的な値はクライアントの設定に従ってください。
まずシステムプロキシで接続を確認し、必要に応じてTUNを有効にします。
{
"inbounds": [
{
"tag": "http-in",
"listen": "127.0.0.1",
"port": 10809,
"protocol": "http",
"settings": {}
}
]
}
まずサーバーが要求するプロトコル、通信方式、セキュリティ設定を確認し、コアが対応しているか判断します。v2rayNでは複数のコア設定を管理でき、Androidでは用途に応じてv2rayNGとv2flyNGを選べます。クライアント名だけを見るより、実際に動作しているコアを確認するほうが互換性の問題を把握しやすくなります。切り替える前に動作中の設定を保存し、切り替え後は起動ログを確認して、各項目が正しく認識されているか確かめてください。2種類のコアには共通の構文もありますが、拡張機能がそのまま互換性を持つとは限りません。右側のfreedomアウトバウンドは基本例であり、すべての設定をそのまま移行できるわけではありません。
名前で性能を判断せず、画面の使い勝手よりプロトコルの互換性を優先しましょう。
{
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
}
]
}
まず、ドメイン名の名前解決をシステム、ブラウザー、コアのどれが処理しているかを確認してから、DNSを変更するか判断します。ブラウザー独自の暗号化DNSはシステム設定を経由しない場合があり、TUN環境でも別の名前解決経路が使われることがあります。DNSサーバーのアドレスを一つ変更するだけでなく、名前解決リクエストが上流のサーバーにどう届くかを確認すると、問題の切り分けに役立ちます。右側はコアのDNSにあるservers配列の例です。リモートの名前解決サービスを使う場合は、そのサービスへの接続経路も到達可能である必要があります。IPアドレスへの直接接続はできるのにドメイン名で接続できない場合は、ルーティングや通信パラメーターを同時に変更せず、まず名前解決の結果とログを確認してください。
名前解決の経路は一度に一つだけ変更し、元に戻せる設定を残しましょう。
{
"dns": {
"servers": [
"https://1.1.1.1/dns-query",
"localhost"
],
"queryStrategy": "UseIP"
}
}
インストール後の設定手順
まず最小限の設定で接続し、その後にルーティング、TUN、カスタムルールを追加します。
クライアントによってメニュー名は多少異なりますが、設定の考え方は共通です。まずクライアントにサーバー情報を読み込ませ、次にアプリのリクエストをクライアントへ渡し、最後にリクエストが想定した接続先を経由しているか確認します。この3つの層を分けて考えれば、問題が起きたときにサブスクリプション、システム設定、ルーティングのどこを調べるべきか判断しやすくなります。ソフトを何度も再インストールする必要はありません。
信頼できる配布元からサブスクリプションURLを入手し、v2rayNのサブスクリプション管理でグループを追加して保存した後、更新を実行します。Androidでは、v2rayNGのサブスクリプショングループ設定から同様の操作ができます。更新後に設定項目が表示されることを確認してください。一覧が空の場合は、URLが完全か、サブスクリプションが有効か、更新ログに形式やネットワークのエラーが出ていないかを確認します。
一覧から項目を一つ選び、使用中のサーバーに設定します。「インポート済み」の状態だけでは接続できません。プロトコル、通信方式、ポート、セキュリティ設定はサーバー側と一致させる必要があり、名前だけを見て変更してはいけません。サブスクリプションの更新で既存の項目が変わる場合もあるため、現在使用しているグループを控えておくと、後のトラブル対処に役立ちます。
デスクトップではまずコアを起動し、システムプロキシを自動設定してから、ブラウザーで最初の接続テストを行います。プロキシ拡張機能を使っている場合は、ブラウザーの設定をその拡張機能が変更していないか確認してください。ほかのプロキシプログラムを同時に実行すると、システムプロキシが誤ったポートを参照する場合もあります。Androidで初めて接続する際は、システムのVPN使用許可が必要です。これはサブスクリプションのインポートが成功したかどうかとは別の問題です。
初回は用途に合ったルーティング設定を選び、DNS、接続先ルール、TUNを同時に変更しないでください。システムプロキシに従わないアプリも通信を取り込む必要がある場合は、プラットフォームに応じたTUNの設定方法を確認しましょう。クライアントを終了する前に不要なシステムプロキシを解除し、アプリが停止済みのローカルポートにリクエストを送り続けないようにします。
プロキシ経由でアクセスする想定のWebページを開き、クライアントのログで接続と接続先を確認します。ページが開けたとしても、そのリクエストが成功したというだけで、すべてのアプリがプロキシを使っているとは限りません。ターミナルツール、ブラウザー、デスクトップアプリにはそれぞれ独自の設定があるため、必要に応じて個別に確認してください。
接続済みと表示されてもアクセスできない場合は、サーバーの稼働状況、端末の時刻、DNSの名前解決、ルーティングの一致、ローカルポートを順番に確認します。まずエラーメッセージを記録し、変更する項目を一つに絞ってテストしてから、変更を適用するか元に戻してください。接続済みの表示は、通常、コアの起動または通信の取り込みが始まったことを示すだけで、接続先サーバーが利用できることを保証するものではありません。
クライアント・コア・オープンソースライセンス
UIは設定を管理し、コアは接続を処理し、プロトコルは通信方式を定めます。
V2Rayは、Project Vのモジュール型プロキシツール群から生まれました。設定でよく目にするインバウンド、アウトバウンド、ルーティング、DNSは、それぞれ通信の入口、接続先、振り分けルール、ドメイン名の名前解決を担います。日常的に使われる「V2Rayクライアント」という言葉は広い意味を持ち、コアを指す場合も、グラフィカルな管理ソフトを指す場合もあります。ダウンロード前に両者を区別しておくと、同じサブスクリプションを複数のクライアントで読み込めても、すべてのコアで同じように動作するとは限らない理由がわかります。
V2FlyコミュニティはV2Rayコアの開発と保守を引き継ぎ、Xrayは関連技術を基に独自に進化しています。どちらも設定駆動型のプロキシ構成を採用していますが、拡張機能、設定項目への対応状況、更新頻度は同じではありません。VMess、VLESS、Trojan、Shadowsocksはプロトコル名です。TLS、通信レイヤー、ルーティング方針はそれぞれ異なる要素です。見慣れたプロトコル名があっても、通信方式やセキュリティ設定の確認は省略できません。また、V2Rayを名乗るすべてのプログラムが同一のソフトウェアというわけではありません。
コアを選ぶときは、サーバーから提供されたパラメーター一式を基に互換性を確認してから、管理しやすいクライアントを選びましょう。インポート後に「未対応のプロトコル」や設定項目のエラーが出た場合は、システムプロキシのモードを何度も切り替えるのではなく、実際に動作しているコアと機能の説明を確認してください。システムプロキシはリクエストをクライアントに渡す方法を決め、コアの互換性はその後に接続先へ正しく接続できるかを左右します。両者の問題は分けて対処する必要があります。
v2rayNはデスクトップ向けで、サブスクリプションのグループ管理、サーバー選択、ルーティング管理、コア設定などをGUIから操作できます。複数のデスクトップ環境で似た使い方をしたい場合に便利です。v2rayNGはAndroid向けで、Xrayコアを使ったモバイルプロキシ管理に対応します。v2flyNGもAndroid向けで、V2Flyコアを使う場合の選択肢です。デスクトップとモバイルではネットワークの権限設定が異なります。ガイドにある設定の目的は共通でも、ボタンの位置や許可の手順をそのまま当てはめることはできません。
3つのクライアントはいずれもオープンソースで提供されていますが、クライアントのUIと使用するコアは別々のプロジェクトです。クライアントを変えても、サブスクリプション内の無効なサーバーが修復されたり、別のコアのすべての拡張機能が自動的に使えるようになったりはしません。動作する設定がある場合は、まずその設定を正しく扱えるクライアントを選びましょう。移行する際はカスタムルールをエクスポートするか記録し、サブスクリプション、プロキシモード、DNSが復元されているか確認してください。
v2rayNとv2rayNGはGPL系のオープンソースライセンス、v2flyNGはGPLライセンスで提供されています。V2FlyコアはMITライセンス、XrayコアはMPL 2.0ライセンスを採用しています。ソフトウェアには、個別のライセンスが適用される依存コンポーネントが含まれる場合もあります。具体的な権利と義務は、入手した配布パッケージに含まれるライセンス文書を確認してください。オープンソースとは、該当するライセンスに従ってコードを閲覧、使用、再配布できるという意味です。ネットワークサービス、サーバーリソース、第三者のサブスクリプションをクライアントのプロジェクトが提供するという意味ではありません。
一般の利用者は、設定の範囲を把握しておくことが大切です。クライアントにはサーバーの認証情報やサブスクリプションURLが保存されるため、スクリーンショットやログを共有する前に、機密情報を削除してください。通常、接続、名前解決、ポートのエラーを調べるにはログで十分です。サブスクリプション全体を公開する必要はありません。UUID、接続先タグ、ドメイン方針などの用語は、まず用語集で確認してから、関連する設定項目を変更しましょう。
クライアント、コア、サブスクリプション、ルール用リソースの更新は、それぞれ異なる問題に対処します。クライアントの更新ではUIや設定の生成方法が変わることがあり、コアの更新はプロトコル対応や動作に影響します。サブスクリプションの更新はサーバー情報を同期し、ルール用リソースの更新はドメインやアドレスの一覧を変更します。問題が起きたら、まずどの層に変化があったかを確認してください。「サブスクリプションを更新すれば直る」と一律に考えないようにしましょう。
更新前にカスタムルーティングや重要な設定を保存し、更新後は使用中のサーバー、プロキシモード、ローカルポートを確認してください。新しい設定の信頼性を判断するときは、同じネットワーク、アプリ、接続先で再テストし、環境の違いによる影響を減らします。このサイトではクライアントの選び方と設定方法を解説しています。具体的な機能はインストール中のプログラムによって異なります。各プラットフォームの詳しい手順は、全プラットフォーム対応のインストール・設定ガイドをご覧ください。
クライアントの違いがわからない場合は比較記事を、インストール後に接続できない場合は設定ガイドを確認してください。用語、操作手順、症状を対応づけると、スイッチを次々に試すより効率よく解決できます。
クライアント選びとトラブル対処
基本設定で接続できたら、実際の問題に応じて特集記事をご覧ください。ブラウザーとターミナルのプロキシ動作、Androidのバックグラウンド制限、クライアントとコアの違いには、それぞれ別のトラブル対処ガイドがあります。一つの問題のために設定全体を学び直す必要はありません。
ブラウザーがプロキシを経由しない場合は拡張機能とプロキシモードを、ターミナルが経由しない場合は環境変数とポート設定を確認します。TUNモードで通信をまとめて取り込む方法も解説します。
VpnServiceを使ったv2rayNGの仕組みを解説し、バックグラウンド切断を防ぐためにバッテリー最適化の対象外にする方法と、指定したアプリだけをプロキシ経由にする方法を紹介します。
3つのクライアントについて、対応プラットフォーム、搭載コア、サブスクリプションとルーティング機能、UIの違いを比較します。デスクトップでv2rayNが有力な理由と、Android向け2つのクライアントの選び方も解説します。