v2rayNは接続済みなのにWebサイトが開けない:macOS・Windowsの原因と対処法

システムプロキシ、ローカルポート、ルーティング、DNS、ノード、時刻設定の順に確認。macOSとWindowsでよくある原因を解説します。

この記事の概要

ノードを選択でき、クライアントも起動しているのに、ブラウザーが読み込み中のまま、接続を拒否される、一部のサイトだけ開けない場合が対象です。まずリクエストがローカルプロキシに届いているかを確認し、次にルーティング、名前解決、接続先への通信を調べます。一度に変更するのは1項目だけにし、同じURLで再テストして、システムプロキシの問題をノードの障害と取り違えないようにしましょう。

ノードの選択とリクエストの接続を切り分ける

v2rayNでサーバーを選択しても、ブラウザーの通信がプロキシ経由になるとは限りません。ノード一覧の遅延時間は特定のタイミングでの測定結果にすぎず、現在のサイトの名前解決、TLSハンドシェイク、ページ内リソースの取得まで保証するものではありません。調査を始める前に、重複して起動しているプロキシクライアントを終了し、TUNは使わず、システムプロキシだけを入口として確認します。

ブラウザーのリクエスト システムプロキシの入口 ローカル待ち受けポート ルーティングルールの照合 ノードへの接続 Webサイトからの応答

現在のノード、システムプロキシの状態、ルーティングモード、ローカルの待ち受けポートを記録します。クライアントのログを開いてから、決めたURLに一度アクセスしてください。該当する通信がログにまったく出ない場合は、まず入口を確認します。対象ドメインや接続先のエラーが記録されている場合は、後半の通信経路を調べます。ログの詳細度によって表示内容は変わるため、記録が空白だからといって、ブラウザーからリクエストが送信されていないとは限りません。

手順1:システムプロキシが現在のポートを参照しているか確認

v2rayNのメイン画面またはトレイメニューから「システムプロキシ」を開き、「システムプロキシを自動設定」を選択します。「システムプロキシをクリア」は関連する設定を削除し、「システムプロキシを変更しない」は現在の設定を維持します。後者はプロキシが有効になっているという意味ではありません。メニューの位置はバージョンによって異なるため、アイコンの色だけで判断せず、メニュー名を確認してください。

OS確認場所確認する内容
macOS 「システム設定」→「ネットワーク」→現在のネットワーク接続→「詳細」→「プロキシ」 WebプロキシとセキュアWebプロキシのアドレスとポートを確認します。ネットワークを切り替えた後は、現在の接続サービスを選んで再確認してください。
Windows 11 「設定」→「ネットワークとインターネット」→「プロキシ」→「手動プロキシ設定」 「プロキシサーバーを使う」のアドレスとポートを確認し、ほかのソフトが残した自動構成スクリプトがないか調べます。
Windows 10 「設定」→「ネットワークとインターネット」→「プロキシ」 手動プロキシが有効か、ポートがクライアントの実際の待ち受けポートと一致しているか確認します。

ローカルプロキシのアドレスには通常 127.0.0.1 を指定し、ポートには現在のクライアント設定の値を使います。「設定」→「パラメーター設定」を開き、ローカルの待ち受けポートとプロトコルの種類を確認してください。プロバイダーのサーバー側ポートをシステムプロキシに指定したり、SOCKS専用ポートをHTTPプロキシ欄に入力したりしないでください。

手順2:ローカルポートが実際に待ち受けているか確認

ここでは確認手順の例として 10808 を使います。すべてのバージョンで共通のポートではありません。クライアント設定でHTTPまたは混合待ち受けと明記されている場合に限り、後述のHTTPプロキシテストを実行してください。設定が異なる場合は、コマンド内のポートを実際の値に置き換えます。

127.0.0.1
ローカルループバックアドレス
10808
この記事のコマンドで使う待ち受けポートの例
15秒
コマンド1回あたりのタイムアウト上限

macOSのターミナルで確認

lsof -nP -iTCP:10808 -sTCP:LISTEN
curl -I --max-time 15 --proxy http://127.0.0.1:10808 https://example.com/

Windows PowerShellで確認

Get-NetTCPConnection -LocalPort 10808 -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess

curl.exe -I --max-time 15 --proxy http://127.0.0.1:10808 https://example.com/

