プロキシ接続済みなのにインターネットへ接続できない:v2rayN・v2rayNGの徹底チェックリスト

クライアントは接続済みなのにWebページを開けないときの確認項目を、ノード、時刻、DNS、ルーティング、システムプロキシの5段階で整理。順番に確認して原因を特定できます。

この記事の要点

このチェックリストは、v2rayNまたはv2rayNGが起動し、画面上も接続済みなのに、ブラウザや他のアプリからネットワークへアクセスできない場合に使えます。確認する順番はノード、システム時刻、DNS、ルーティング、通信の取り込みです。順番どおりにテストすれば、サブスクリプションやプロトコル設定を何度も変更せずに済みます。

まず「接続済み」がどの層を指すのか確認する

クライアントに実行中と表示されても、リモートノードとの通信が正常に完了したとは限りません。v2rayNがXrayまたはV2Flyコアを起動した場合に分かるのは、ローカルプロセスが動作し、設定ファイルの基本的な解析を通過したことだけです。v2rayNGの上部に鍵の状態が表示されたり、システムにVPN接続と表示されたりしても、Androidの通信取り込みサービスが確立したことを示すに過ぎません。リモートアドレスを解決できるか、ポートへ到達できるか、プロトコル設定が一致しているかは、実際の接続で確認する必要があります。

Webリクエストは通常、アプリ、ローカルプロキシの入口、ルーティングルール、プロキシの出口、リモートからの応答という順に進みます。どこか一つでも失敗すると、ブラウザが読み込み中のままになる、すぐに接続リセットと表示される、一部のサイトだけ開けないといった症状になります。クライアントのトレイアイコンの色が変わっただけでDNSを変更したり、ノードの利用可否を確認しないままルーティングモードを切り替え続けたりしないでください。

アプリがリクエストを開始ローカル入口が受信ルールで振り分けノードが接続を確立リモートがデータを返す
確認結果 考えられる障害箇所 次の操作
すべてのノードテストがタイムアウト ローカルネットワーク、ノードアドレス、リモートポート システムプロキシをいったん無効にし、基本ネットワークとノードの接続性を確認する
ノードの実接続遅延は正常なのにブラウザを開けない システムプロキシ、ブラウザ独自のプロキシ、ルーティングルール ローカルポートとブラウザが使用するプロキシ入口を確認する
ドメインは開けないが、既知のアドレスへは応答がある DNS問い合わせ経路 DNS設定を切り替え、コアを再起動して再テストする
特定のドメインだけ失敗する カスタムルーティング、ドメインルール、DNSの振り分け 一時的にグローバルプロキシへ変更し、ルールが原因か確認する

手順1:ノードの利用可否とシステム時刻を確認する

まずv2rayNのノード一覧で現在のノードを選択し、実接続遅延テストを実行します。通常のPingは対象ホストがICMPに応答するかを確認するだけで、VMess、VLESSなどのプロキシ接続でハンドシェイクまで完了できることは証明できません。実接続テストでは現在のコアを通じて実際に出口接続を確立するため、最初の切り分けに適しています。同じサブスクリプション内の複数ノードがすべてタイムアウトする場合は、まずサブスクリプションを更新し、アドレスとポートが異なる2つのノードで相互にテストしてください。

テスト時は具体的な数値を記録すると便利です。たとえばノードAの実接続遅延が186msで3回連続して応答し、ノードBが3回とも5000msを超えてタイムアウトするなら、まずノードAで次の項目を確認します。遅延が大きくても必ずしも使えないとは限りませんが、連続タイムアウト、接続拒否、ハンドシェイク直後の失敗は、通常ブラウザ設定を変更しても解決しません。

  1. v2rayNのメイン画面でノードを選択し、Pingではなく実接続遅延テストを実行します。
  2. サブスクリプション内のノードを少なくとも2つ切り替え、各テストの完了を待ちます。多数の接続を同時に開始しないでください。
  3. 実行ログを開き、テスト時に新しい出口接続の記録が出ていることを確認します。過去の結果を読み取っているだけではないことが重要です。
  4. v2rayNGで現在の設定のテスト機能をタップし、別のノードに切り替えてもう一度実行します。
  5. Wi-Fiですべて失敗する場合は、別の利用可能なネットワークでテストし、ノード側の問題と現在のネットワーク制限を切り分けます。

システム時刻のずれも、時刻検証が必要な接続に影響します。Windowsでは「設定」→「時刻と言語」→「日付と時刻」を開き、自動時刻設定を有効にして今すぐ同期します。Androidではシステムの日付と時刻の設定を開き、ネットワーク提供の時刻を有効にします。端末の時刻が標準時刻から数分ずれている場合は、先に補正してからクライアントのコアを完全に停止し、再起動してください。

