V2Rayは接続済みなのにWebサイトが開けない?12項目のトラブル対応チェックリスト

「ローカル設定→ノード状態→ルーティング規則→DNS解決」の4層に分けて、12項目の確認手順を解説。判断基準と対処法付きで、順に進めれば原因を特定できます。

この記事の要点

v2rayNで「起動済み」、v2rayNGで「接続済み」と表示されているのに、ブラウザーがタイムアウトする、特定のサイトだけ開けない、またはすべてのアプリで通信できない場合に対応します。ローカルのプロキシ入口から確認を始め、ノードのハンドシェイク、ルーティング、DNSを順に調べます。サブスクを何度も削除する必要はありません。12項目を確認すれば、原因をクライアント、ノード設定、規則、名前解決のいずれかに絞り込めます。

まず、どの層で問題が起きているか確認する

クライアントに接続済みと表示されても、アプリの通信がプロキシに入ったことや、リモートノードとのハンドシェイクが完了したことまでは意味しません。1つのリクエストは少なくとも、アプリ、システムプロキシまたはTUN、ルーティング判定、プロキシの出方向け接続、DNS解決を通過します。どこか1つが失敗すると、見た目には「Webページがずっと読み込み中」という状態になります。

開始前にテスト条件を固定します。実行中のダウンロードを停止し、ブラウザーのウィンドウを1つだけ残して、確実にアクセスできる通常のHTTPSサイトを選びます。ノード、ルーティングモード、DNSを同時に切り替えないでください。一度に変更するのは1つの変数だけにし、変更後は同じページを再読み込みして結果を記録します。

ブラウザーのリクエストローカルプロキシ入口ルーティング規則の照合ノードとの接続確立DNSによるアドレス取得対象サイトの応答

範囲を切り分けるには、2つの比較テストが有効です。1つ目は、システムプロキシを無効にしてローカルネットワークへアクセスし、その後有効にして同じアドレスへアクセスする方法です。2つ目は、現在のノードと、利用できることを確認済みの別ノードを切り替える方法です。すべてのノードで失敗するなら、ローカル入口、ルーティング、DNSの可能性が高くなります。1つのノードだけ失敗するなら、そのノードの状態と設定項目を優先して確認します。

第1層:ローカル設定で確認する3項目

ローカル層は、アプリの通信をコアへ送り込む役割を担います。ここで多いのは、システムプロキシが有効になっていない、待ち受けポートが他のプログラムに使用されている、またはブラウザーに独自のプロキシ設定が残っているケースです。v2rayN 7.xでは、クライアント起動後にコアの状態とシステムプロキシの状態を両方確認し、タスクトレイのアイコンだけで判断しないでください。

  1. 第1項:システムプロキシが実際に有効か確認する。 v2rayNのメイン画面で、システムプロキシモードが「システムプロキシを解除」になっていないことを確認します。続いてWindowsの「設定」→「ネットワークとインターネット」→「プロキシ」を開き、手動プロキシがローカルアドレスを指しているか確認します。一般的な待ち受けアドレスは127.0.0.1ですが、ポートはv2rayNの最新ログ、または「設定」→「パラメータ設定」に表示されるローカルポートを基準にしてください。古い設定ではSOCKSポートが10808、HTTPポートが10809であることが多いものの、アップグレードや設定移行後も同じとは限りません。
  2. 第2項:コアが対応するポートを待ち受けているか確認する。 WindowsではPowerShellからローカルポートをテストできます。結果のTcpTestSucceededFalseなら、ブラウザーにプロキシアドレスが設定されていても、接続を受け付けるローカルプロセスがありません。まずv2rayNを完全に終了して再起動します。それでも失敗する場合は、ログのポート競合に関する情報を確認し、「設定」→「パラメータ設定」で未使用のポートに変更します。
  3. 第3項:アプリ独自のプロキシ設定による上書きを除外する。 一部のブラウザーや開発ツールは、独立したプロキシアドレスを使用できます。システムプロキシが127.0.0.1:10809なのに、アプリが停止済みの127.0.0.1:7890を参照していれば、通信は現在のコアに入りません。アプリのプロキシを「システムプロキシを使用」に変更し、再起動してからテストします。コマンドラインツールでは、環境変数に古いHTTPまたはSOCKSプロキシの値が残っていないかも確認してください。
Test-NetConnection 127.0.0.1 -Port 10808
Test-NetConnection 127.0.0.1 -Port 10809

エラー:failed to listen TCP on 127.0.0.1:10808

原因と対処:ローカルポートが別のプロセスに使用されています。古いコアプロセスを終了するか、「設定」→「パラメータ設定」でローカルの待ち受けポートを変更して再起動してください。

エラー:connectex: No connection could be made because the target machine actively refused it