Windowsでは curl.exe を明示して、古いPowerShellで curl が別のコマンドとして解釈されるのを防ぎます。待ち受けプロセスが見つかったら、プロセスIDを使って「タスクマネージャー」で名前を確認してください。macOSでは lsof の出力からプロセスを確認します。別のプロセスがポートを使用している場合は、用途を特定してから、重複するクライアントを終了するか待ち受けポートを変更してください。見覚えのないシステムプロセスをそのまま終了しないでください。

エラー:address already in use

原因と対処:コアがバインドしようとしたアドレスとポートは、すでに使用されています。使用中のプロセスを確認し、重複したインスタンスを終了するか、ローカルポートを変更してからシステムプロキシを設定し直してください。

エラー:Failed to connect to 127.0.0.1 port 10808

原因と対処:指定したローカルの入口に接続できていません。コアの起動ログ、待ち受けポート、待ち受けアドレスを確認してから再試行してください。まずは接続先ノードの設定を変更しないでください。

切り分け:コマンドは成功し、ブラウザーだけ失敗する場合は入口を確認

明示的なプロキシテストで対象サイトのTLSハンドシェイクが完了し、HTTP応答を受け取れた場合、そのテストではローカルの入口から接続先まで通信できています。ブラウザーのプロキシ設定を上書きする項目、拡張機能、システム設定を優先して確認してください。200 Connection established が表示されただけでは、対象サイトへのリクエストが完了したとはいえません。

手順3:ルーティングの適用結果を確認し、全般モードを解決策にしない

システムプロキシはリクエストの最初の転送先を決め、ルーティングルールが直結、プロキシ経由、ブロックのどれにするかを決めます。「日本国内のサイトは開けるが、ほかのサイトは開けない」場合、直結する通信だけが正常な可能性があります。「特定のドメインだけ開けない」場合は、意図せず直結またはブロックのルールが適用されていないか確認してください。

  1. 現在のルーティングモードを記録し、自分で追加したルールをバックアップします。
  2. v2rayNの「ルーティング」メニューで現在の設定を確認します。ルールを確認する場合は、「設定」からルーティング設定を開いてください。メニュー名はインストールしたバージョンによって異なります。
  3. テスト対象のリクエストがプロキシに送られる全般ルーティングモードを一時的に選び、ノードとテストURLは変更しません。
  4. アクセスが復旧した場合は元のモードに戻し、対象ドメイン、ドメイン末尾のルール、ルールの順序を確認して、修正後に再テストします。

全般ルーティングが処理するのは、クライアントに届いたリクエストだけです。システムプロキシを利用しないアプリを自動的に接続するものではありません。また、ルールをすべて削除しないでください。社内ネットワーク、会社のサービス、ローカルデバイスで直結が必要な場合があります。障害が起きているドメインに関係するルールだけを一度に1つ変更すると、再現可能な結果を得やすくなります。

手順4:DNSのどこで失敗しているか切り分ける

DNSの障害には少なくとも2種類あります。ノードサーバーのアドレスを名前解決できない場合と、接続先サイトのドメインを名前解決できない場合です。前者ではプロキシからの接続自体が失敗し、後者では一部のサイトだけに影響することがあります。まずログでエラーが発生したドメインを特定し、システムの名前解決、コアのDNS、ブラウザーのセキュアDNSのどれを確認するか判断してください。

エラー:Could not resolve host

原因と対処:curlが必要なホスト名を名前解決できていません。まずコマンド全体とプロキシのプロトコルを確認し、そのドメインをローカルとプロキシのどちらで解決すべきか確認してください。このメッセージだけでプロバイダーのノード障害とは判断できません。

エラー:no such host

原因と対処:名前解決で有効な結果を取得できていません。ログでエラー前後のドメインを確認し、入力ミス、現在のネットワークからのDNS到達性、クライアントのDNS設定を調べます。

macOSでは、次のコマンドで現在のシステムの名前解決結果を確認できます。確認できるのはシステムのリゾルバーの状態だけであり、コアのDNSやプロキシ側での名前解決の確認には代用できません。

dscacheutil -q host -a name example.com

Windows PowerShellでも同じドメインを確認できます。システムDNSを修正した後、古いキャッシュを消去する必要があれば2つ目のコマンドを実行してください。権限が必要な場合は、システムの指示に従います。