エラー:dial tcp: i/o timeout

原因と対処:制限時間内にリモートアドレスとポートへのTCP接続を確立できませんでした。同じサブスクリプションの別ノードに切り替え、別のネットワークでも再テストします。すべてタイムアウトする場合は、アドレス解決とネットワーク制限を確認してください。

エラー:connect: connection refused

原因と対処:対象アドレスには到達できますが、該当ポートが接続を拒否しています。サブスクリプションを更新してノードを切り替えてください。リモート側の拒否に対してローカルポートを何度も変更しても解決しません。

エラー:invalid user

原因と対処:サーバーが現在のユーザーパラメータを受け付けていません。サブスクリプションを再更新し、ユーザー識別子、暗号化方式、ノードの追加パラメータを手動で変更していないか確認してください。

手順2:DNS名前解決の障害を切り分ける

ノードテストは成功するのにドメインを入力するとWebページが待機し続ける場合、次にDNSを確認します。DNSはドメイン名を接続可能なアドレスへ変換します。プロキシの出口が正常でも、ローカルDNS、コアのDNS、システムのプライベートDNSの組み合わせまで正しいとは限りません。特にカスタム設定を読み込んだ場合、振り分けルールを変更した場合、暗号化DNSを有効にした場合は、ドメインの問い合わせが現在のネットワークに適さない出口へ送られることがあります。

v2rayN 7.xでは、「設定」→「パラメーター設定」から基本設定とDNS関連の項目を確認できます。カスタムDNS設定を使用している場合は、まず元の内容を保存し、その後クライアントの初期設定に戻して比較します。変更後はコアを再起動してください。ブラウザのタブを閉じるだけでは、コアは設定を再読み込みしません。Windowsではターミナルからシステム標準の問い合わせコマンドを実行し、端末で名前解決できるか確認できます。

nslookup example.com
ipconfig /flushdns

nslookupでアドレスが返っても、システムの問い合わせ経路に結果があることを示すだけで、コア内部が同じDNSを使っているとは限りません。システムの問い合わせは成功するのにv2rayNのログで名前解決失敗が続く場合は、コアのDNS設定とルーティングルールを確認します。システム側の問い合わせ自体がタイムアウトする場合は、ネットワークアダプターのDNSを自動取得に戻し、キャッシュを消去してから再テストしてください。

エラー:failed to find an available destination

原因と対処:出口の宛先に利用可能なアドレスがありません。ノードのドメインまたは対象ドメインの名前解決に失敗している可能性があります。ノードアドレスが完全か確認し、初期DNSに戻してコアを再起動してください。

エラー:no such host

原因と対処:DNS問い合わせで該当ホストのレコードが返されていません。サブスクリプション内のサーバードメインに余分な空白がないことを確認し、システムDNSとコアDNSを分けてテストしてください。

エラー:context deadline exceeded

原因と対処:問い合わせまたは接続が待機期限を超えました。前後のログから、タイムアウトがDNSで発生したのかリモート接続で発生したのかを判断し、この1行だけでノード障害と決めつけないでください。

手順3:グローバルプロキシでルーティングルールの誤判定を除外する

ルーティングルールは、リクエストをプロキシ、直接接続、ブロックのどれに振り分けるかを決めます。カスタムルールのドメイン、IP範囲、ポート、入口タグの指定を誤ると、ノード自体は利用できるのに、特定のサイトやアプリだけ常にアクセスできない状態になります。ルールは通常、決められた順序で照合されます。範囲が広すぎる直接接続ルールが、後続のプロキシルールより先にリクエストを捕捉することもあります。

最も直接的な診断方法は、すぐにルールを削除することではなく、一時的にグローバルプロキシモードへ切り替えて同じドメインへアクセスすることです。グローバルプロキシでは開けるのに元のルーティングモードでは失敗するなら、原因を振り分け設定に絞れます。テスト後は元のモードに戻し、カスタムルールの対象と出口の動作を1行ずつ確認してください。

テスト条件 グローバルプロキシの結果 元のルーティング結果 判定
同じブラウザ、同じドメイン アクセスできる アクセスできない ドメインとIPの振り分けルールを優先して確認
同じノード、複数のドメイン すべて失敗 すべて失敗 ノード、DNS、通信入口の可能性が高い
ブラウザは成功、独立アプリは失敗 ブラウザは利用可能 アプリは利用不可 アプリがシステムプロキシに従っていない可能性があるため、TUNまたはアプリ内プロキシが必要
ドメインは成功、固定IPは失敗 結果が一致しない 結果が一致しない IPルール、対象ポート、プロトコル制限を確認
対象ドメインを読み取るドメインルールを確認IPルールを確認出口を選択実行ログを記録

