本記事は、v2rayN または v2rayNG をインストール済みで「接続済みなのにページが開けない」問題に直面しているユーザー向け。ノード→時刻→DNS→システムプロキシ→ルーティングルールの順に確認し、各層に検証方法と具体的な修正手順を記載。読み終えれば、一度の完全なトラブルシューティングを独力で行える。
まず「接続済み」の本当の意味を確認する
クライアントが接続済みと表示しても、カーネルプロセスが動作しノードのハンドシェイクが成功しただけであり、ブラウザのトラフィックが実際にプロキシ経由になるかは、システムプロキシまたはTUNモードが引き継ぐかどうかに依存する。多くの人は緑の状態を見て確認を飛ばすが、問題はトラフィックがプロキシを経由していないことにある。
このチェーンのどこか一箇所でも切れると、「接続済みなのにネットが使えない」という症状になる。確認順は、最も問題が起きやすいノードから始め、徐々に内側へ絞り込む。
第1層の確認:ノードの可用性と遅延
ノードの可用性は最も頻繁に発生する障害ポイント。まずクライアントのメイン画面で遅延テスト結果を確認し、次にノードを切り替えて検証する。v2rayNではノードを右クリックして「サーバー実接続遅延をテスト」を選択すると、「TCPハンドシェイクは成功するがHTTPが通らない」ケースを区別できる。v2rayNGではメイン画面右上の遅延テストボタンを使う。
エラー:failed to find an available destination
原因と解決策:アウトバウンドサーバーのアドレス解決に失敗——ノードアドレスのスペルを確認し、DNSを変更してからカーネルを再起動する。
エラー:connection refused
原因と解決策:ノードのポートがブロックされているか、サーバー側がリッスンしていない——別のノードに切り替え、同じノードを繰り返し試さないこと。
| 遅延値 | 状態判定 | 推奨操作 |
|---|---|---|
| < 100 ms | 利用可能 | 正常に使用 |
| 100–300 ms | 利用可能だが遅い | 使用は続けられるが、動画・ダウンロードの体感に影響 |
| > 300 ms | 高遅延 | ノードを変更するか、ターゲット地域に近い回線を選ぶ |
| タイムアウト | 利用不可 | すぐにノードを変更、待つ必要なし |
第2層の確認:システム時刻同期
ノードのハンドシェイクはTLS証明書の検証に依存する。システム時刻と実際の時刻のずれが5分を超えると証明書検証が失敗し、「接続成功したがすぐに切断される」または「接続できるがページが開けない」という症状になる。まず手動で時刻を合わせ、その後ノードに再接続する。
| システム | 同期コマンド | 説明 |
|---|---|---|
| Windows | w32tm /resync | 管理者としてコマンドプロンプトを実行する必要がある |
| macOS | sudo sntp -sS time.apple.com | ネット接続が必要。ローカル時刻は強制的に補正される |
| Linux | sudo timedatectl set-ntp true | systemd-timesyncd を有効にすると自動同期される |
| Android | 設定 → システム → 日付と時刻 → 自動設定 | 有効にするとシステムがネットワークから自動的に時刻を合わせる |
Windowsユーザーで w32tm /resync がエラーになる場合は、まず net start w32time を実行して時刻サービスを起動してから同期する。
第3層の確認:DNS解決とプロキシDNS
ノードが正常で時刻同期後もページが開けない場合、次に多い原因はDNS解決。V2RayカーネルのDNS設定が、ドメイン解決をローカルで行うかリモートで行うかを決定する。v2rayNで「設定」→「パラメータ設定」→「DNS設定」を開き、「DNSサーバーを有効にする」にチェックを入れ、リモートDNSアドレスを入力する。
"dns": {
"servers": [
"8.8.8.8",
"1.1.1.1"
],
"queryStrategy": "UseIP"
}
「大陸を迂回」ルーティングルールを使用する場合、「リモートDNS」と「ローカルDNS」の振り分けロジックも確認する必要がある。そうしないと「pingは通るがブラウザで解決できない」という現象が発生する。nslookup google.com で解決結果を検証し、8.8.8.8 が返るのにブラウザで開けない場合、問題はDNSではなくシステムプロキシにある可能性が高い。
結論:まずDNSをテストしてからルーティングを変更する
解決がタイムアウトする場合はDNS設定を優先的に調整する。解決が正常なのにページが開けない場合はDNSを飛ばして、システムプロキシとルーティングルールを直接確認する。
第4層の確認:システムプロキシとブラウザプロキシ
v2rayNはデフォルトで10808番ポート(SOCKS)と10809番ポート(HTTP)をリッスンする。システムプロキシが有効になると、ブラウザのリクエストはこの2つのポートに入る。システムプロキシが無効の場合、トラフィックは直接接続され、「ノードに接続できたがページが開けない」という症状になる。Windowsのシステムプロキシ設定パス:「設定」→「ネットワークとインターネット」→「プロキシ」で、「プロキシサーバーを使用する」が有効になっていることを確認する。
システムプロキシを有効にする
v2rayNのメイン画面でトレイアイコンを右クリック →「システムプロキシを有効にする」を選択し、状態が「システムプロキシをクリア」に変われば有効になっている。
ポート設定を確認する
「設定」→「パラメータ設定」→「ローカルリスニング」で、SOCKSポートが10808、HTTPポートが10809であることを確認する。
ポートの疎通を確認する
ブラウザのアドレスバーに
http://127.0.0.1:10809と入力し、プロキシのトップページが表示されればポートは正常。ブラウザのプロキシ拡張機能を整理する
SwitchyOmegaなどの拡張機能がSOCKS5固定の場合、v2rayNのポートと一致させる必要がある。そうしないと、トラフィックが拡張機能に引き継がれた後も直接接続されてしまう。
第5層の確認:ルーティングルールと振り分け
ルーティングルールは、どのトラフィックをプロキシ経由にするか、どのトラフィックを直接接続にするかを決定する。ルールを誤ると、「国内サイトは開けるが海外サイトが開けない」または「全トラフィックがプロキシ経由なのにプロキシノード自体が遅い」という状況が発生する。v2rayNのデフォルトルールは「大陸を迂回」で、国内IPとドメインは直接接続、それ以外はプロキシ経由になる。
- 「設定」→「パラメータ設定」→「ルーティング設定」で、現在のルールグループを確認する。
- 「大陸を迂回」ルールが誤って「グローバル」に変更されていないか確認する。
- カスタムルールに
domain:google.comが誤って直接接続に追加されていないか確認する。 - ルール変更後、トレイアイコンを右クリック →「カーネルを再起動」で設定を反映させる。
結論:まずルールを確認してから振り分けを調整する
「国内は即座に開くが海外は全てタイムアウト」という場合は、まずルールを「大陸を迂回」に戻してカーネルを再起動する。それでも通らない場合は、消去法でカスタムルールを1つずつ削除する。
よくある問題の早見表
サブスクリプション更新がタイムアウトで失敗する?
まず利用可能なノードに接続し、サブスクリプション設定で「プロキシ経由で更新」にチェックを入れて再試行する。
接続できたのにページが開けない?
システムプロキシが有効かどうかを確認し、コアログにポート占有エラーがないかも確認する。
国内サイトは開けるのに、海外は全てタイムアウト?
ルーティングルールが「大陸を迂回」に変更され、ノード自体も通じていない場合は、まずノードを変更し、ルールに海外ドメインが直接接続リストに追加されていないか確認する。
遅延は低いのにダウンロードが数十KBしか出ない?
ノードの帯域が制限されているか、複数人で共有されている可能性がある。未超過販売のノードに変更するか、v2flyNGのXrayカーネルノードに切り替える。
再起動後にプロキシが自動的に無効になる?
v2rayNの「起動時に自動起動」と「システムプロキシ」を同時にチェックする必要がある。そうしないと、再起動後にカーネルは起動するがプロキシが引き継がない。
クライアントをダウンロードして、本記事のチェックリストで確認する
v2rayNとv2rayNGはどちらも本記事で扱うノード、DNS、ルーティング設定項目に対応している。v2flyNGはv2flyカーネルが必要なAndroidユーザーに適している。