基本知識
クライアント、コア、プロキシモードを区別し、誤った設定箇所を何度も試さないようにしましょう。専門用語は用語集も参考にしてください。
V2Ray、V2Fly、Xray、v2rayN、v2rayNGの違いは?
まず、コアとGUIクライアントを区別しましょう。Project Vは、関連ツールやプロトコルを含むオープンソースエコシステムの基盤です。V2FlyはV2Rayコアを保守し、Xrayは別系統のコアです。v2rayNはデスクトップ向けのクライアントで、サブスクリプション、サーバー、ルーティングを管理できます。v2rayNGはXrayコアを採用したAndroidクライアントで、v2flyNGはV2Flyコアを採用した代替クライアントです。設定を利用できるかどうかは、クライアントが実際に使用するコアとそのバージョンによって異なります。読み込みに失敗した場合は、製品名が似ているかではなく、プロトコルとトランスポートの対応状況を確認してください。
クライアントをインストールしても、サーバー一覧が空なのはなぜ?
クライアントは設定の管理と通信の転送を行うもので、インストールパッケージに利用可能なサーバーは含まれていません。利用権限のあるサブスクリプションURL、共有リンク、設定ファイルを入手し、サブスクリプショングループまたはインポート画面から追加してください。サブスクリプションURLは複数の設定を更新するためのもので、個別の共有リンクは通常1台のサーバーを示します。両者を自由に置き換えることはできません。サブスクリプションを追加しても項目が表示されない場合は、まず更新を実行してログを確認し、選択中のグループや検索フィルターでサーバーが隠れていないかも確認してください。アカウントのログインページのURLをサブスクリプションURLとして使わないでください。
システムプロキシ、TUNモード、AndroidのVPNモードはどう違う?
システムプロキシは、アプリにローカルのHTTPまたはSOCKSプロキシを通知する設定です。この設定を参照するアプリだけがプロキシを使います。TUNモードは仮想ネットワークインターフェースでルーティング条件に合う通信を受け取り、より広い範囲をカバーしますが、権限、除外ルール、DNS設定の影響も受けます。v2rayNGのVPNモードはAndroidのVPNインターフェースを使って端末の通信を受け取るもので、別の商用VPNサービスへの接続を意味するわけではありません。トラブル時はまず通信を制御する方式を1つに絞り、動作を確認してからルールを追加しましょう。複数のプロキシツールが同時にネットワーク経路を変更する状態は避けてください。
VMess、VLESS、Trojan、REALITYはそのまま切り替えられる?
クライアント上のプロトコル名だけを変更しても切り替えられません。VMess、VLESS、Trojanでは認証項目とサーバー設定が異なります。REALITYは通信のセキュリティに関する設定で、これらのプロトコルと並ぶ独立したサーバー種別ではありません。クライアントに入力するアドレス、ポート、認証情報、トランスポート方式、安全性に関するパラメーターは、サーバー側の設定と一致させる必要があります。共有リンクをインポートした場合は、提供元のパラメーターをそのまま使ってください。未対応の項目があるときは、クライアントやコアの更新が必要か確認しましょう。安全性の検証を無効にしたり、プロトコルを適当に変更したりして試すのは避けてください。
インストールと設定
端末のアーキテクチャに合ったパッケージを選び、サブスクリプションの形式や権限を確認しましょう。再インストールする場合は、まずクライアントのダウンロードページで対応プラットフォームとパッケージの種類を確認してください。
サブスクリプションを読み込めないときは、URLとクライアントのどちらを先に確認する?
まずURLを確認します。サブスクリプションリンク全体をコピーし、前後の空白を削除して、改行やチャットアプリが付けた句読点、途中で切れたクエリパラメーターがないか確認してください。v2rayNではサブスクリプショングループのURL欄に入力して更新します。v2rayNGではサブスクリプショングループの設定を使い、個別サーバーのリンクとしてクリップボードから読み込まないでください。ログイン画面やエラーページが返ってくる場合、またはクライアントが対応していない形式の場合は、提供元から適切なURLを入手してください。ログ確認ではエラーの種類が分かれば十分です。スクリーンショットを共有する前に、サブスクリプションURL全体と認証情報を隠してください。
Android版パッケージはarm64とuniversalのどちらを選ぶ?
まず端末のプロセッサーアーキテクチャと、OSが対応するアプリのABIを確認してください。比較的新しいAndroid端末の多くではarm64版を選べますが、発売時期だけでは判断できず、別のABIのみ対応するOSを搭載した端末もあります。universal版は複数のアーキテクチャに対応するため、通常はファイルサイズが大きく、アーキテクチャを確認できない場合に試せます。インストールに失敗したり、非対応と表示されたりする場合は、Androidのバージョン、空き容量、既存アプリと署名が一致するかも確認してください。すぐに旧版をアンインストールせず、先に設定をエクスポートして保存し、エラー内容に応じて再インストールを判断しましょう。
v2rayNでTUNモードを有効にすると権限不足と表示される場合は?
まずTUNを無効にして設定を保存し、現在のOSとクライアントのバージョンに応じて、仮想ネットワークインターフェースの作成とルート変更に必要な権限を付与してください。Windowsではv2rayNを終了し、管理者として起動します。macOSとLinuxではクライアントの案内に従って認証してください。一般ユーザーの設定ディレクトリを安易にシステムディレクトリへ変更しないでください。それでも失敗する場合は、ログで権限拒否、仮想インターフェースの作成失敗、ルートの競合のどれが発生しているか確認し、他のVPNやネットワーク管理ツールが使用中でないか調べます。まず通常のプロキシ接続が正常か確認し、その後TUNを個別に調査すれば、サーバーの問題を権限の問題と誤認せずに済みます。
macOS・Linux版v2rayNのインストールパッケージはどう選ぶ?
macOSでは「このMacについて」でチップを確認します。Apple Siliconならarm64、Intelプロセッサーならx64を選んでください。Linuxではプロセッサーアーキテクチャとディストリビューションのパッケージ形式を確認します。Debian・Ubuntu系では通常deb、Fedora系では通常rpmを使います。ターミナルでuname -mを実行するとアーキテクチャの判別に役立ち、x86_64はx64、aarch64は通常arm64に対応します。インストールできても、依存関係やデスクトップ環境の権限が整っているとは限りません。初回起動時はエラーメッセージを確認してください。拡張子が似ているだけで、別のディストリビューション向けパッケージを混在させないでください。
使い方のヒント
サブスクリプション、速度テスト、アプリ別設定は、それぞれ個別に動作を確認してください。利用可能な設定をバックアップしてから、通信を制御する範囲を少しずつ変更しましょう。
ローカルのグループやルーティング設定を保ったままサブスクリプションを更新するには?
まずクライアントのバックアップまたはエクスポート機能で現在の設定を保存し、配信元ごとにサブスクリプショングループを分け、識別しやすいメモを付けます。更新時は対象のグループだけを操作し、サーバー一覧の検索フィルターを解除して更新結果を確認してください。更新時にサブスクリプション側のサーバー設定で上書きされることがあります。手動変更を長く維持したい場合は、サブスクリプションの項目を直接編集して残ることを期待せず、別の項目として登録してください。ルーティングルールとサブスクリプションの内容は別々に管理します。更新前後の項目の変化やログを記録するのは有効ですが、サブスクリプションURL全体を公開メモに記載しないでください。
V2Rayのノード速度測定:レイテンシと実際のダウンロード速度の見方
まずテストの種類を確認しましょう。TCP接続テストで分かるのは、指定ポートに接続できるかどうかです。プロキシ経由でテスト先にリクエストを送る方法は実際のアクセスに近いものの、すべてのサイトでの使用感を示すわけではありません。ダウンロード速度は回線の混雑、サーバー負荷、接続先サイト、ローカル回線の帯域にも左右されるため、レイテンシの低さだけでサーバーを選ばないでください。同じネットワークとテスト先を使って複数回に分けて測定し、実際に使うサービスにもアクセスして確認しましょう。速度テストは通信量を消費し、サーバー側の制限を受ける場合もあります。サブスクリプション全体を高頻度で同時テストしたり、一度のタイムアウトで恒久的に使えないと判断したりしないでください。
v2rayNGのアプリ別プロキシ設定で、一覧に表示されるアプリはプロキシ経由?それとも除外?
まず現在のバージョンのアプリ別プロキシ設定画面でモードの説明を読み、そのうえでアプリを選択してください。一覧はプロキシを使うアプリを指定する場合も、対象外にするアプリを指定する場合もあります。チェックを入れる操作の意味はモードによって異なります。設定を変更したら、案内に従ってVPN接続を再起動し、新しい対象範囲を反映させてください。まずブラウザー1つで動作を確認し、一度に多くのアプリを追加しないようにしましょう。システムコンポーネント、仕事用プロファイルのアプリ、個別のダウンロードプロセスは、同じ通信対象範囲に含まれない場合もあります。特定のアプリに問題が起きたら、対象範囲をいったん簡単な設定に戻し、例外を1つずつ確認してください。
スマートフォンからLAN経由でパソコン上のv2rayNプロキシを使うには?
2台の端末を信頼できる同じLANに接続し、v2rayNでLANからの接続を許可します。実際の待ち受けアドレスとHTTPプロキシのポートを確認し、パソコンのファイアウォールでは信頼できるネットワークに限ってそのポートを許可してください。スマートフォンのWi-Fiプロキシ設定には、127.0.0.1ではなくパソコンのLAN内IPアドレスを入力します。ポート番号はクライアントに表示された値を使ってください。この方法が適用されるのは主にWi-FiのHTTPプロキシ設定に従うアプリで、スマートフォンの全通信を制御するものではありません。接続できない場合は、ゲストネットワークの端末間通信制限、パソコンのスリープ、IPアドレスの変更を確認してください。使い終わったらLANからの接続を無効にし、アクセス範囲を広げたままにしないでください。
トラブル対処
サブスクリプションのリクエスト、ローカルの待ち受け、リモート接続を切り分けましょう。再インストールを繰り返すより、発生時刻、操作内容、ログのエラー種別を記録するほうが原因の特定に役立ちます。
v2rayNでサブスクリプションを更新できないのに、登録済みサーバーには接続できる場合は?
登録済みサーバーが使えるからといって、データ通信に問題がないとは限りません。サブスクリプションの更新には別のリクエスト経路が使われます。まず更新ログを確認してください。タイムアウトはアクセス経路やDNS、認証エラーはURLの有効性、解析エラーは応答形式に関係することが多いです。現在のバージョンにプロキシ経由でサブスクリプションを更新する設定があれば、利用可能なサーバーを残したまま試し、更新リクエストが実際にそのサーバーを経由しているか確認します。すべての設定を消したり、グループを何度も削除して作り直したりしないでください。TLSや証明書のエラーが出た場合は、証明書の検証を無効にせず、システム時刻とネットワークの認証画面を確認してください。
サーバーのテストがタイムアウトし続けるときの確認手順は?
まず端末の基本的なネットワーク接続を確認し、サーバーのアドレス、ポート、サブスクリプションの有効性を調べます。次に、利用可能と分かっているサーバーを1つ選んで比較テストし、個別の項目だけが失敗しているのか、すべて失敗しているのか切り分けてください。すべて失敗する場合は、ローカルのファイアウォール、別のVPN、DNSの名前解決、現在のネットワーク制限を確認します。1つだけ失敗する場合は、サーバーの状態と設定パラメーターの更新状況を確認してください。TCPテストに成功しても実際のリクエストがタイムアウトするなら、認証、トランスポート、安全性に関するパラメーターが一致していない可能性があります。接続拒否、ドメイン名の名前解決失敗、リクエストのタイムアウトはそれぞれ異なるエラーです。ログの種類に応じて対処してください。
クライアントは接続済みなのにWebページが開かない場合、DNSとルーティングをどう確認する?
「接続済み」の表示は通常、ローカルプロキシまたはVPNインターフェースが起動したことを示すだけで、サーバーや接続先サイトへの到達を保証するものではありません。まずクライアントの接続テストで現在のサーバーを確認し、ブラウザーが本当にローカルプロキシを使用しているかも確かめてください。ログに名前解決失敗がある場合は、DNSサーバーに到達できるか、DNSリクエストが未確立のプロキシ経路に誤って送られていないかを確認します。一部のドメインだけ失敗する場合は、ルーティングルールの優先順位と接続先のアウトバウンドを調べてください。比較のためにいったん単純なルールへ戻し、元の設定をバックアップしてから確認します。DNS、プロトコル、ルーティングを同時に変更すると、どの変更が有効だったのか判断しにくくなります。
システムプロキシが効かないのに、ブラウザーは使えてターミナルは使えないのはなぜ?
まずv2rayNでシステムプロキシの自動設定が選択されているか確認し、現在のHTTPとSOCKSの待ち受けポートを調べてください。ブラウザーはシステム設定を参照する場合もあれば、拡張機能や個別のプロキシ設定で上書きされる場合もあります。一方、ターミナルのツールは独自の設定やプロキシ環境変数だけを参照することがよくあります。一時的にcurl --proxy http://127.0.0.1:10809 https://example.comを使ってHTTPプロキシ経由の接続を確認できます。ポート番号は実際の値に置き換えてください。プロキシを明示すれば使えるのに通常のコマンドでは使えない場合は、該当するターミナルツールに環境変数を設定します。ローカルプロキシの問題とリモートサーバーのタイムアウトを混同しないでください。