v2rayNG の Android クライアントで「ステータスバーは接続済みなのにWebページが開けない」という症状に悩む方向けに、5つの項目を順番にチェックする手順を解説します。各ステップで正確なメニュー経路と判定基準を示すので、読みながらそのまま操作できます。
まず「接続済み」と「ネットに繋がる」の違いを整理する
v2rayNG に「接続済み」と表示されるのは、Android の VpnService が承認・起動され、トラフィックの経路が確立されたことだけを意味します。ノードのハンドシェイクが成功しているか、DNS が正常か、ルーティング規則がトラフィックを許可しているかは、この表示には含まれません。ここでの出発点は、ステータスバーが接続済みだからといってノードテストを飛ばさないことです。
ノードが実際に使えるかどうかは、メイン画面のノードカード左側に表示される遅延値で判断します。具体的なミリ秒(例:256ms)が表示されていれば TCP レイヤーのハンドシェイクに成功しています。「失敗」または「タイムアウト」と表示される場合はノードが現在利用できない状態で、原因はノード側にあるため、クライアント設定をいじっても意味がありません。
以降の5ステップは順番に実行し、各ステップが終わったら必ず再テストしてから次に進んでください。複数の変数を同時に変更すると根本原因を特定できなくなります。
ステップ1:システムプロキシと VPN 承認状態
v2rayNG はデフォルトで VPN モードを使ってトラフィックを引き受けるため、システムの Wi-Fi 設定にプロキシを設定する必要はありません。以前に Wi-Fi プロキシを手動設定したことがある場合(例:192.168.1.100:10809 のようなローカルネットワークアドレス)、そのプロキシが VPN より先にリクエストを横取りしますが、そのプロキシは実際には存在しないため、「接続済みなのに開けない」という結果になります。
確認手順:システム設定 → ネットワークとインターネット → Wi-Fi → 接続中のネットワークの右側にある歯車アイコン → プロキシ → 「なし」に変更します。同時に、通知バーの v2rayNG の「接続済み」通知が常駐していることを確認してください。通知が消えている場合は VpnService がシステムに回収されています。
手動プロキシをオフにする
システムの Wi-Fi 設定で「プロキシ」を「なし」に変更し、保存後に v2rayNG を開き直します。
通知の常駐を確認する
通知バーを下に引いて、v2rayNG が「接続済み」と表示され、鍵アイコンが付いていることを確認します。通知が折りたたまれている場合は展開して確認してください。
バッテリー制限を解除する
システム設定 → アプリ → v2rayNG → バッテリー → 「無制限」を選択し、バックグラウンドで終了されないようにします。
VPN サービスを再起動する
v2rayNG のメイン画面で接続をオフにしてから再度オンにし、3秒待って VpnService に経路を再確立させます。
以上の4ステップが完了したら、ブラウザを開いてテストページにアクセスします。それでも開けない場合は、ノード疎通の確認に進みます。
ステップ2:ノード疎通の検証
ノードテストには2種類あります。「遅延テスト」は TCP ハンドシェイクのみを行うため高速ですが、HTTP の可用性を保証するものではありません。「実接続テスト」はノード経由で実際に generate_204 のテストアドレスへリクエストを送り、204 レスポンスを受け取って初めて疎通とみなされます。トラブルシューティングでは「実接続テスト」を基準にしてください。
操作手順:メイン画面のノードカード右側の三点メニュー → 実接続テスト。結果が「成功」で遅延が500ms以内なら、ノード側の問題はほぼ除外できます。「失敗」の場合は別のノードに切り替えて再テストし、単一ノードの障害か全体の障害かを切り分けます。
エラー:failed to find an available destination
原因と対処:アウトバウンドサーバーのアドレス解決に失敗しています。ノードアドレスの綴りとポートを確認し、サブスクリプションを更新してからコアを再起動してください。
エラー:connection refused
原因と対処:対象ポートがリッスンされていません。プロバイダーが提供するポート番号(一般的なのは 443、8443、2053)と照合し、ポートが封鎖されていないか確認してください。
エラー:TLS handshake timeout
原因と対処:TLS ハンドシェイクがタイムアウトしています。「TLS」スイッチがオンになっているか確認し、allowInsecure はプロバイダーの指示に従って設定し、TLS バージョンを切り替えて再試行してください。
ログの確認手順:メイン画面左上のメニュー → 「ログを表示」。failed、refused、timeout のキーワードを検索し、該当する行を上記のエラーカードと照合することで、具体的な設定項目を特定できます。
ステップ3:ルーティングモードとアプリ別プロキシ
v2rayNG のデフォルトのルーティングモードは「LAN と中国本土のアドレスを除外」で、中国本土の IP と LAN は直接接続し、それ以外はノード経由になります。対象ドメインがルールデータベースで中国本土のアドレスと判定された場合、または解決された IP の帰属が誤判定された場合、リクエストは直接接続され、「ノードは正常なのにWebページがタイムアウトする」という症状になります。
確認方法:メイン画面左上のメニュー → 「ルーティング設定」→ ルーティングモードを一時的に「グローバル」に切り替え、保存後にコアを再起動してから対象のWebページにアクセスします。グローバルでは開けるのにデフォルトモードでは開けない場合、分流ルールの問題と判定できます。
| ルーティングモード | トラフィックの流れ | トラブルシューティングでの用途 |
|---|---|---|
| LAN と中国本土のアドレスを除外 | 中国本土の IP と LAN は直接接続、それ以外はノード経由 | 日常利用のデフォルト |
| グローバルルーティング | すべてのトラフィックがノード経由 | 分流問題の特定 |
| スマートルーティング | ルールデータベースに照合し、一致しないものは直接接続 | ルールデータベースの更新が追いつかない場合のフォールバック |
アプリ別プロキシでも「接続したのに繋がらない」状態になります。メイン画面左上のメニュー → 「アプリ別プロキシ」→「リスト内のアプリのみプロキシ」にチェックを入れると、チェックされていないアプリはすべて直接接続されます。ブラウザは必ずプロキシリストに含め、WeChat や Alipay など中国本土のアプリは直接接続リストに残しておくことをおすすめします。
「ドメイン事前解決」が有効な場合、v2rayNG は VPN 確立前にローカル DNS で解決して結果をキャッシュします。ローカル DNS が汚染されていると、誤った IP がキャッシュされます。トラブルシューティング中はこのスイッチをオフにし、疎通を確認してから必要に応じて再度有効にしてください。
ステップ4:DNS 解決の確認
ノードは疎通し、ルーティングもグローバルなのにWebページが開けない場合、次は DNS を確認します。v2rayNG の DNS 設定はメイン画面左上のメニュー → 「DNS 設定」にあり、「1.1.1.1」「Google DNS」「ローカル DNS」から選択できます。
確認操作:DNS を「ローカル DNS」から「1.1.1.1」に切り替え、保存後にコアを再起動して対象のWebページにアクセスします。切り替え後に開けるようになった場合は、元の解決経路が乗っ取りまたは汚染されています。切り替え後も開けない場合は、ログで原因を特定します。
2026/08/09 10:23:45 [Warning] failed to handle request > dial tcp: lookup www.gstatic.com on 10.0.0.1:53: no such host
2026/08/09 10:24:02 [Info] [TCP] dialing to tcp:203.0.113.10:443
2026/08/09 10:24:07 [Warning] [TCP] connection to tcp:203.0.113.10:443 failed: context deadline exceeded
ログに lookup で始まる行があれば問題は DNS レイヤーにあり、dialing の後に failed が続く行があれば問題はノードのリンクレイヤーにあります。両方が同時に現れる場合は、先に DNS を修正してからノードをテストしてください。
ステップ5:ブラウザキャッシュとクライアントのリセット
最初の4ステップをすべて通過したら、問題の範囲は端末側に絞られます。まずブラウザのキャッシュをクリアします:ブラウザ設定 → プライバシーとセキュリティ → 閲覧データを消去 → 「キャッシュされた画像とファイル」と「Cookie およびその他のサイトデータ」にチェックを入れ、消去後にページを再読み込みします。
一部の Android ブラウザには「セキュア DNS」(DoH)機能があり、解決リクエストがシステムを経由せず DoH サーバーに直接送られます。DoH サーバーに到達できない場合、ブラウザだけが読み込み中のままタイムアウトし、他のアプリは正常という症状になります。トラブルシューティング中はブラウザ設定でセキュア DNS をオフにし、システムの解決に戻してください。
- まずサブスクリプションアドレスを保存します:メイン画面左上のメニュー → 「サブスクリプション設定」→ 該当するグループを編集し、元のサブスクリプションリンクをコピーします。
- アプリデータを消去します:システム設定 → アプリ → v2rayNG → ストレージ → データを消去。
- サブスクリプションを再インポートします:v2rayNG を開く → サブスクリプショングループ → 右上の「+」→ サブスクリプションリンクを貼り付け → 更新。
- Xray コアを更新します:「設定」でコアのバージョンを確認し、明らかに古い場合はコアを更新してからクライアントを再起動します。
すべてのステップが完了したら、最終確認を行います:v2rayNG を起動 → 実接続テスト → ブラウザを開いてテストページにアクセス。それでも失敗する場合は、ログページの該当行をコピーし、ステップ2のエラーカードと照合して原因を特定してください。
よくある質問
遅延テストは正常なのに、実接続テストが失敗する?
遅延テストは TCP ハンドシェイクのみを検証するため、TLS ハンドシェイクや HTTP レイヤーの障害は検出できません。「実接続テスト」の結果を基準にし、失敗する場合は TLS スイッチと allowInsecure の設定を確認してください。
グローバルモードでは繋がるのに、デフォルトモードでは繋がらない?
分流ルールが対象ドメインを中国本土の直接接続と判定しています。サブスクリプションとルールデータベースを更新して再試行するか、そのドメインに対応するアプリをアプリ別プロキシリストに追加してください。
ノードを切り替えたら、かえって繋がらなくなった?
以前のノードの接続が解放されていません。v2rayNG を一度完全に閉じて開き直し、新しいノードでセッションを再確立させてください。
10分ほどで切断され、通知も消えてしまう?
バックグラウンドがシステムに回収されています。アプリ設定でバッテリー戦略を「無制限」に変更し、システムのマルチタスク画面で v2rayNG をロックしてください。
サブスクリプションの更新でタイムアウトになる?
まず利用可能なノードに接続し、サブスクリプショングループの設定で「プロキシ経由で更新」にチェックを入れて再試行してください。