VMessとVLESSはノード接続用のプロトコルであり、ルーティングルールはどのリクエストをそのノードへ渡すかを決めるものです。両者を同じ項目として扱ってはいけません。プロトコルパラメータを変更しても、誤った直接接続ルールは直せません。反対に、グローバルプロキシへ切り替えても、誤ったユーザー識別子、トランスポート層のパラメータ、サーバーポートは修復できません。

結論:グローバルプロキシは切り分け用であり、常用の答えではない

同じノードがグローバルモードでは使えて、振り分けモードでは失敗する場合は、ノード設定を保持したままルールの順序と出口の動作を重点的に確認します。変数を増やすためにノードを次々と切り替えないでください。

手順4:v2rayNのシステムプロキシとローカルポートを確認する

Windows、macOS、Linuxのデスクトップアプリがプロキシ経路に入るかどうかは、アプリがシステムプロキシを読み取るか、独自プロキシが設定されているか、TUNが有効かによって決まります。v2rayNのコアが動作中なら、通常はSOCKSまたはHTTPの入口をローカルで待ち受けています。システムプロキシが実際の待受ポートを指していないと、ブラウザが直接インターネットへ接続したり、古いポートを指してページを開けなくなったりします。

v2rayNでまず「設定」→「パラメーター設定」を開き、ローカルのSOCKS、HTTP、混合入口のポートを確認します。一般的な設定ではSOCKS入口に127.0.0.1:10808、HTTP入口に127.0.0.1:10809を使用しますが、実際の値は現在の画面に従ってください。その後、トレイメニューからシステムプロキシの自動設定を選び、システムプロキシのアドレスがクライアントの現在のポートと一致しているか確認します。

アプリの種類 通常読み取る設定 確認ポイント
一般的なデスクトップブラウザ システムプロキシまたはブラウザ独自のプロキシ アドレス、HTTPポート、例外リスト
コマンドライン端末プログラム プログラム引数またはプロキシ環境変数 SOCKS、HTTPプロキシに明確に対応しているか
システムプロキシに従わないデスクトップアプリ TUNによる取り込みまたはアプリ内プロキシ TUNの状態、管理者権限、ルーティングの競合
同じLAN上の他のデバイス クライアントが開放しているLAN向け待受アドレス LANアクセスの許可、ファイアウォール、待受範囲

エラー:bind: Only one usage of each socket address is normally permitted

原因と対処:使用予定のローカルポートが他のプロセスに占有されています。競合しているプログラムを終了するか、「設定」→「パラメーター設定」で未使用のポートに変更し、コアを再起動してください。

エラー:connection refused 127.0.0.1:10809

原因と対処:アプリがローカルの10809ポートへ接続しようとしていますが、そのポートでプロキシ入口が待ち受けていません。現在のHTTPポートを確認し、アプリまたはシステムプロキシに残っている古いポートを更新してください。

手順5:v2rayNGのVPN取り込みと対象アプリを確認する

v2rayNGはAndroid上で通常、システムのVPNインターフェースを通じて通信を取り込みます。ステータスバーに接続マークが表示された後も、システムがサービスの実行を許可しているか、アプリごとのプロキシ、LANのバイパス、ルーティングモード、バッテリー管理の設定を確認する必要があります。特定のアプリだけアクセスできず、ブラウザは正常な場合、問題は通常ノードではなく、アプリごとの選択やアプリ自身のネットワークポリシーにあります。

まずv2rayNGの設定でローカルポートとルーティング項目を確認し、アプリごとのプロキシが有効か確認します。「選択したアプリのみプロキシ」を有効にしている場合、対象アプリが一覧に入っていなければなりません。反対に除外方式を有効にしている場合、対象アプリを除外一覧から外します。変更後は接続を切断し、数秒待ってから再接続して、システムにVPNルートを再構築させてください。

v2rayNGは接続済みなのに、すべてのアプリを開けない場合は?

まず実接続テストに成功したノードへ切り替え、ルーティングモードを一時的にグローバルプロキシへ変更します。それでも失敗する場合は、AndroidのプライベートDNS、システム時刻、実行ログを確認してください。

ブラウザは開けるのに、特定のアプリだけ常に失敗する場合は?

