設定の種類から問題を探す
V2Rayのよくある質問
サブスクリプション・プロキシ・接続のトラブル対処
サブスクリプションの取得、アプリの接続方法、コアの接続のどこで問題が起きているかを確認してから、該当する設定を変更しましょう。以下の4つに分類しています。質問をクリックすると、対処方法を確認できます。
基本
クライアント、コア、設定の提供元、通信の入口を分けて考え、異なるレイヤーの設定を混同しないようにしましょう。
V2Ray、Xray、v2rayNの役割は?
V2RayはProject Vのプロキシツールエコシステムに属し、V2FlyとXrayは関連するコアの系統です。コアはプロトコル接続、ルーティングの照合、データ転送を担います。v2rayNはサーバー、サブスクリプション、各種設定を管理し、コアを起動して設定を適用するGUIクライアントです。クライアントの画面が開いても、コアが正常に起動したとは限りません。接続できない場合は、まずログでコアの起動状況を確認し、選択中のサーバーが必要とするプロトコルやトランスポート方式に、現在のコアが対応しているか確認してください。異なるコアの設定項目を共通で使えるとは限りません。
クライアントの選び方:Androidのarm64とuniversalの違いは?
Windows、macOS、Linuxのデスクトップではv2rayN、AndroidではXrayコアを採用したv2rayNGが第一候補です。V2Flyコアが必要な場合はv2flyNGを検討してください。2015年以降の一般的なAndroidスマートフォンならarm64を選べることが多いものの、端末のプロセッサとOSが対応するアプリのアーキテクチャを確認しましょう。universalは複数のアーキテクチャに対応するため、ファイルサイズが大きくなる傾向があり、端末のアーキテクチャが分からない場合に適しています。インストール時に非対応と表示されたら、OSの要件とアーキテクチャを確認してください。同じファイルを繰り返しダウンロードしても解決しません。universalでもOSのバージョンが古すぎる問題は解消できません。
クライアントをインストールしたのに、サーバー一覧が空なのはなぜ?
クライアントは設定を管理して接続するためのツールです。インストール後、既存のサブスクリプションか、個別サーバーの共有リンクを追加する必要があります。サブスクリプションURLでは複数のサーバーを取得・更新できますが、共有リンクは通常1台分のサーバー情報を表すため、同じ入力欄には追加できません。設定の提供元から受け取ったものがどちらかを確認し、サブスクリプショングループまたはクリップボードからのインポートを使いましょう。サブスクリプションURLにはアカウントを識別する情報が含まれる場合があります。アカウント情報と同様に管理し、フォーラムへの貼り付けやスクリーンショットの公開、オンライン変換ツールへの入力は避けてください。サーバーが一覧に表示されたら、使用するサーバーを選び、接続設定も確認します。
システムプロキシ、ルーティング設定、TUNモードの違いは?
システムプロキシは、その設定に従うアプリからクライアントへリクエストを渡す方法を決めます。ルーティング設定は、コアに届いた通信の出力先を決めます。TUNモードは仮想ネットワークインターフェースを使って、条件に合う通信を取り込みます。対象範囲はシステムプロキシと異なります。そのため、システムプロキシを有効にしてもすべてのアプリがプロキシを使うわけではなく、グローバルルーティングを選んでも、コアに届いていないリクエストは取り込まれません。初回はシステムプロキシでブラウザーの接続を確認し、必要に応じてTUNを有効にしましょう。入口、ルーティング、DNSを一度に変更すると、原因の特定が難しくなります。
インストールと設定
追加、更新、起動の順に確認しましょう。サブスクリプションの更新に失敗した場合は、まだ使える設定を残してください。
サブスクリプションや共有リンクを追加できないとき、まず何を確認すればいい?
入力したものがサブスクリプションURLか、個別サーバーの共有リンクかを確認しましょう。デスクトップ版v2rayNでは、サーバー一覧でCtrl+Vを押すと共有リンクを追加できます。サブスクリプションURLはサブスクリプショングループに登録してから更新します。コピーした文字列から説明文、改行、前後の空白を取り除き、URLのパラメーターはすべて残してください。認識できない場合は、WebページのURLやQRコード画像のURLをコピーしていないか、チャットアプリによって内容が途中で切れていないか確認します。それでも追加できない場合は、クライアントがリンクのプロトコルと形式に対応しているか確認し、設定の提供元にクライアント対応の元データを依頼してください。むやみにエンコードを変更しないでください。
サブスクリプションを更新できないのに、以前のサーバーには接続できる場合は?
以前のサーバーに接続できるのは、保存済みの接続情報がまだ有効ということです。サブスクリプションURLにアクセスできる証拠にはなりません。現在のグループとサーバーは残したまま、更新エラーが解析失敗、接続タイムアウト、証明書エラー、アカウントの状態異常のどれに当たるか確認しましょう。クライアントにプロキシ経由で更新する設定があれば、接続を確認済みのサーバーで試します。プロキシ経由で失敗する場合は、直接更新した結果とも比較してください。次に提供元へ、URLが変更されていないか、アカウントの期限が切れていないか、返されるデータの形式に問題がないか問い合わせます。再試行の前に古いグループを削除したり、アカウント情報を含むURLを公開ログに貼ったりしないでください。
v2rayNが起動直後に終了する場合、.NETランタイムのインストールが必要?
追加のランタイムが必要かどうかは、ダウンロードしたリリースパッケージとGUIの種類によって異なります。突然終了したというだけで、.NET不足とは判断できません。まずファイルをすべて展開してから起動してください。圧縮ファイル内から直接実行せず、現在のユーザーが書き込み可能なフォルダーにプログラムを置き、OSのセキュリティ機能によるブロック記録も確認します。デスクトップランタイムが不足していると明示された場合は、パッケージの要件に合うバージョンとアーキテクチャを選んでください。アップデート後に問題が起きた場合は、設定をバックアップしてから、古い設定との互換性を確認します。最初から全データを削除したり、管理者権限で常用したりすると、元の権限問題を見落とすおそれがあります。
TUNモードを有効にすると権限不足になる場合、どうすればいい?
TUNは仮想ネットワークインターフェースを作成し、関連するルーティングを変更します。デスクトップOSでは、クライアントのバージョンやプラットフォームに応じて、管理者の許可、特権サービス、追加コンポーネントが必要になる場合があります。まずTUNを無効にして、通常のシステムプロキシが使えることを確認し、クライアントの案内に従って許可を与えてください。Androidでは初回接続時にOSのVPN接続リクエストを許可し、別のアプリが接続を使用中でないか確認します。許可後も失敗する場合は、ログでインターフェースの作成、ルートの追加、コンポーネント不足に関するエラーを確認してください。ファイアウォールを無効にするだけでは解決しません。TUNを停止した後は、通常のネットワーク接続が復旧していることも確認しましょう。
使い方のヒント
サーバー管理と通信のルーティングは別々に設定します。速度測定は候補を絞るために使い、最後は実際のアプリで接続を確認しましょう。
中国本土を迂回する設定とグローバル設定、どちらを選ぶ?切り替え時に再登録は必要?
ルーティング設定とサブスクリプションの内容は別々の設定です。「中国本土を迂回」または「グローバル」に切り替えても、通常はサブスクリプションを再登録する必要はありません。「中国本土を迂回」では、読み込んだドメインやIPアドレスのルールに基づいて、直接接続とプロキシ接続を振り分けます。実際の動作はルールの順序、データファイル、DNSの結果にも左右されます。「グローバル」では通常、優先度の高いルールに一致しない通信をプロキシ経由にします。切り替えたら画面の案内に従って設定を適用または再読み込みし、同じ接続先にアクセスしてログを比較しましょう。LAN内のリソースへの接続を維持するには、プライベートIPアドレスを直接接続するルールも確認してください。グローバル設定が既存のすべてのルールに優先するとは限りません。
TCPing、実接続の遅延、ダウンロード速度。サーバー選びではどれを見る?
TCPingは通常、接続先のアドレスとポートにTCP接続できるかを測定します。プロキシプロトコル全体の動作、認証、Webリクエストは確認しません。実接続の遅延測定はプロキシ経由で接続先にアクセスするため、実際の使用状況に近い結果が得られますが、測定先、DNS、測定時のネットワーク状況にも左右されます。ダウンロード速度は継続的な転送性能を確認できますが、通信量を消費し、すべてのWebサイトの速度を示すものではありません。まず実接続テストで使えるサーバーを絞り、実際のアプリで確認してから、必要に応じて短時間のダウンロードテストを行いましょう。TCPingの最小値だけで並べ替えたり、多数のサーバーを同時に測定したりすると、並行接続が結果に影響することがあります。
複数のサブスクリプションは1つのグループにまとめるべき?更新すると手動変更は上書きされる?
サブスクリプションURLごとにグループを作成し、提供元や用途で名前を付けて、グループ単位でサーバー一覧を絞り込む方法がおすすめです。更新に失敗したときに提供元を特定しやすくなり、異なるサブスクリプションのサーバーが混在するのも防げます。更新時にグループ内のサーバーが再生成される場合があり、手動で変更した別名やパラメーターが維持されるかはクライアントの仕様によります。長く使うカスタム設定は、更新前にエクスポートするか、独立した手動グループへコピーしてください。グループを削除する前に、手動で追加した項目がないか確認しましょう。グループ名は管理用であり、ルーティングや出力先を直接変更するものではありません。
パソコンとスマートフォンで同じサブスクリプションを使える?安全に設定を移行する方法は?
サブスクリプションの提供元が複数デバイスでの利用を認めている場合、各デバイスに同じURLを登録できます。ただし、同時接続数、通信量、デバイス数の制限はアカウントの条件に従います。個別のサーバーを移行する場合は、共有リンクまたはQRコードを使い、読み込み後にトランスポート方式、TLS、関連パラメーターを一つずつ確認してください。デスクトップクライアントの完全バックアップには、画面、ルーティング、ローカルポートの設定も含まれることがあり、そのままAndroidクライアントに読み込めるとは限りません。同じサブスクリプションを使っても、システムプロキシ、TUN、DNSの設定は同期されません。移行後はまず1台のサーバーでテストし、新しいデバイスのネットワーク環境に合わせて入口の設定を調整しましょう。
トラブル対処
まずリクエストがクライアントに届いているか確認し、その後に接続先との接続や名前解決を調べましょう。ステータスアイコンだけで判断せず、ログの具体的なエラーを確認してください。
サーバーがずっとタイムアウトする場合、ローカルネットワークと設定のどちらに原因があるか見分けるには?
クライアントを終了した状態で通常のネットワークに接続できることを確認し、サーバーを1台選んで実接続テストを行い、同じ時間帯のログを確認しましょう。すべてのサーバーで同時に失敗する場合は、ローカルDNS、ネットワークの切り替わり、ファイアウォールによるブロック、コアの起動状況を優先して確認します。一部のサーバーだけで失敗する場合は、アドレス、ポート、アカウントの状態、トランスポートのパラメーターを確認してください。ポートには接続できても認証に失敗する場合、タイムアウトとは別の問題です。原因を絞るには、別の信頼できるネットワークでも再テストできます。一度に複数のパラメーターを変更しないでください。提供元に問い合わせる際は、エラーの種類と発生時刻を伝え、アドレス内のアカウント情報や認証項目は隠しましょう。
クライアントは接続済みなのにブラウザーでWebページが開かない場合、どう調べる?
接続済みの表示は、ローカルサービスや仮想インターフェースが起動したことを示すだけで、接続先へのリクエストが成功したとは限りません。まず使用中のサーバーを確認し、ブラウザーがシステムプロキシに従っているか、独自のプロキシ拡張機能に設定を上書きされていないか確認します。確実にアクセスできるサイトを開き、ログにリクエストが記録されるかも確認してください。リクエストがない場合は入口とローカルポートを、リクエストがあるのにエラーが出る場合はルーティング、DNS、接続先での認証、TLSを確認します。特定のサイトだけ開けない場合は、ほかの接続先と比較し、すぐにクライアントを再インストールしないでください。TUNやブラウザーのプロキシ拡張機能を一時的に無効にするときは、一度に一つだけ変更して結果を記録し、確認後に元へ戻しましょう。
システムプロキシを自動設定しても、一部のアプリが直接接続するのはなぜ?
システムプロキシが適用されるのは、その設定を読み取り、従うアプリだけです。独自のネットワークスタックやプロキシ設定を使うアプリもあります。まずブラウザーでクライアントの入口が正常に動作することを確認し、対象アプリにプロキシ設定があるか調べましょう。手動入力する場合は、クライアントが現在待ち受けているアドレス、ポート、プロトコルを使ってください。SOCKSとHTTPのポートを取り違えたり、古いスクリーンショットの数値をそのまま入力したりしないでください。別のプロキシアプリがシステム設定を上書きすることもあるため、同種のツールを終了して再確認します。システムプロキシに従わないアプリもプロキシ経由にする必要がある場合は、TUNを検討してください。クライアント終了後にネットワークがおかしくなったら、停止したサービスを指すシステムプロキシ設定が残っていないか確認しましょう。
ログにDNS名前解決失敗や証明書エラーが出たら、DNSをすぐ変更すべき?
エラーがサーバードメインの名前解決、サブスクリプションの更新、プロキシ経由でアクセスするWebサイトの名前解決のどこで起きたかを切り分けましょう。DNSの設定で変わるのは名前解決の経路です。サーバー名の誤り、無効なアカウント、TLSパラメーターの問題は直せません。証明書エラーでは、システムの日付、サーバー名と証明書の一致、ネットワークでWeb認証を先に済ませる必要がないかも確認してください。証明書検証を無効にしてエラーを隠してはいけません。名前解決の問題と確認できたら、まず現在の設定を記録し、一度に一項目だけ変更して同じドメインで再テストします。TUNとFakeDNSを同時に使う場合は、DNSリクエストが想定した入口に届いているか、ルーティングルールがループしていないかも確認してください。