原因と対処:アプリが接続しようとしたローカルポートでサービスが待ち受けていません。システムプロキシのポートと、コアログに記録されたinboundポートが一致しているか確認してください。

Androidでv2rayNGまたはv2flyNGを使う場合、ローカル入口はシステムのVPNインターフェースが管理します。接続をタップした直後に未接続へ戻るなら、まずVPNインターフェースを使用中の他のネットワークツールを停止し、接続の許可をやり直します。接続状態が維持されるのに特定のアプリだけ失敗する場合は、そのアプリが「アプリごとのプロキシ」のバイパスリストに入っていないか確認します。

結論:ローカルポートの失敗時に、先にノードを変更しない

127.0.0.1への接続がすべて失敗しているなら、通信はまだリモートノードに到達していません。サブスクを更新したりVMess、VLESSのパラメータを変更したりしても、ローカルの待ち受け問題は解決しません。

第2層:ノード状態とハンドシェイク設定で確認する3項目

ローカルポートが正常になったら、次にノードがTCP、TLS、その他のトランスポート層の接続を確立できるか判断します。遅延テストは最終的な利用可否の証明ではありませんが、「アドレスにまったく到達できない」状態と「ハンドシェイク後にリクエストが失敗する」状態を素早く切り分けられます。テスト時は種類も確認してください。ICMP遅延、TCP遅延、実接続遅延のいずれか1種類の結果だけでは、完全なWebリクエストの代用になりません。

  1. 第4項:ノードのアドレスとポートの疎通をテストする。 v2rayNのノード一覧で現在のノードを選び、実接続遅延テストを実行します。一般的な家庭のネットワークでは、数十〜数百ミリ秒になることがあります。3回連続でタイムアウトし、ログがサーバー接続の段階で止まる場合は、サーバーのドメインとポートを確認してください。高遅延を完全な到達不能と誤判定しないよう、タイムアウト値を一時的に5000ミリ秒へ変更して再テストできます。
  2. 第5項:システム時刻を調整し、TLSハンドシェイクを確認する。 TLS証明書の検証には端末の時刻が使われます。数分のずれでも、証明書がまだ有効でない、または期限切れという判定になることがあります。Windowsでは「設定」→「時刻と言語」→「日付と時刻」を開き、自動設定を有効にして今すぐ同期します。Androidではシステムの日付と時刻の設定を開き、ネットワーク提供時刻を有効にします。同期後はコアを完全に停止してから、再接続してください。
  3. 第6項:ノード設定を項目ごとに照合する。 VMessでは、アドレス、ポート、ユーザーID、伝送方式、TLS、パスを重点的に確認します。VLESSではさらに、flow、セキュリティタイプ、サーバー名、Reality関連の公開鍵パラメータがノード設定で指定されたものと一致するか確認します。WebSocketのパスに含まれるスラッシュ、gRPCのserviceNameの大文字・小文字、TLSのサーバー名は完全に一致していなければなりません。プロトコル名から項目を推測して追加せず、実際のサーバー設定または最新のサブスク内容を基準にしてください。
結果 可能性の高い原因 次に行う操作
すべてのノードでタイムアウト ローカルネットワークの制限、DNS、またはクライアント入口の異常 ネットワークを切り替えて比較し、DNS層の確認を続ける
1つのノードだけタイムアウト ノードのアドレス、ポート、またはサービス状態の異常 サブスクを更新し、そのノードの項目を確認する
TCPは到達できるがTLSに失敗 時刻、SNI、または証明書チェーンの問題 時刻を同期し、サーバー名を確認する
遅延は正常なのにWebページが空白 ルーティング、DNS、または対象サイトの応答異常 ドメインの照合結果とDNSログを確認する

エラー:context deadline exceeded

原因と対処:接続またはハンドシェイクが設定時間内に完了していません。まずノードのアドレスとポートをテストし、ネットワークを切り替えて比較します。そのノードだけ失敗する場合は、サブスクを更新するか、設定提供元にサービス状態を確認してください。

エラー:remote error: tls: handshake failure

原因と対処:TLSパラメータがサーバー側と一致していません。システム時刻を同期し、TLSの有効化、サーバー名、トランスポート層のパラメータを確認してください。

エラー:failed to find an available destination

原因と対処:出方向けサーバーのアドレスを解決できないか、利用可能な宛先がありません。ノードアドレスの入力を確認し、利用できるDNSへ変更してコアを再起動してください。

第3層:ルーティングの振り分けで確認する3項目

