初期設定では、クライアントの選択、有効なサブスクリプションの登録、利用するサーバーの選択、適切な通信経路の設定を行います。この記事ではWindows版v2rayNを中心に、デスクトップ版とAndroid版の違いも紹介。サブスクリプションの取得失敗、ブラウザーに接続できない、ポートの競合、DNSの不具合を切り分けて確認します。設定を一度に変更せず、まず最小限の構成で接続する方法を解説します。
1. V2Ray、Xray、v2rayNは同じソフトですか?
いいえ。V2RayとXrayはプロキシコア、v2rayNは設定を管理してコアを起動するクライアントです。コアはローカルポートで待ち受け、リモートサーバーに接続し、ルーティングを実行します。クライアントはサーバー一覧の表示、サブスクリプションの登録、システムプロキシの設定を担います。ウィンドウが開いていても、コアが正常に起動しているとは限りません。
- v2rayN:デスクトップ向けクライアントです。配布パッケージに応じてWindows、macOS、Linux版を選べます。利用できる設定項目は、使用するコアとそのバージョンによって異なります。
- v2rayNG:Android向けクライアントで、Xrayコアを使用します。接続時には通常、システムのVPN接続許可が必要です。
- v2flyNG:Android向けクライアントで、v2flyコアを使用します。設定をインポートする前に、ノードのパラメーターがコアでサポートされているか確認してください。
VMessとVLESSはプロトコル名であり、クライアント名ではありません。REALITYはセキュリティレイヤーの方式、XTLS Visionはフロー制御の方式です。サブスクリプションにVLESSと記載されていても、すべてのコアが付加設定を含めて処理できるとは限りません。未対応の項目がある場合は、別のプロトコルに安易に変更せず、まずクライアントとコアの対応状況を確認しましょう。
2. 初回ダウンロード時にOS・アーキテクチャ・パッケージを選ぶには?
まずOSとCPUアーキテクチャを確認し、その後にインストール形式を選びます。Windowsのx64とARM64、macOSのIntelとApple Silicon、Linuxの各種パッケージは、ファイル名が似ていても互換性があるとは限りません。Windowsでは「設定」→「システム」→「バージョン情報」からシステムの種類を確認できます。ダウンロード先はダウンロードセンターにまとめています。
-
アーキテクチャを確認
OSの種類とCPUアーキテクチャを確認します。Linuxでは
uname -mを実行すると、x86_64は通常x64、aarch64は通常ARM64に該当します。 -
パッケージ形式を選択
インストーラーはOSの手順に沿ってインストールします。圧縮ファイル版は、書き込み可能なフォルダーにすべて展開してください。圧縮ソフトのプレビュー画面から実行ファイルを起動しないでください。
-
初回起動
Windows版は展開先フォルダー内の
v2rayN.exeを起動します。通常のシステムプロキシ設定に管理者権限は不要です。TUNなどを有効にする場合に限り、画面の指示に従って権限を許可してください。 -
ログを確認
クライアントが設定を読み込めていること、コアがすぐに終了していないことを確認します。実行環境が不足していると表示された場合は、配布パッケージの要件に従って補ってください。他のバージョンのプログラムファイルを現在のフォルダーに混在させないでください。
この記事では、v2rayNの一般的な中国語UIを例にメニューを説明します。バージョンによって項目の場所が異なる場合があります。「サブスクリプショングループ」「システムプロキシ」「ルーティング」などの機能名を確認し、古い画面の位置を固定の操作手順だと思わないようにしましょう。
3. インストールすれば接続できますか?サーバーはどこから入手しますか?
いいえ。クライアントはサーバーではなく、インストールしただけで接続先が自動生成されるわけではありません。利用権限のあるノード設定またはサブスクリプションURLを登録する必要があります。サブスクリプションからは通常、複数のノードが取得できます。ノードにはリモートアドレス、ポート、プロトコル、認証情報などが含まれます。それぞれ用途が異なります。
| 受け取った内容 | 適切な登録方法 | 登録後の確認項目 |
|---|---|---|
| サブスクリプションURL | サブスクリプショングループ設定 | 更新後にサーバー一覧が表示されるか |
| 個別ノードの共有リンク | クリップボードから共有リンクをインポート | プロトコル、アドレス、通信パラメーターが揃っているか |
| JSON形式の設定ファイル | 対応する設定インポート機能 | 設定形式が現在のコアに対応しているか |
サブスクリプションページのログインURLを、サブスクリプションURLとして使わないでください。また、サブスクリプションURLをノードの「アドレス」欄に入力しないでください。URLにアカウントのトークンが含まれている場合、漏れると第三者に使われるおそれがあります。問い合わせる際は、URL、ユーザーID、認証情報を隠し、必要なエラーの種類だけを伝えてください。
4. サブスクリプションURLはどこに貼り付け、どう更新しますか?
サブスクリプショングループにURLを保存してから更新します。グループ名を保存しただけではノードは取得されません。ここではv2rayNの一般的なデスクトップ画面を例に説明します。登録後は一覧にノードが表示されることを確認してから接続してください。
-
グループを開く
「サブスクリプション」→「サブスクリプショングループ設定」を開き、新しいグループを追加します。識別しやすい名前を付けてください。
-
URLを貼り付ける
サブスクリプションURL全体をURL欄に入力します。先頭や末尾に空白や改行が入っていないか確認し、保存してメイン画面に戻ります。
-
サブスクリプションを更新
「サブスクリプション」から「すべてのサブスクリプションを更新(プロキシを使用しない)」を選びます。利用可能な接続があり、直接接続で更新できない場合は、「すべてのサブスクリプションを更新(プロキシを使用)」を試してください。
-
結果を確認
更新メッセージとサーバー一覧を確認します。一覧が空の場合は、まず更新ログを確認してください。ノードが表示されたらいずれかを選び、右クリックメニューから利用するサーバーに設定します。
初回利用時は、まだ使えるプロキシがないことがほとんどです。その状態でプロキシ経由の更新を選ぶと、「接続設定を取得するには先に接続が必要」という循環に陥る場合があります。直接接続で取得できない場合は、URLの有効性と現在のネットワークからの到達性を確認してください。必要に応じて設定の提供元に登録方法を問い合わせ、プロトコルを何度も切り替えるのは避けましょう。
5. サーバーを選んだのに、ブラウザーがプロキシ経由にならないのはなぜ?
利用するサーバーの選択は通信先を決め、システムプロキシの設定はどのアプリがクライアントに通信を渡すかを決めます。Windowsでは通知領域のアイコンを右クリックし、「システムプロキシ」→「システムプロキシを自動設定」を選択します。その後、ブラウザーで目的のサイトにアクセスし、クライアントのログに新しいリクエストが記録されるか確認してください。
以下の3つの値は、ローカル側とリモート側を見分けるための例です。既存の設定を上書きする値ではありません。実際の待ち受けポートは「設定」→「パラメーター設定」のローカル待ち受け関連項目で確認し、起動ログとも照合してください。
確認ポイント:まずリクエストがローカルの入口に届いているか確認
ブラウザーでアクセスしてもログに新しいリクエストがまったく記録されない場合は、システムプロキシとブラウザー独自のプロキシ設定を確認します。送信接続のエラーが記録されている場合は、リモートノードを確認してください。入口が接続されていない段階で、サーバーを何度も変更する必要はありません。
システムプロキシを無視するアプリもあり、ブラウザー拡張機能がシステム設定を上書きすることもあります。そのため、あるブラウザーで使えても、すべてのアプリがプロキシを利用するとは限りません。システムプロキシを書き換えるアプリを複数同時に起動すると、プロキシ設定が上書きされるおそれもあります。
6. システムプロキシ、グローバルルーティング、TUNの違いは?
システムプロキシとTUNは通信を取り込む入口で、ルーティングモードはコアに入った通信の転送先を判断します。これらは同じ階層の設定ではありません。ルーティングをグローバルプロキシにしても、システムプロキシを無視するアプリが自動的にプロキシを使うようにはなりません。
- システムプロキシ:まずブラウザーなど、システムプロキシ設定に従うアプリで接続を確認するのに適しています。影響する範囲も比較的把握しやすい方法です。
- グローバルプロキシルーティング:通常は、コアに取り込まれ、このモードの対象となる通信をプロキシ経由で送信します。端末のすべての通信を引き受けるという意味ではありません。
- TUN:仮想ネットワークインターフェースを通じて、より多くのアプリの通信を取り込みます。権限、ルーティング、DNSが関係し、実際の適用範囲は除外ルール、IPv6、OSの制限にも左右されます。
初期設定では、まずシステムプロキシでノードを確認し、その後にTUNを検討しましょう。最初から入口、DNS、ルーティングを同時に変更すると、問題の原因を特定しにくくなります。Android版のv2rayNGやv2flyNGでは通常、接続にシステムVPNの許可が必要です。VPN接続を使用中の他のアプリにも注意してください。
7. ルーティングの振り分け方は?ルールを手動で書く必要はありますか?
初心者は、内容を理解できるクライアント標準のプリセットから使い始めましょう。すぐにJSONを手書きする必要はありません。LANや中国本土のアドレスを迂回する一般的な設定では、一部の通信を直接接続し、残りをプロキシ経由にできます。実際の動作は、プリセットに含まれるドメインやIPのルール、ルールデータが正常に読み込まれているかによって異なります。
- ルーターやLAN内の機器にアクセスする場合は、LANへの直接接続ルールを残してください。TUNを有効にした場合は、対応する除外設定や直接接続設定も確認しましょう。
- 特定のサイトで振り分けに問題があるかだけを調べる場合は、一時的にグローバルプロキシルーティングに切り替えてテストできます。テスト後は元の設定に戻してください。
- カスタムルールを追加する前に、対象とする通信と転送先を明確にします。ルールは通常、上から順に判定されるため、条件の広いルールを先に置くと、後続の例外に適用されないことがあります。
- 別のコア向けの設定を、そのまま現在の設定に貼り付けないでください。同じ概念でも、コアによって項目名、値、既定の動作が異なる場合があります。
振り分けは、「中国本土のサイトは常に直接接続、それ以外は常にプロキシ」という単純な分類ではありません。ドメインルールが不完全な場合もあり、IPアドレスを直接使うアプリではドメインルールを適用できません。特定のサイトで問題が起きたら、ページの言語から経路を推測せず、そのリクエストがどの送信先に振り分けられたか確認してください。
8. 遅延テストは正常なのに、Webページが開かないのはなぜ?
テストごとに確認できる通信経路の範囲が異なります。TCP接続テストで主に確認するのは、リモートポートへの接続が確立できるかどうかです。プロトコル認証、TLSハンドシェイク、プロキシ転送、接続先サイトへのアクセスまで成功することを保証するものではありません。実接続テストはアプリのリクエストに近いものの、指定されたテスト先の結果に限られます。
- まずテストの種類を確認します。TCP遅延と実接続遅延のどちらを測ったか記録してください。ポートに接続できただけでは、ノード設定がすべて正しいとは判断できません。
- 次にテスト先を確認します。特定のテスト先に接続できなくても、すべての接続先が使えないとは限りません。別の正常な接続先でも確認し、一覧の色だけで判断しないでください。
- 認証パラメーターを確認します。プロトコル、セキュリティレイヤー、通信方式、サーバー名などが提供元の設定と一致しているか確認してください。特に、セキュリティレイヤーを自己判断で無効にしないでください。
- DNSを切り分けて確認します。ログに名前解決エラーがある場合、ノードのドメインと接続先サイトのドメインのどちらで失敗したか特定し、それぞれの名前解決経路を確認してください。
遅延はダウンロード速度を示すものではありません。往復時間が短くても帯域が広いとは限らず、1回のテスト結果は接続の再利用や一時的な混雑にも左右されます。原因を調べるときはノード、接続先、入口を固定し、一度に変更する設定を1つに絞って比較しましょう。
9. 接続できないとき、どのエラーを確認し、どう対処しますか?
まずコアの起動を確認し、次にローカルの待ち受け、最後にリモート接続とDNSを確認します。ログの全文はOSやコアによって異なります。以下に代表的なエラーを示します。原因を特定するときは、エラー前後の接続先アドレスやログも確認してください。1行だけで判断することはできません。
エラー:address already in use
原因と対処:ローカルの待ち受けアドレスまたはポートが、別のプロセスに使用されています。まずクライアントが重複起動していないか確認してください。それでも競合する場合は、パラメーター設定でローカルの待ち受けポートを変更し、そのポートを手動設定しているアプリも更新します。
エラー:connection refused
原因と対処:接続先から接続を拒否されています。接続先がローカルかリモートかを確認してください。ローカル側で拒否される場合はコアが待ち受けているか、リモート側で拒否される場合はサーバーアドレス、ポート、サービスの稼働状況を確認します。
エラー:context deadline exceeded
原因と対処:処理がタイムアウトしました。接続、ハンドシェイク、リクエストの各段階で発生する可能性があります。前後のログからタイムアウト箇所を確認し、現在のネットワーク、リモートへの到達性、ノード設定の順に調べてください。すぐにDNSが原因だと決めつけないようにしましょう。
エラー:no such host
原因と対処:ドメイン名を解決できませんでした。ドメインの入力ミスやサブスクリプションの期限切れを確認し、使用中のDNSリゾルバーとそのネットワーク経路を調べてください。接続先ドメインの問題を、ローカルポートの問題と取り違えないようにしましょう。
Windowsで例としてポート 10808 が待ち受け中か確認する場合は、次のコマンドを実行します。出力に LISTENING と表示されれば、プロセスが待ち受けています。最後の列はプロセスIDです。何も表示されない場合は、この検索条件に一致する項目が見つからなかっただけで、リモートサーバーが利用できないという意味ではありません。
netstat -ano | findstr ":10808"
ログを共有する前に、サブスクリプションURL、認証項目、個人を特定できる情報を隠してください。問い合わせには、OS、クライアントのバージョン、選択中のコアのバージョン、入口のモード、エラー前後のログを含めます。「接続できない」だけでは、入口、名前解決、ハンドシェイク、接続先のどこに問題があるか判断できません。
10. 更新・終了・ネットワーク切り替え時の注意点は?
復元できるよう設定を保存し、環境を変更した後は接続を再確認しましょう。クライアントの更新、サブスクリプションの更新、ネットワークの切り替えは、それぞれ異なる部分に影響します。問題が起きた直後に再インストール、設定の上書き、DNS変更を同時に行うと、原因の特定に必要な情報が失われるおそれがあります。
サブスクリプションを更新したら、選択していたノードが変わったのはなぜ?
サブスクリプションの更新により、ノードが追加、削除、名称変更されることがあります。更新後は利用中のサーバーが引き続き有効か確認し、実接続をテストしてください。カスタムノードは個別に管理し、更新後も古い項目がすべて残ると思い込まないようにしましょう。
クライアントを終了したら、かえってWebページを開けなくなったのはなぜ?
まず通知領域の「システムプロキシ」から「システムプロキシを解除」を選び、その後クライアントを終了してください。異常終了した場合は、Windowsの「設定」→「ネットワークとインターネット」→「プロキシ」で、ローカルを指す手動プロキシが残っていないか確認します。組織で管理されているプロキシ設定は、許可なく変更しないでください。
自宅のネットワークからテザリングに切り替えたら、急に使えなくなったのはなぜ?
まずテザリングでインターネットに正常に接続できることを確認し、現在のノードを再テストします。TUNを使用している場合は、ネットワークが安定してからTUNを一度無効にし、再度有効にしてルーティングとDNSを再設定してください。それでも解決しない場合は、切り替え前後のログを記録し、入口、リモート接続、名前解決の順に確認します。
アップグレード前にクライアントの設定とカスタムルールを保存し、現在選択しているコアを記録してください。アップグレード後は、まず以前のノードで基本接続を確認し、その後に新機能を試します。詳しい操作手順はインストール・設定ガイドを、プロトコル、ルーティング、DNSの設定項目の違いは技術リファレンスをご覧ください。