初めて設定する場合は、まずOSに合ったクライアントを選び、利用中のサブスクリプションを追加してサーバーを選択し、適切なプロキシ接続方法を設定します。この記事では、クライアント・コア・プロトコル・ルーティングを分けて解説し、デスクトップでのサブスクリプション追加手順、Androidでの操作、ポートの確認例を紹介します。基本設定を完了したうえで、「サブスクリプション → コア → 接続方法 → ルーティング」の順に確認すれば、すべての設定を同時に変更せずに問題を切り分けられます。
1. V2Ray、クライアント、ノードとは?
クライアントは設定画面、コアは通信の処理を担い、ノードは接続先サーバーの設定です。それぞれ役割が異なります。v2rayNをインストールしてもサーバーが使えるようになるわけではなく、ノードを追加してもブラウザーが自動的にプロキシを使うわけではありません。
| 名称 | 役割 | 初心者が確認するポイント |
|---|---|---|
| v2rayN / v2rayNG / v2flyNG | 設定の追加、ノードの選択、プロキシ接続方法の設定 | OSとプロセッサアーキテクチャが合っているか |
| Xray / V2Fly | プロトコル接続、DNS、ルーティング、アウトバウンドの処理 | ノードが必要とするプロトコルやパラメーターに対応しているか |
| ノード | リモートサーバーのアドレス、ポート、認証情報を指定 | アドレス、有効期限、通信量に問題がないか |
| サブスクリプション | 1つのURLからノードをまとめて取得・更新 | URLが完全で、有効な設定を取得できるか |
「V2Ray」はプロジェクト名を指す場合もあれば、この種のプロキシツール全般を指す言葉として使われることもあります。トラブル時に「V2Rayが使えない」とだけ伝えるのではなく、クライアント名、コア名、プロキシモード、エラーメッセージを記録しましょう。具体的な設定の確認に役立ちます。
2. Windows、macOS、Linux、Androidで使うクライアントは?
デスクトップではv2rayNから始め、Androidでは必要なコアに応じてv2rayNGまたはv2flyNGを選びます。まずOSとアーキテクチャを確認し、次にノードの要件を確かめましょう。複数のクライアントを同時にインストールして試す必要はありません。
v2rayN デスクトップクライアント
おすすめWindows、macOS、Linuxでのデスクトップ利用に対応しています。Desktop版はクロスプラットフォームのUIを採用し、WPF版はWindows向けです。ファイル名にv2rayNとあるだけでは、対応OSを判断できません。
おすすめの用途:PCでの初期設定、サブスクリプション管理、ルーティング設定
v2rayNG Androidクライアント
Xrayコアを使用するAndroidクライアントです。ノードがVLESSやREALITYなどを必要とする場合は、クライアントに搭載されたコアが対応しているかも確認してください。
おすすめの用途:Android端末、Xrayのプロトコル機能が必要なサブスクリプション
v2flyNG Androidクライアント
V2Flyコアを使用するAndroidクライアントです。選択の基準は既存の設定とV2Flyとの互換性です。名前が似ていても、完全に置き換えられるとは限りません。
おすすめの用途:Android端末、V2Fly互換の既存設定
アーキテクチャも合わせて選びましょう。Windowsではx64、macOSではarm64とx64を確認し、Linuxではdebとrpmのパッケージ形式を選びます。Androidは通常arm64を選択します。端末のアーキテクチャがわからない場合は、ダウンロードページで汎用パッケージの説明を確認してください。インストーラーとポータブル版では起動方法が異なるため、選んだパッケージの手順に従いましょう。
3. サブスクリプションはどこで入手する?共有リンクとの違いは?
サブスクリプションURLは、サーバーの運営者または自前サーバーの管理画面から入手します。クライアントが利用可能なリモートノードを自動で作成することはありません。サブスクリプションは複数の設定を更新するためのURLで、共有リンクは通常、1つの接続設定を表します。
- サブスクリプションURL:通常はHTTPS URLで、アカウントのトークンが含まれる場合があります。サブスクリプショングループに登録して更新すると、ノード一覧を取得できます。
- 共有リンク:
vmess://やvless://で始まるものが一般的です。サブスクリプションURL欄ではなく、クリップボードから設定をインポートする機能を使ってください。 - 設定ファイル:コアの設定ファイルやクライアントからエクスポートしたファイルの場合があります。対応形式とインポート方法は個別に確認してください。JSONファイルをすべてサブスクリプションとして扱うことはできません。
初回の更新でノードが1つも取得できなくても、クライアントの故障とは限りません。まずサブスクリプションの有効期限と通信量を確認し、サーバーから返された内容がノード情報なのか、ログイン画面やエラー、リダイレクト先のページなのかを調べましょう。ブラウザーでページを開けても、クライアントがノードとして読み込めるとは限りません。
4. v2rayNとv2rayNGでサブスクリプションを追加する方法
デスクトップでは、まずグループを作成してから更新し、最後にノードを選んでアクティブサーバーに設定します。ここではv2rayNの一般的な画面表示を例にします。配布版によってボタンの位置が異なる場合がありますが、「サブスクリプショングループ設定」「サブスクリプションを更新」「アクティブサーバーに設定」の各操作を探してください。
-
グループを作成
メイン画面で「サブスクリプション」→「サブスクリプショングループ設定」を開き、「追加」または「+」からグループを作成して、識別しやすい名前を入力します。
-
URLを貼り付け
グループのURL欄にサブスクリプションURL全体を貼り付け、先頭や末尾、トークンが欠けていないことを確認して保存します。引用符付きのチャットメッセージ全体は貼り付けないでください。
-
サブスクリプションを更新
「サブスクリプション」メニューに戻り、「すべてのサブスクリプションを更新(プロキシを使用しない)」を実行します。最初は直接接続で更新してください。プロキシ経由の接続が必要で、利用可能なノードがすでにある場合は、プロキシ経由での更新を試します。
-
サーバーを選択
ノード一覧で対象を右クリックし、「アクティブサーバーに設定」を選択します。ログでコアが正常に起動したことを確認してから、システムプロキシを設定してください。ノードが一覧に表示されるだけでは不十分です。
v2rayNGでは通常、サイドメニューの「サブスクリプショングループ設定」→右上の「+」から、名前とサブスクリプションURLを入力して保存します。メイン一覧に戻り、右上のメニューから「サブスクリプションを更新」を実行してください。ノードを選んで接続ボタンをタップすると、初回起動時にAndroidのVPN接続リクエストが表示されます。メニューの表記が多少異なる場合は、インストールしたバージョンのサブスクリプション管理画面を確認してください。
5. XrayとV2Fly、どちらのコアを選ぶ?
速度のイメージで選ぶのではなく、ノードの要件に合わせてコアを選びましょう。VMessとVLESSはプロトコル名、WebSocketはトランスポート方式、TLSとREALITYはセキュリティ関連の設定です。これらを組み合わせて使えますが、すべてのコアがあらゆる組み合わせに対応しているわけではありません。
Xray設定の確認
- 主な判断基準
- サブスクリプションがXrayの機能を必要としているか
- 主なプロトコル
- VLESS、VMess
- 特別な要件
- REALITY、xtls-rprx-vision
- Androidアプリ
- v2rayNG
REALITYやVisionのパラメーターを含む場合は、その組み合わせに対応したXrayのバージョンを使い、各項目をサーバー側の設定と一致させてください。
V2Fly設定の確認
- 主な判断基準
- サーバーがV2Fly互換の設定を提供しているか
- よくある組み合わせ
- VMess + WebSocket + TLS
- 互換性の確認
- トランスポート、認証、設定の構文
- Androidアプリ
- v2flyNG
Xray専用の項目をそのままコピーしないでください。既存の設定が使える場合は、まず元のコアとパラメーターを維持しましょう。
v2rayNでは「設定」→「パラメーター設定」からコアの種類に関する項目を確認できます。バージョンによっては、プロトコルごとにコアを指定する場合もあります。変更後はクライアントのコアを再起動してください。ログに未知の項目や未知のトランスポート方式が表示された場合は、サーバーのポートを何度も変更するのではなく、ノード設定とコアの対応状況を確認しましょう。コアが起動するのは第一段階にすぎません。認証情報とリモート側とのハンドシェイクも正しく設定する必要があります。
6. システムプロキシとTUNモードの違い
まずシステムプロキシでブラウザーの接続を確認し、システムプロキシに従わないアプリがある場合にTUNを検討しましょう。システムプロキシはOSの設定にプロキシアドレスを書き込みます。TUNは仮想ネットワークインターフェースを作り、ルーティングを通じてより多くのアプリの通信を取り込みますが、権限、DNS、ローカルネットワークへのアクセスも考慮する必要があります。
| 接続方法 | 適した用途 | 注意点 |
|---|---|---|
| システムプロキシ | ブラウザーやシステムプロキシ設定に従うアプリ | 独自のプロキシ設定を持つアプリや、システム設定を無視するアプリもあります |
| アプリごとの手動プロキシ設定 | HTTP / SOCKSアドレスを入力できる個別のアプリ | クライアントが実際に待ち受けているアドレスとポートを使う |
| TUN | より多くのアプリの通信を取り込む必要があるデスクトップ環境 | 権限、DNS、ルーティング、LANの除外ルールを確認 |
| AndroidのVPN接続 | v2rayNGなどのクライアントがシステムVPNトンネルを作成 | 対象アプリの範囲を確認し、別のVPNが接続を占有していないか確認 |
v2rayNのシステムプロキシメニューで、まず「システムプロキシを自動設定」を選びます。使用を終えたら「システムプロキシをクリア」を選択してください。TUNを有効にしても、無効なサブスクリプションや誤ったパスワードは直りません。TUNが変えるのは通信をクライアントに取り込む方法であり、ノードへの接続そのものを代替するものではありません。
7. 「全プロキシ」と「ルールによる振り分け」の選び方
普段は用途に合ったルールを選び、問題の切り分けでは一時的に明示的なプロキシルートへ切り替えて比較しましょう。プロキシの接続方法とルーティングポリシーは別の設定です。アプリが通信をクライアントに送り、コアがその通信を直接接続、プロキシ、またはブロックのどれにするか決定します。
- 直接接続:選択したプロキシサーバーを経由せずに接続します。ローカル回線から接続したい宛先に適しています。
- プロキシ:設定済みのプロキシアウトバウンドに通信を渡します。通常、この段階で選択中のノードが使用されます。
- ブロック:一致した接続を拒否します。速度が遅い状態とは異なり、ノードの切断と取り違えないようにしましょう。
- ルールの順序:通常は設定された順に照合されます。前方にある広い範囲のルールが、後方の細かなルールに優先する場合があります。
ルールによる振り分けの例(そのままインポートできる設定ではありません):
LAN内のアドレス → direct
プロキシが必要なドメインを指定 → proxy
その他の通信 → 現在のルーティングで設定されたデフォルトのアウトバウンド
システムプロキシメニューの「自動設定」は、「ルールによる自動振り分け」と同じ意味ではありません。現在のルーティングプリセットと、最終的なデフォルトアウトバウンドも確認してください。ルールでgeosite:cnやgeoip:cnを使う場合は、対応するルールデータが利用できる必要があります。ルール名を入力しただけでドメイン分類が用意されるわけではありません。
8. ノードに遅延があるのに、Webページが開かないのはなぜ?
遅延テストの結果は、特定のテストが成功したことを示すだけで、接続経路全体が正常とは限りません。TCPの疎通確認に成功しても、リモートのポートに接続できたとわかるだけの場合があります。実際にWebページへアクセスするには、プロキシのハンドシェイク、認証、DNS、TLS、ルーティングも関係します。ミリ秒の数値だけではなく、テストの種類を確認しましょう。
サブスクリプションの更新がタイムアウトする場合
サブスクリプションメニューから、まずプロキシを使わずに更新してください。サブスクリプションへのアクセスにプロキシが必要な場合は、既存のノードが使えることを確認してから、プロキシ経由で更新します。使えないノードを更新時の唯一の接続手段にしないでください。
ノードに遅延があるのに、ブラウザーで開けない場合
ノードがアクティブサーバーに設定され、システムプロキシが有効になっていることを確認してから、コアのログを調べます。TCPの遅延テストしか行っていない場合は、実際の接続テストも実施し、ポートに接続できることとプロトコルのハンドシェイクが成功することを区別してください。
証明書またはTLSのハンドシェイクエラーが表示される場合
まずシステム時刻の自動同期を有効にし、ノードに設定されたサーバー名とTLS設定がサーバー側の要件に合っているか確認します。証明書の検証を無効にする方法を、通常の解決策として使わないでください。
TUNを有効にするとローカルデバイスに接続できない場合
まずTUNを無効にして比較し、ローカルネットワークに接続できることを確認してから、ルーティングがLANのアドレス範囲を対象にしていないか調べます。実際のネットワーク設定に合わせてローカルアドレスを除外してください。ルーティングルールをすべて消去するのは避けましょう。
一度に変更する設定は1つにし、変更前後のエラーを記録しましょう。サブスクリプション更新のエラーは設定取得時、コア起動エラーはローカルでの実行時、リモート認証エラーは接続時に発生します。これらを区別せずに対処すると、問題のなかった設定まで使えなくなることがあります。
ローカルポートの設定方法と競合の確認
アプリが接続するのはクライアントのローカル待受ポートであり、リモートサーバーのポートではありません。まずv2rayNの「設定」→「パラメーター設定」で実際の待受設定を確認してから、アプリのプロキシを設定してください。以下では127.0.0.1:10808を例に確認方法を説明します。これは一例であり、すべてのバージョンのデフォルト値とは限りません。
# Windows PowerShell:サンプルポートでTCP接続を待ち受けているか確認
Get-NetTCPConnection -LocalPort 10808 -State Listen
# Linux:TCPの待受一覧を表示し、出力から10808を探す
ss -lntp
# macOS:サンプルポートを待ち受けているプロセスを確認
lsof -nP -iTCP:10808 -sTCP:LISTEN
ポートが待ち受け状態でない場合は、まずコアが起動しているか確認してください。ログにaddress already in useと表示される場合は、どのプロセスがポートを使用しているか調べ、重複して起動したクライアントを終了するか待受ポートを変更します。ポートを変更したら、アプリの手動プロキシアドレスも更新してください。古いポートが自動で切り替わることはありません。
10. 設定の完了を確認し、復元できる状態に保つ方法
「接続済み」のアイコンだけを頼りにせず、実際のアクセス、ログ、モード切り替えの結果を基準に確認しましょう。初回の設定が終わったら、クライアント、コア、待受ポート、ルーティングプリセットを記録します。アップデートやノード変更後に比較できる基準になります。
- 起動を確認:アクティブサーバーを選択した後、コアが正常に起動し、ポート競合や設定の解析エラーが繰り返し表示されていないことをログで確認します。
- 接続を確認:直接接続する想定の宛先と、プロキシ経由で接続する想定の宛先をそれぞれテストし、接続ログで実際のアウトバウンドを確認します。
- DNSを確認:ほかの接続は正常なのにドメイン名でアクセスできない場合は、DNS設定を確認してください。IPアドレスへの直接アクセスだけでHTTPSサービスを判断しないでください。
- 終了時の状態を確認:システムプロキシを使っている場合は、プロキシ設定をクリアしてからクライアントを終了し、通常のネットワーク接続に戻ることを確認します。
- 設定を保存:クライアントのバックアップまたはエクスポート機能を使い、サブスクリプションや認証情報を含むファイルを安全に保管してください。トラブル調査用の情報を共有するときは、機密情報を隠しましょう。
アップデート前に復元可能な設定を保存し、アップデート後は元のノードとルーティングを使って確認してください。コアの変更、DNSの変更、TUNの有効化を同時に行わないようにしましょう。原因を特定できない場合は、「OS、クライアントのバージョン、コア、プロトコルの組み合わせ、再現手順、機密情報を隠したログ」の6項目をまとめ、FAQや詳細ガイドを参考に順番に確認してください。問題を特定の段階に絞り込み、何度も再インストールする事態を避けられます。
OSに合ったクライアントをダウンロード
Windows、macOS、Android、Linuxからインストーラーを選び、ガイドに沿ってサブスクリプションの追加とプロキシ設定を行います。