Resolve-DnsName example.com
ipconfig /flushdns

手順5:ノード設定とシステム時刻を確認

ローカルの入口が正常で、ルーティングもプロキシ経由になっていることを確認してから、ノードをテストします。同じサブスクリプション内で、利用可能と分かっている別のノードに切り替え、ブラウザー、URL、ルーティングモードは変えずに確認してください。1つのノードだけ失敗する場合は、そのノードの稼働状況と設定を調べます。すべてのノードが失敗する場合は、現在のネットワーク制限、サブスクリプションの有効期限、コアが正しく起動しているかも確認してください。

確認項目確認すること誤判定を避けるポイント
サブスクリプションと認証 該当するサブスクリプションを更新し、プロバイダーが案内する有効期限と認証情報を確認します。 サブスクリプションの更新成功は設定を取得できたことを示すだけで、すべてのノードに接続できる保証にはなりません。
プロトコルとトランスポート VMess、VLESS、Trojanの種類を確認し、アドレス、ポート、トランスポート方式、TLS設定を照合します。 プロバイダーが提供した暗号化接続を、安易に暗号化されない接続へ変更しないでください。
REALITYの設定 該当する設定に対応したコアを使用し、サーバー名、公開鍵、ショートIDなどのパラメーターを確認します。 VLESSを選択しただけでは、REALITYに必要なパラメーターがそろっているとは限りません。
システム時刻 日付と時刻の自動設定を有効にし、現在の日付と時刻が正しいことを確認します。 タイムゾーンの表示を変更しても、実際の時刻のずれは直りません。

macOSでは「システム設定」→「一般」→「日付と時刻」を開き、自動設定を確認します。Windowsでは「設定」→「時刻と言語」→「日付と時刻」を開き、「時刻を自動的に設定する」を有効にしてください。必要に応じて「今すぐ同期」をクリックします。時刻が大きくずれていると、TLS証明書の有効期限判定や一部の認証処理に影響することがありますが、すべてのタイムアウトの原因ではありません。

再テストの結果から残る問題を確認

上記の手順を終えたら、最初のURLで再テストし、変更内容と結果を記録します。問い合わせる場合は、OS、クライアントのバージョン、使用中のコア、エラー発生時刻、機密情報を伏せたログを伝えてください。サブスクリプションURL、ユーザーID、パスワード、ノード設定全体を公開画像に含めないでください。

システムプロキシを有効にしても使えません。すぐにTUNを有効にすべきですか?

まず明示的なプロキシを指定してcurlでテストします。それも失敗する場合は、ローカルの入口かノードまでの通信を先に修復してください。テストが成功し、対象アプリがシステムプロキシを無視する場合は、TUNの利用を検討します。有効にする前に管理者権限を確認し、通信を制御するネットワークツールを複数同時に実行しないようにしてください。

v2rayNを終了した後、通常のWebサイトも開けなくなった場合は?

クライアントを再起動して「システムプロキシ」→「システムプロキシをクリア」を選ぶか、OSのプロキシ設定で残っているローカルプロキシを無効にします。クライアントを終了すると、以前のローカルポートは待ち受けを停止している場合があります。

遅延テストの結果が出るのに、アクセスがタイムアウトするのはなぜですか?

テスト項目によっては、Webページのリクエスト全体を確認していません。URLを1つ決め、プロキシを明示したコマンドで接続全体を確認し、同じ時刻のログを調べてください。1回の遅延測定だけでは、帯域幅、DNS、すべてのサイトへの接続可否は判断できません。

スマートフォンのテザリングなら使えます。PCの設定が壊れていますか?

まず2つのネットワークでシステムプロキシとDNSを比較します。macOSでは現在のネットワークサービスも確認してください。テザリングで使える場合、ネットワーク環境に関連した問題の可能性が高くなります。クライアントをすぐに再インストールするのではなく、元のネットワークのログイン認証、ファイアウォール、接続制限を調べてください。

仕上げ:ルーティングを元に戻し、変更は最小限に

原因が分かったら、一時的に変更したルーティングとログレベルを元に戻し、直結するサイト、プロキシが必要なサイト、普段使うアプリをそれぞれ確認します。ノード、DNS、ポートを同時に変更するより、実際に有効だった変更だけを残すほうが、次回の原因特定が容易です。

クライアントのダウンロードを見る