トラブル対処 / 設定と接続
V2Rayのよくある質問
症状から設定箇所を探せます。まず通信がクライアントに取り込まれているか確認し、次にルーティング、DNS、リモート接続を調べてください。
以下はv2rayN、v2rayNG、v2flyNGの一般的な設定例です。メニュー名はバージョンによって異なる場合があるため、現在の画面と動作ログを確認してください。質問をクリックすると回答が開きます。
初期設定の手順を見る →クライアント、コア、通信の取り込み範囲
基礎知識
クライアント、サーバー設定、ネットワークモードを区別し、誤った階層で設定を変更しないようにしましょう。
V2Ray、Xrayコア、3種類のクライアントの違いは?
V2RayはProject Vエコシステムのプロキシツールです。V2Flyは関連コアのメンテナンスを引き継ぎ、Xrayは独立して開発されている別のコアプロジェクトです。コアはプロトコル処理、ルーティング、ネットワーク接続を担い、GUIクライアントは設定の取り込み、サーバーの選択、動作状態の管理を行います。v2rayNはデスクトップ向けです。Androidではv2rayNGは主にXrayコアを、v2flyNGはV2Flyコアを使用します。設定が動作するかどうかは、クライアントに搭載されたコアのバージョンと各項目への対応状況によって決まるため、クライアント名だけでは判断できません。
クライアントをインストールした後、サブスクリプションやサーバー設定も必要ですか?
必要です。クライアントは設定と接続に使うツールで、インストールしただけでは接続先のサービスは利用できません。接続する前に、利用権限のあるサブスクリプションURL、共有リンク、またはサーバー情報を用意し、クライアントに取り込んでください。サブスクリプションには通常、複数のサーバー設定と更新先が含まれます。共有リンク1つで示されるのは、通常1台分のサーバーです。取り込み後も、サービスが有効か、認証情報が正しいか、プロトコルと通信方式が対応しているかを確認してください。サブスクリプションURLを公開の掲示板などに投稿しないでください。URLに含まれる識別情報から、サーバー設定一式を第三者に取得されるおそれがあります。
システムプロキシ、グローバルルーティング、TUNモードの違いは?
システムプロキシは、OSの設定にローカルプロキシのアドレスを書き込み、その設定に従うアプリに適用されます。グローバルルーティングはクライアント内の通信振り分け設定で、通常はコアに届いた通信をプロキシ経由で送信します。システムプロキシを使わずに通信するプログラムを、自動的にコアへ取り込む機能ではありません。TUNは仮想ネットワークインターフェースを使い、対象範囲のIP通信を受け取る方式です。システムプロキシを参照しないアプリに適しています。ただし、TUNで受け取った通信もルーティングルールに従うため、TUNを有効にしてもすべての接続が必ずリモートプロキシを経由するわけではありません。まず通信を取り込む方法を決め、その後に振り分け方を設定してください。
プロトコルはVMess、VLESS、Trojanに自由に切り替えられますか?
クライアントでプロトコル名だけを変更しても接続できません。プロトコル、認証項目、通信方式、安全設定は、サーバー側の待ち受け設定と一致させる必要があります。VMess、VLESS、Trojan、Shadowsocksはパラメーターの構成が異なります。同じプロトコルでも、通信方式やTLS設定の組み合わせが異なる場合があります。サブスクリプションに設定一式が含まれている場合は、まず元の設定を残し、互換性を確認してください。サーバー側から別の接続情報が明示されている場合に限り、新しい設定を作成してテストします。あるプロトコルを別のプロトコルとして取り込んでも、通常は設定の解析やハンドシェイクに失敗するだけで、プロトコルが変換されるわけではありません。
インストールパッケージ、取り込み方法、権限
インストールと設定
まずインストールと設定の取り込みを済ませ、その後にシステムプロキシやVPNの許可を設定してください。
Androidのインストールパッケージはarm64とuniversalのどちらを選ぶ?
近年のAndroid端末ではarm64を選べる場合が多いものの、最終的にはOSが対応するABIを確認してください。プロセッサーの仕様だけでは判断できません。64ビット対応のプロセッサーを搭載していても、32ビットOSで動作する端末ではarm64版をインストールできないことがあります。universal版は通常、複数のアーキテクチャに対応するためファイルサイズが大きく、端末のアーキテクチャが分からない場合に試せます。ただし、古いOSとの互換性が保証されるわけではありません。解析エラーや非対応のメッセージが表示されたら、Androidの最低対応バージョン、ダウンロードの状態、署名が異なる同名アプリがすでにインストールされていないかも確認してください。
サブスクリプションURLを取り込めないとき、まず何を確認すればよいですか?
コピーしたものがサブスクリプションURLであり、管理画面やログインページ、共有方法の説明ではないことを確認してください。貼り付ける前に前後の空白を削除し、メッセージアプリによってURLが途中で改行・切断されていないか確認してから、サブスクリプショングループのURL欄に追加して更新します。共有リンクを1件だけ取り込む場合は、クリップボードからサーバー設定を読み込む機能を使い、サブスクリプションURL欄には入力しないでください。URLにアクセスできても解析に失敗する場合は、返されるデータ形式がクライアントに対応しているか確認します。ログインが必要なページ、エラーページ、他のソフト専用の設定は、サーバー一覧として取り込めません。確認中に元のURLを保持し、クエリパラメーターをむやみに削除しないでください。
v2rayN・v2rayNGに設定を取り込んだ後、接続を開始するには?
v2rayNでは、サーバー一覧に有効な項目が表示されていることを確認し、使用するサーバーに設定します。次にコアが起動できることを確認し、必要に応じてシステムプロキシの自動設定を選びます。一覧の項目を選択しただけでは、使用中のサーバーになっていない場合があります。v2rayNGでは、設定を取り込んだ後に使用する項目を選び、接続ボタンをタップして、Androidに表示されるVPN接続の許可を確認します。初回の許可後も、動作ログにエラーがないか確認してください。ボタンに「実行中」と表示されても、サービスが起動しただけで、リモートとのハンドシェイクが成功したとは限りません。実際のアクセスとログで接続経路を確認してください。
TUNを有効にすると管理者権限やVPNの許可が必要なのはなぜですか?
デスクトップのTUNは、仮想ネットワークインターフェースの作成・設定やルート変更など、システムに関わる操作を行います。そのため、プラットフォームやクライアントのバージョンによって、管理者権限、補助サービス、システムの許可が必要になることがあります。v2rayNで有効化に失敗した場合は、ログで権限、ネットワークインターフェースの作成、ルート設定に関するエラーを確認し、画面の案内に従って再起動または許可を行ってください。AndroidクライアントはシステムのVPNサービスを通じて通信を取り込むため、ユーザーによるVPNの許可が必要ですが、通常root権限は不要です。別のVPNが動作中だと、競合する場合があります。許可を回避するためにシステムのセキュリティ機能を長期間無効にせず、まず許可を求めている対象とエラーの原因を確認してください。
グループ管理、アプリの通信取り込み、ルールのテスト
使い方
動作する設定を基準として残し、設定の種類ごとに一度に1つだけ変更して、新しい接続で確認してください。
更新後に設定が混乱しないよう、複数のサブスクリプションを整理するには?
設定の提供元ごとにサブスクリプショングループを作成し、各グループに分かりやすいメモと更新URLを設定します。自動更新やサーバーのフィルタリングが有効になっているかも確認してください。複数の提供元を同じ一時グループに何度も取り込むと、更新後に項目の出所が分かりにくくなります。サブスクリプションから生成されたサーバー設定を手動で変更すると、次回の更新で上書きされることがあります。変更が必要な場合は、独立した手動設定として複製し、用途を記録してください。更新後は、現在使用中のサーバーが残っているか確認し、必要に応じて選び直します。グループは設定を整理するためのもので、グループ内の通信に適用するルーティングルールを自動で決めるものではありません。
システムプロキシを有効にしても、一部のアプリが直接接続する場合は?
まず、アプリがOSのプロキシ設定を参照するか確認してください。独自のネットワーク処理を使うアプリでは、アプリ内でHTTPまたはSOCKSプロキシを指定する必要があります。ターミナルツールでも、プロキシ環境変数の設定が別途必要な場合があります。ローカルアドレスとポートは、クライアントで現在設定されている値を使ってください。HTTP用とSOCKS用のポートを混同しないようにします。設定後は対象アプリを再起動し、以前の接続が再利用されていないことを確認してください。アプリにプロキシ設定がない場合はTUNを検討し、プロセス別またはアドレス別の除外ルールに該当していないか確認します。ひとつのアプリが直接接続するだけで、クライアント全体が故障したとは判断しないでください。
ルーティングルールを変更したのに反映されないように見えるのはなぜですか?
まず、現在有効なルーティング設定を変更し、保存・適用したか、コアを再起動したか確認します。ルールは通常、上から順に照合されます。先に一致した範囲の広いルールが後続の具体的なルールに優先するため、ドメインの例外は関連するカテゴリールールより前に配置してください。次に、outboundTagが実際に存在する出力タグを指していること、geositeとgeoipのデータが利用可能なことを確認します。アプリがすでにドメイン名をIPアドレスに解決していると、ドメインルールの照合に必要な情報が残っていない場合があります。DNSやスニッフィングの設定もあわせて確認してください。テスト前に対象アプリの既存接続を切断し、ログで新しい接続がどの出力先に一致したか確認します。
テストや問い合わせの際、役立つログを共有するには?
まずクライアント名、OSの種類、通信の取り込み方法、再現手順を記録し、調査に適したログレベルに一時的に変更します。古いログを消去してから問題を一度だけ再現し、コアの起動から失敗までの該当箇所を、特に最初の具体的なエラーとその前後の内容を含めて保存してください。公開前に、サブスクリプションURL、認証情報、個人用ディレクトリ、公開に適さないサーバーアドレスを隠します。スクリーンショットにも同じ情報が写っていないか確認してください。最後のタイムアウト表示だけでは、その前に起きた設定エラーが分からないことがあります。原因を特定したら通常のログレベルに戻し、アクセス先を含む詳細な記録が長期間残らないようにしてください。
ローカルネットワーク、名前解決、リモート接続
トラブル対処
まず、どの段階で失敗しているか切り分けてください。サービスの起動、リモートへの接続、Webサイトへのアクセスは、それぞれ別の確認ポイントです。
v2rayNGでサーバーへの接続がタイムアウトするときの確認手順は?
まずプロキシを停止し、端末のローカルネットワークが正常であることと、システムの日付・時刻が正確であることを確認します。次にサブスクリプションが有効か確認して設定を更新し、選択中のサーバーが削除されていないか確認してください。提供元の接続情報と照合し、アドレス、ポート、プロトコル、通信パス、TLS設定を確認します。特にserverNameをむやみに変更しないでください。同じネットワークで、正常に動作することが分かっている別の設定を試すと、サーバー側とローカルネットワークのどちらに原因があるか切り分けやすくなります。すべての設定で失敗する場合は、別のVPN、プライベートDNS、セキュリティソフトの影響を確認してください。一度に変更するのは1項目だけにし、ログを残して原因を追えるようにします。
接続済みなのにインターネットにアクセスできない場合、DNSとルーティングの問題を見分けるには?
接続済みの表示は、ローカルプロキシやVPNサービスが動作していることを示すだけの場合があります。まずログで、リモートとのハンドシェイク失敗、名前解決失敗、ルーティング拒否が発生していないか確認し、直接接続すべきサイトとプロキシ経由にすべきサイトをそれぞれテストします。ドメインの名前解決タイムアウトがログに出ている場合は、DNSサーバーに到達できるか、名前解決の通信がどの出力先を通るか、プライベートDNSと競合していないか確認してください。名前解決できても接続に失敗する場合は、ルーティングとリモート側のサービスを引き続き確認します。DNSを何度も変更するだけでは解決しません。HTTPSサイトのIPアドレスに直接アクセスできないことを、ネットワーク障害の証拠にしないでください。証明書や仮想ホストの設定もテスト結果に影響します。
これまで更新できていたサブスクリプションが更新できなくなった場合は?
まず現在利用できている設定を残し、サブスクリプショングループ全体を削除しないでください。URLの有効期限、提供元の変更、返された内容がアクセス拒否・ネットワークタイムアウト・解析エラーのどれに当たるかを確認します。クライアントにプロキシ経由で更新する設定がある場合は、利用できる接続があるときに更新経路を切り替えて試してください。直接接続でもプロキシ経由でも失敗する場合は、提供元のサービス状況を確認します。返された内容が空、またはログインページに変わっている場合は、通常、ノードのプロトコルではなく、サブスクリプションの権限やURLを確認する必要があります。調査中は自動更新の頻繁な再試行を停止し、提供元のリクエスト制限にかからないようにしてください。復旧後は適切な更新間隔に戻します。
クライアント終了後にネットワークがおかしくなった、またはローカルポートが使用中と表示される場合は?
まず、停止済みのローカルプロキシをシステムが引き続き参照していないか確認します。参照が残っている場合は手動プロキシ設定を解除し、ネットワークが復旧するか確認してください。TUNを使っていた場合は、仮想ネットワークインターフェースによる通信の取り込みが停止しているか確認します。必要に応じて通常の手順で終了してから再起動し、ルートを復旧してください。ポートが使用中の場合は、クライアントが重複して起動していないか、コアのプロセスが残っていないか確認し、不要なインスタンスを通常の方法で終了します。ローカルポートを変更する場合は、アプリ内のプロキシアドレスとポートも合わせて変更してください。不明なシステムプロセスをむやみに終了したり、修復のためにローカルの待ち受けアドレスをすべてのネットワークインターフェースに変更したりしないでください。プロキシにアクセスできる範囲が広がるおそれがあります。