V2Rayのよくある質問
インストールパッケージの選び方、サブスクリプションのインポート、接続トラブルを解説します。まず症状を確認し、設定は一度に1つずつ変更してください。
v2rayN、v2rayNG、v2flyNGの一般的な利用方法を対象にしています。バージョンによってメニュー名が異なる場合は、現在のクライアントの設定とログを確認してください。
V2Rayの基礎知識
クライアント、コア、通信の入口を区別して、異なる階層の切り分けを減らします。
V2Ray、V2Fly、XrayとGUIクライアントの関係は?
V2Rayは通常、Project Vエコシステムのプロキシツールや設定体系を指し、V2FlyとXrayは関連するコアの系統です。コアはプロトコル、トランスポート、ルーティング、DNSを処理し、GUIクライアントはサーバー設定、サブスクリプショングループ、起動オプションを管理します。v2rayNはデスクトップクライアント、v2rayNGはXrayコア、v2flyNGはV2Flyコアを使用します。互換性を確認する際は、クライアント名だけでなく、実際に動作するコアとそのバージョンも確認してください。インポートできたことだけでは、機能が使えるとは限りません。
v2rayN、v2rayNG、v2flyNGの選び方は?
Windows、macOS、Linuxのデスクトップではv2rayNを、Androidではv2rayNGをまず検討してください。V2Fly設定との互換性が必要な場合は、v2flyNGも候補になります。選ぶ前に、サブスクリプションで必要なプロトコル、トランスポート方式、安全設定を確認し、クライアントのコアが対応しているか確かめましょう。同じ名前の設定項目でも、コアによって値や動作が異なることがあります。クライアントを切り替えるときは、既存の設定を残し、動作確認済みの設定を1つ試してから、サブスクリプション全体やルーティング設定を移行してください。
クライアントをインストールすれば、すぐに接続できる設定も使えますか?
クライアントのインストールで用意できるのは、端末上の実行環境です。接続可能なサーバー設定が含まれるわけではありません。利用権限のあるサービスからサブスクリプションURLまたは個別の設定を取得し、有効期限、サーバーアドレス、ポート、認証情報を確認してください。サブスクリプションURLにはアクセス用の認証情報が含まれることが多いため、公開の掲示板への投稿やスクリーンショットへの掲載は避けましょう。設定をインポートしたらサーバーを選択し、コアを起動して適切なプロキシ方式を設定します。サーバー名が表示されているだけでは、接続済みとは限りません。
システムプロキシ、TUN、ルーティングによる振り分けの違いは?
システムプロキシは、システム設定に従うアプリにローカルプロキシの接続先を提供しますが、すべてのアプリが利用するわけではありません。TUNは仮想ネットワークインターフェースで通信を受け取り、より広い範囲をカバーできますが、権限が必要で、ほかのネットワークツールと競合することもあります。ルーティングによる振り分けは、コアに入った接続の送信先(直接接続、プロキシ、遮断など)を決めます。それぞれ役割の階層が異なり、プロキシ方式は通信をコアに通すかどうか、ルーティングはコアに入った通信をどう処理するかを決めます。トラブル時は、まず通信の入口を確認し、その後に振り分けを調べてください。
ダウンロードとインストール
OSとアーキテクチャを確認してから、パッケージ形式とUIのバージョンを選びます。
Androidのインストールパッケージはarm64とuniversalのどちらを選ぶ?
比較的新しいAndroid端末では、まずarm64を選ぶとよいでしょう。ただし、端末の発売時期だけで判断せず、プロセッサとシステムのアーキテクチャを確認してください。arm64パッケージは対応アーキテクチャ向けで、通常は容量が小さめです。universalパッケージは複数のアーキテクチャに対応しているため、端末の構成がわからない場合に適しています。arm64をインストールできない場合は、システムバージョン、空き容量、既存アプリの入手元を確認してから、universal版を試してください。署名の不一致やダウングレード制限が原因のこともあり、別のアーキテクチャのパッケージで解決するとは限りません。
v2rayNのデスクトップ版と従来のWPF版の違いは?
デスクトップ版は新世代のクロスプラットフォームUIを採用し、従来のWPF版はWindows向けのUI技術を使用しています。Windowsでは使い慣れた操作方法や実行環境に合わせて選び、macOSとLinuxでは各OS向けのデスクトップパッケージを確認してください。メニューの位置、実行に必要な環境、一部機能の実装は異なる場合があるため、スクリーンショットだけを頼りにボタンを探さないようにしましょう。バージョンを切り替える前に、残しておきたいサブスクリプション、サーバー、ルーティング設定をエクスポートし、旧設定フォルダーも保存してください。初回起動後は、実際に有効な待ち受けポートとコアの選択を確認します。
macOSのチップアーキテクチャとLinuxのパッケージ形式の確認方法は?
macOSでは「このMacについて」でチップを確認します。Apple Siliconならarm64、Intelならx64を選択してください。Linuxでは、ディストリビューションのパッケージ形式とプロセッサアーキテクチャの両方を確認します。Debian系やUbuntu系では通常deb、Fedoraなどでは通常rpmを選びます。x64かarm64かは、ディストリビューション名だけでは判断できません。インストーラーでアーキテクチャ不一致や依存関係の不足が表示された場合は、システム情報とパッケージの要件を確認してください。異なる形式のパッケージを繰り返しインストールしたり、システムのセキュリティ設定をむやみに変更したりするのは避けましょう。
クライアントの更新でサブスクリプションは消える?インストール失敗時の確認事項
通常の上書き更新ではユーザー設定が保持されますが、ポータブル版、インストール先、ユーザーデータの保存先が常に同じとは限りません。配布形式を切り替える場合は特に注意してください。更新前にサブスクリプショングループ、ルーティング設定、必要なカスタム設定をバックアップし、クライアントを終了します。インストールに失敗したら、システムとアーキテクチャの要件、空き容量、実行中のプロセス、既存アプリの入手元と署名を順に確認してください。Androidでは署名が異なるアプリを上書きできないことがあります。アンインストールする前に設定が保存されていることを確認しましょう。
サブスクリプションと設定
取得失敗、解析失敗、ルールのマッチ失敗を切り分けます。
サブスクリプションと個別設定のインポート失敗を見分けるには?
コピーしたものがサブスクリプションURLか個別の共有リンクかを確認し、クライアントに合ったインポート方法を使います。サブスクリプションは通常、まずグループとして保存し、その後に更新します。個別リンクは、含まれるプロトコル設定を直接解析します。内容が欠けていないか、空白、改行、説明文、WebページのURLが混ざっていないか確認してください。サブスクリプションの取得はできても解析に失敗する場合は、応答形式とコアの対応状況を確認します。リクエスト自体が失敗する場合は、ネットワークとサブスクリプションの有効性を確認してください。サブスクリプションURL全体をログのスクリーンショットや公開の問い合わせに含めないでください。
v2rayNでサブスクリプションを更新できないときの確認手順は?
まず更新ログを確認し、アドレスの名前解決失敗、接続タイムアウト、アクセス拒否、内容形式のエラーを切り分けます。次に、サブスクリプションURLの期限切れやリセット、コピー漏れがないか確認し、システム時刻も正しいか確かめてください。現在のサーバーが使えずプロキシ経由の更新ができない場合は、クライアントで選べる更新方法から直接接続を試します。反対に直接接続できない場合は、利用可能な接続を使ってプロキシ経由で更新してみましょう。一度に変更する方法は1つにし、元のグループを残してください。ネットワークの問題を、設定の全消去が必要な問題と誤解しないようにしましょう。
サブスクリプション更新後に手動変更したサーバー設定が戻るのはなぜ?
サブスクリプショングループ内のサーバー設定は通常、リモートの内容から再生成されるため、更新時にローカルでの変更が上書きされることがあります。特殊な設定を長期間使う場合は、サブスクリプション更新の対象外となる手動グループに設定をコピーしてから、トランスポートやセキュリティなどの項目を変更し、その理由も記録してください。唯一使えるサブスクリプション項目を直接何度も試すのは避けましょう。更新後は、現在選択中のサーバーが引き続き有効か、ルーティングが変更後のタグを参照しているかも確認してください。表示名が同じでも、内部の設定が完全に同じとは限りません。
ルーティングの振り分けルールが機能しないときに確認する項目は?
まずアプリの通信がクライアントに入っていることを確認し、次にルールの順序、マッチ条件、送信先タグを調べます。通常のルーティングルールは上から順に評価されます。大まかな条件を先に置くと、後続の細かいルールに一致しないことがあります。outboundTagは実在する送信先タグと一致させてください。geositeとgeoipの条件には、それぞれ対応するルールデータも必要です。ドメインのマッチングは、アプリがドメイン名とIPアドレスのどちらを渡すか、DNS設定、通信のスニッフィングにも左右されます。まず対象範囲を明確にしたテストルールを1つ使い、すべての振り分け設定を同時に変更するのは避けましょう。
接続トラブル
基本のネットワーク、通信の入口、サーバー接続、接続先へのアクセスを順に確認します。
サーバーのタイムアウトと接続拒否の違いは?
タイムアウトは、制限時間内に接続が完了しなかった状態です。ローカルネットワーク、サーバーへの到達性、トランスポート設定、サーバーからの応答などが原因として考えられます。接続拒否は通常、接続先のアドレスには到達できても、該当ポートが接続を受け付けていない状態です。中継機器が拒否している場合もあります。まずアドレス、ポート、現在のネットワークを確認し、同じ設定を別の利用可能なネットワークでも試してください。その後、コアのログで、接続、TLSハンドシェイク、認証のどの段階で失敗したかを確認します。一覧に表示されるテスト結果はそのテスト経路に限られるため、実際のアプリでのアクセス確認も必要です。
接続済みなのにインターネットを使えないとき、何を確認する?
「接続済み」は、コアやローカルVPNサービスが起動したことを示すだけの場合があり、サーバー認証や接続先へのアクセス成功を意味するとは限りません。まずプロキシを無効にして基本のネットワーク接続を確認し、次に選択中のサーバー、ログに記録された認証やハンドシェイクのエラー、DNSの名前解決を調べます。一部のサイトだけ使えない場合は、振り分けルールとドメインの名前解決を重点的に確認してください。すべてのアプリで失敗する場合は、接続先ポート、コアの起動、サーバーへの到達性を確認します。AndroidではVPNの許可、アプリごとのプロキシ対象、バッテリー制限も確認し、アプリの通信がプロキシを通っていない問題をサーバー障害と取り違えないようにしましょう。
システムプロキシが機能しない、ブラウザーは使えるのにターミナルは使えない場合は?
まずv2rayNでシステムプロキシの自動設定が有効か確認し、システムに登録されているプロキシのアドレスとポートを調べます。アプリが使うプロトコルはローカルの待ち受け設定と一致させてください。すべてのバージョンでHTTPとSOCKSのポートが同じだとは限らないため、現在の設定を確認します。ブラウザー拡張機能がシステムプロキシ設定を上書きすることがあります。一方、ターミナルのプログラムは独自のオプションやプロキシ環境変数しか参照しない場合があります。それぞれの経路を個別に確認し、設定を再読み込みする必要があるプログラムは再起動してください。ポートが別のプロセスに使われている場合は待ち受け設定を変更し、アプリ側のプロキシ設定も合わせて更新します。
TUNを起動できない、またはAndroidのVPN許可に問題がある場合は?
デスクトップのTUNには仮想ネットワークインターフェースと適切なシステム権限が必要です。まず起動ログを読み、権限不足、インターフェース作成の失敗、ルーティング設定の競合のどれかを確認し、クライアントの案内に従って許可やサービスのインストールを行います。常に高い権限で実行することを、一般的な解決策にしないでください。Android版のv2rayNGはシステムのVpnServiceを使用するため、初回起動時にVPN接続を許可する必要があります。ほかのVPNアプリが動作中なら、競合するサービスを先に停止してください。接続が頻繁に切れる場合は、設定を何度もリセットするのではなく、バックグラウンド実行、バッテリー最適化、アプリごとの対象設定を確認します。