ノードのハンドシェイクが成功しているのにWebサイトが開けない場合、重点的に確認するのはルーティング規則です。V2RayとXrayのコアは、ドメイン、IP、ポート、ネットワーク種別、inboundタグに基づいて出方向け接続を選択します。規則によって対象が誤ってdirectやblockへ送られても、ノード自体は切断されないため、画面には接続正常と表示されることがあります。

  1. 第7項:最も単純なプロキシモードに切り替えて比較する。 一時的にルーティングをすべてプロキシ経由にするテストモードへ変更し、失敗するWebサイトを再度開きます。すぐに復旧するなら、ノードとローカル入口は正常で、問題は振り分け規則に絞られます。テスト後は元のモードに戻し、どの規則に一致したかを順に確認してください。規則の誤りを隠すために、この比較モードを常用しないでください。
  2. 第8項:GeoIPとGeoSiteのデータが欠落または古くなっていないか確認する。 カスタム規則ではgeoip:cngeosite:cnなどの分類セットを参照することがあります。データファイルが欠落すると、コアが規則の読み込み失敗を通知する場合があります。長期間更新していない場合は、新しいドメインがフォールバック規則に入ることもあります。v2rayNではメイン画面の更新確認機能からGeoファイルを更新し、完了後にコアを再起動して、ログにリソース読み込みエラーがないことを確認します。Androidではクライアントに用意されたデータ更新入口を使い、更新後に再接続してください。
  3. 第9項:ドメインスニッフィングと規則の優先順位を確認する。 ブラウザーのリクエストが先にIPへ解決され、規則がドメインだけを照合していると、想定した出方向け接続を迂回することがあります。ドメインスニッフィングを有効にすると、コアはHTTP HostやTLS Server Nameからドメインを復元してルーティングに利用できますが、一部のLANサービスには適しません。まず失敗するサイトがログ上でドメインとIPのどちらとして表示されているかを確認し、その後スニッフィング設定を調整します。カスタム規則は通常上から順に照合されるため、広範囲のdirect規則を、より具体的なproxy規則より前に置かないでください。
ドメイン規則:domain:example.com
サフィックス規則:domainSuffix:example.com
完全一致:full:service.example.com
ポート範囲:80,443
フォールバック動作:proxy / direct / block

1つのWebサイトだけ開けない場合、ノードを変更するべき?

まずコアログでそのドメインを検索し、proxy、direct、blockのどれに送られたか確認します。他のサイトが正常なら、まず規則の一致結果またはDNS結果を修正し、サブスク全体を削除するのは避けてください。

全プロキシに切り替えると復旧する場合、どう直す?

元の振り分けモードに戻し、失敗するドメインを明示的なプロキシ規則に追加して、広範囲のdirect規則より前に置きます。コアを再起動し、ログに記録された最終的な出方向けタグを再確認してください。

Geoデータを更新しても古い規則に一致する場合は?

コアを完全に停止して再起動し、ログで新しいファイルパスが読み込まれていることを確認します。クライアントに複数の設定が保存されている場合は、現在有効なルーティング設定が、先ほど変更したものかどうかも確認してください。

LANアドレスをプロキシ経由にするとアクセスできない場合は?

プライベートアドレス帯とローカルドメインに高優先度のdirect規則を追加し、ドメインスニッフィングによってLANリクエストが外部ドメインへ書き換えられていないか確認します。

結論:全プロキシで使えて振り分けだけ失敗するなら、原因は明確

同じノード、同じネットワークで、ルーティングモードを切り替えるだけでアクセスが復旧するなら、プロトコルパラメータを変更する必要はありません。規則の順序、Geoデータ、最終的な出方向けタグの確認に時間を使ってください。

第4層:DNS解決で確認する3項目

DNS障害では、ノードの遅延やIPアドレスへの接続は正常なのに、ドメインのWebページだけ開けないことがあります。トップページは開けても、異なるサブドメインから配信される画像やログインAPIがタイムアウトする場合もあります。確認時は「ノードサーバーのドメイン解決」と「アクセス先ドメインの解決」を分けて考えてください。前者が失敗するとノード接続を確立できず、後者はノード接続後に発生します。

  1. 第10項:DNSサーバー自体に到達できるか確認する。 プロキシ経由でしかアクセスできない名前解決サービスを設定しているのに、DNSクエリをdirectへ送ると、クエリはタイムアウトし続けます。逆に、ローカルドメインをすべてリモートDNSへ送ると、現在のネットワークに適さないアドレスが返ることもあります。まず一時的にシステムDNSを使って比較します。復旧後はローカルクエリとプロキシクエリの出方向け経路を分けて設定し、ログの問い合わせ時間を確認してください。通常のクエリは数十〜数百ミリ秒で返るはずで、2000ミリ秒を連続して超える場合は異常と考えます。
  2. 第11項:キャッシュを削除し、FakeDNSの適用範囲を確認する。 ブラウザー、システム、コアはそれぞれ名前解決結果をキャッシュすることがあります。DNSを変更しても関連プロセスを再起動しなければ、テストで古いアドレスが使われる可能性があります。Windowsではブラウザーを閉じてシステムのDNSキャッシュを削除し、その後v2rayNを再起動します。TUNとFakeDNSを使用する場合は、仮想アドレスプールが対応する通信経路だけで使われているか確認してください。アプリが仮想アドレスを取得した後にTUNを迂回してdirect接続すると、必ず失敗します。
  3. 第12項:IPv4とIPv6の応答結果を確認する。 AAAAレコードは解決できても、安定したIPv6の出口がないネットワークがあります。その場合、ブラウザーが到達不能なアドレスを先に試し、タイムアウトまで待つことがあります。ログで対象へのIPv6接続が優先され、毎回数秒後にIPv4へフォールバックしているなら、比較のためドメインの優先順位を一時的にIPv4優先へ変更します。問題を確認したら、ローカルIPv6ネットワークを修正するか、環境に適した名前解決方針を維持してください。すべてのDNS問題をノードのせいにしてはいけません。