アプリごとのプロキシ設定を開き、そのアプリが選択対象または除外対象になっていないか確認します。対象範囲を変更した後は接続を切断して再接続してください。アプリをバックグラウンドから終了するだけでは不十分です。

画面ロック後しばらくするとプロキシが使えなくなる場合は?

システムのアプリ設定でv2rayNGのバックグラウンド実行を許可し、バッテリー最適化によってVPNサービスが制限されていないか確認します。Android端末によってメニュー名が異なるため、実際のバッテリー管理画面に従ってください。

Wi-Fiでは使えるのに、モバイルネットワークでは接続できない場合は?

ノードアドレスの名前解決とリモートポートを分けてテストし、Wi-Fiでの結果をそのまま当てはめないでください。システムがv2rayNGのモバイルデータ通信を制限していないかも確認します。

サブスクリプション更新後、元のノードがすべて使えなくなった場合は?

該当するサブスクリプショングループを手動で更新し、一覧の時刻が変わったことを確認してから、異なる2つのノードをテストします。ログにユーザーパラメータが無効と表示される場合は、サブスクリプションから再生成された設定を使用し、手動編集したコピーを使い続けないでください。

v2flyNGでV2Flyコアを使用する場合も、Androidの通信取り込みは同様の仕組みに従います。ただし、コアの対応範囲やログ内容は異なる場合があります。v2rayNG向けのXray専用設定をそのままv2flyNGへ適用しないでください。サブスクリプションに特定コア依存のパラメータが含まれる場合は、ノードの要件に合ったクライアントとコアを選択します。

最後に決めた順番で再テストし、ログを読む

各項目の確認が終わったら、同じテスト条件で再確認します。同じネットワーク、同じノード、同じドメイン、同じブラウザを使用してください。毎回テスト対象を変えると、ページが表示されるようになっても本当の原因を判断しにくくなります。ログウィンドウは開いたままにし、コアの起動時から確認するのがおすすめです。最後の赤いメッセージだけを切り取らないでください。

ログは時系列で読みます。まずローカル入口がリクエストを受信したかを確認し、次にどの出口がルーティングで選ばれたかを見て、最後に名前解決、接続、ハンドシェイク、リモート応答のどの段階で失敗したかを判断します。timeoutの1行は操作が期限を超えたことしか示しません。前後の行にある対象アドレス、出口タグ、DNS情報が対処方法を決めます。

  1. システムプロキシを無効にするかAndroidのVPNを切断し、端末自体の基本ネットワークで通常のページへアクセスできることを確認します。
  2. システム時刻を合わせ、サブスクリプションを更新し、実接続テストに成功したノードを選択します。
  3. コアを起動した後にログを確認し、設定解析の失敗やローカルポートの占有がないことを確認します。
  4. 一時的にグローバルプロキシで同じドメインをテストし、カスタムルーティングルールを除外します。
  5. 初期DNSに戻して比較し、コアの再起動後にブラウザまたはシステムのDNSキャッシュを消去します。
  6. デスクトップ版でシステムプロキシを再適用し、127.0.0.1と実際の待受ポートを確認します。
  7. Android版でVPNを再確立し、アプリごとの対象範囲、プライベートDNS、バックグラウンド実行権限を確認します。
  8. 復旧後は個別設定を一つずつ元に戻し、戻すたびに再テストします。

エラー:failed to start

原因と対処:コアが正常な実行状態に移行できていません。設定解析の失敗、ファイルへアクセスできない、ポート競合などがよくある原因です。この行より前にある最初の具体的なエラーから対処し、ブラウザのテストを続けないでください。

エラー:proxy/vmess/encoding: invalid user

原因と対処:VMessのユーザーパラメータが受け付けられていません。サブスクリプションを再更新して新しく生成されたノード設定を使用し、端末の時刻を確認してから再接続してください。

エラー:transport/internet: failed to dial

原因と対処:コアが下位トランスポート接続を確立できません。同じログ部分にある対象アドレスと内部エラーを確認し、DNS、タイムアウト、接続拒否、トランスポートパラメータの不一致を切り分けてください。

結論:前の層が正常だと確認してから次の層へ進む

ノードの実接続が成功してからDNSを確認し、DNSが正常になってからルーティングを確認し、最後にシステムプロキシまたはVPNによる取り込みを確認します。この順番なら、「接続済みなのにインターネットへ接続できない」という曖昧な症状を、変更可能な設定項目一つまで絞り込めます。

クライアントをダウンロード 4つのプラットフォーム版を確認