テスト時の現象 判断基準 対処の方向性
IPにはアクセスできるがドメインは失敗 対象アドレスの名前解決経路に異常 DNSサーバーとクエリの出方向け接続を確認
ノードのドメインを解決できない プロキシ確立前に失敗 ノードアドレス用に直接到達できるブートストラップDNSを設定
一部のサブドメインがタイムアウト キャッシュまたは振り分け結果の不一致 キャッシュを削除し、ドメインごとの一致結果を確認
数秒待ってから復旧 IPv6の失敗後にIPv4へフォールバック IPv4優先方針で比較テスト

エラー:failed to lookup ip for domain

原因と対処:対象ドメインから利用可能なアドレスを取得できません。DNSサーバーへの到達性、クエリの出方向け接続、ドメイン方針を確認し、キャッシュを削除して再テストしてください。

エラー:server misbehaving

原因と対処:上位DNSが異常な応答を返しているか、応答形式を利用できません。現在のネットワークから到達できるDNSサーバーへ変更し、クエリが誤ってblockの出方向け接続へ送られていないことを確認してください。

エラー:network is unreachable

原因と対処:名前解決結果が、現在の端末に利用可能な経路のないアドレスファミリーを指しています。IPv6の疎通を確認するか、一時的にIPv4優先へ変更して比較してください。

結果から原因を絞り込み、再テストを完了する

12項目の確認が終わっても、「どこかのトップページが開いた」だけで復旧と判断しないでください。少なくとも通常のHTTPSページ、複数のサブドメインからリソースを読み込むページを1つずつテストし、サブスク更新も1回実行します。デスクトップではブラウザーも再起動し、Androidでは一度切断してから再接続して、システムプロキシまたはVPNインターフェースが安定して再構築されることを確認してください。

ローカルポートが利用でき、複数ノードの実接続テストが正常で、全プロキシならアクセスできるのに元の振り分けモードだけ失敗するなら、障害はルーティング層に絞れます。ノードのドメインを解決できない、または接続確立前にログへlookupエラーが出る場合は、先にブートストラップDNSを処理します。1つのノードだけが異なるネットワークでもハンドシェイクに失敗する場合は、そのノードの設定とサービス状態を確認してください。

クライアント再起動後は一時的に直るのに、しばらくするとまた失敗する場合は?

復旧した時点と失敗した時点のログを記録し、DNS応答、ポート待ち受け、ルーティングの一致結果を重点的に比較します。周期的な再発は、キャッシュの期限切れ、ネットワーク切り替え、上位DNSのタイムアウトに関係していることが多いです。

ブラウザーは使えるのに、コマンドラインツールだけタイムアウトする場合は?

コマンドラインツールはシステムプロキシを自動的に読み取るとは限りません。プロキシの環境変数または明示的なプロキシパラメータを確認し、アドレスとポートがv2rayNの現在の待ち受け値と一致していることを確認してください。

v2rayNGは接続済みなのに、一部のアプリだけ通信できない場合は?

アプリごとのプロキシ設定を開き、対象アプリが除外されていないか確認します。同時に、省電力設定がv2rayNGのバックグラウンド動作を制限していないことを確認し、変更後に切断して再接続してください。

サブスク更新後も古いノードパラメータが変わらない場合は?

現在使用中のサブスクグループを更新しているか確認し、ローカル変更を保持する設定が有効になっていないか確認します。更新後のノードを選び直し、コアログに記録された実際のアドレスとポートを確認してください。

すべての設定をすぐにリセットすべき?

まず現在の設定をエクスポートして、層ごとの確認を完了します。複数のローカル設定が競合し、原因を特定できないと確認できた場合に限って設定を再構築してください。まだ有効なルーティングやサブスク設定まで失わないようにします。

クライアント入口 各プラットフォームのダウンロード विकल्पを確認