この記事は、v2rayNでノードを選択し、コアを起動してシステムプロキシを有効にしたものの、ブラウザーやターミナルが直接接続してしまう場合に適しています。まずローカルの待受ポートを確認し、次にブラウザーの適用状況とターミナルの明示的なプロキシを個別に検証し、最後にノード、ルーティング、DNSを確認します。アプリ、システムプロキシ、ローカルポート、リモート接続のどこに問題があるかを切り分けられます。
4つの段階を切り分け、いきなり再インストールしない
「システムプロキシが有効」という状態は、OSにプロキシアドレスが保存されていることを示すだけで、すべてのアプリがそのアドレスを使うとは限りません。完全な接続には、アプリのプロキシ設定、システムプロキシ設定、ローカルの待受ポート、リモートノードという少なくとも4つの段階があります。どれか1つが途切れると、ウェブページが開けない、または出口IPが変わらないといった現象になります。
ブラウザーは通常システムプロキシを読み取りますが、ブラウザー独自のプロキシ設定、企業ポリシー、プロキシ拡張機能に上書きされることもあります。ターミナルのプログラムはさらに分散しており、HTTP_PROXYやHTTPS_PROXYを読むもの、コマンドライン引数が必要なもの、システムプロキシを完全に無視するものがあります。そのため、ブラウザーは正常なのにターミナルだけ直接接続することは珍しくありません。
結論:まずローカルポートを検証する
10808や10809を固定値として扱わないでください。v2rayNに現在表示されている待受設定を基準にし、明示的なプロキシ指定で同じアドレスへアクセスします。明示的なプロキシは成功してシステムプロキシだけ失敗するなら、問題はアプリ側の適用処理かシステム設定にあります。明示的なプロキシも失敗する場合は、コア、ポート、ノードを確認します。
ブラウザー編:システム設定が実際に適用されているか確認する
ブラウザーの確認では、ウェブページを何度も再読み込みする前に、OSへ実際に設定されたプロキシサーバーを確認します。Windowsでは「設定」→「ネットワークとインターネット」→「プロキシ」を開き、手動プロキシが127.0.0.1を指し、ポートがv2rayNのHTTP待受ポートと一致しているか確認します。macOSでは「システム設定」→「ネットワーク」→現在のネットワーク→「詳細」→「プロキシ」で同じ項目を確認します。
ノードが有効になっているか確認する
v2rayNのメイン画面で利用可能なサーバーを選択し、アクティブサーバーに設定します。そのうえで、コアが起動と終了を繰り返していないことを確認します。
システムプロキシを再設定する
まず「システムプロキシを解除」を1回実行して3秒待ち、その後「システムプロキシを自動設定」を選択します。古いアドレスやポートの設定を整理するための手順です。
システムポートを確認する
システムプロキシの画面を開き、アドレスが127.0.0.1で、ポートがv2rayNの現在のHTTPポートと一致しているか確認します。画面に10809と表示されているなら、システム設定も10809にします。
拡張機能による上書きを除外する
ブラウザーのプロキシ管理拡張機能を一時的に無効にし、ブラウザーを完全に終了してから再起動します。タブを閉じるだけでは、プロキシ関連のプロセスが再構築されないことがあります。
クリーンなウィンドウで試す
新しいブラウザープロファイル、または一時的なゲストウィンドウでテストし、キャッシュされたネットワークポリシー、拡張機能のルール、既存接続の再利用による影響を避けます。
一方のブラウザーは正常で、もう一方だけ失敗する場合、ローカルコアとリモートノードは利用可能であることが多いため、失敗するブラウザーの個別プロキシ設定を重点的に確認します。ブラウザーによっては「プロキシを使用しない」「システムプロキシを使用」「手動プロキシ」を選べます。ここではシステム設定を使用するか、確認済みのローカルHTTPポートを手動で入力します。
エラー:ERR_PROXY_CONNECTION_FAILED
原因と対処:ブラウザーはプロキシへの接続を試みましたが、入力されたローカルアドレスで待ち受けているプログラムがありません。127.0.0.1の後ろに指定したポートを確認し、v2rayNのコアが実行中であることを確認してください。
エラー:ERR_TUNNEL_CONNECTION_FAILED
原因と対処:ブラウザーはHTTPプロキシに接続できましたが、プロキシが対象へのトンネルを確立できませんでした。動作確認済みのノードへ切り替え、ルーティングルールで対象ドメインが拒否されていないか確認してください。
エラー:プロキシサーバーが接続を拒否しました
原因と対処:ブラウザー独自のプロキシ設定が古いポートを指しているか、ローカルの待受ポートが変更されています。システムプロキシの使用に戻し、ブラウザーの全プロセスを終了してから再試行してください。
- 通常ウィンドウだけ失敗し、ゲストウィンドウは正常:まずブラウザーの拡張機能とプロファイルを確認します。
- すべてのブラウザーが失敗するが、明示的なプロキシコマンドは成功:システムプロキシのアドレス、ポート、例外リストを優先的に確認します。
- ブラウザーで一部のサイトだけ開ける:ルーティング、DNS、ドメインルールを確認し、システムプロキシのスイッチだけに注目しないでください。
- ノードを切り替えても古いページが失敗する:古いタブを閉じて数秒待ち、既存接続の再利用を避けます。
ターミナル編:環境変数または引数でプロキシを明示する
ターミナルのcurl、パッケージマネージャー、開発ツールは、デスクトップのシステムプロキシを読み取るとは限りません。最も確実なテストは、単発のコマンドにプロキシを明示する方法です。単発コマンドが成功すれば、v2rayNのローカルポートとノードは正常で、あとは使用するツールに環境変数または専用のプロキシ設定を追加します。
HTTPプロキシとSOCKSプロキシは、ポート名だけで推測できません。HTTPのテストにはv2rayNに表示されたHTTPポートを、SOCKSのテストにはSOCKSポートを使用します。socks5hを使うとドメイン解決をプロキシ側に任せられるため、ローカルDNSの失敗とプロキシ接続の失敗を切り分けるのに適しています。
curl.exe --proxy http://127.0.0.1:10809 https://v2raylink.com/
curl --proxy socks5h://127.0.0.1:10808 https://v2raylink.com/
# PowerShellの現在のセッション
$env:HTTP_PROXY="http://127.0.0.1:10809"
$env:HTTPS_PROXY="http://127.0.0.1:10809"
# LinuxまたはmacOSの現在のシェル
export HTTP_PROXY="http://127.0.0.1:10809"
export HTTPS_PROXY="http://127.0.0.1:10809"
export ALL_PROXY="socks5h://127.0.0.1:10808"
| テスト結果 | 判断できること | 次の手順 |
|---|---|---|
| HTTPとSOCKSの両方が成功 | ローカルコア、待受ポート、リモートノードはおおむね正常 | 使用するターミナルツールが環境変数を読み取るか確認する |
| HTTPは失敗、SOCKSは成功 | HTTPポートの指定ミス、または対応する待受が有効になっていない | 設定に戻り、HTTPポートを確認する |
| HTTPとSOCKSの両方が接続を拒否 | コアが待ち受けていない、ポートが変更された、またはプロセスが終了している | コアのログとポートの使用状況を確認する |
| 接続確立後も長時間タイムアウトする | ローカルの入口には到達しているが、リモートノードまたはルーティングに問題がある可能性 | ノードを切り替え、接続ログを確認する |
エラー:curl: (7) Failed to connect to 127.0.0.1 port 10809
原因と対処:そのポートで利用可能なHTTP待受がありません。v2rayNで実際のポートを確認し、コアの実行を確認してから正しいポートで再試行してください。
エラー:curl: (5) Could not resolve proxy
原因と対処:プロキシアドレスの形式が正しくありません。余分な引用符や空白、プロトコル部分の誤記がよくある原因です。http://127.0.0.1:ポートの形式で設定し直してください。
エラー:connection reset by peer
原因と対処:接続はローカルプロキシまで到達していますが、リモート経路が切断されました。ノードを切り替え、サブスクリプションのサーバーアドレス、ポート、トランスポート設定がすべて揃っているか確認してください。
クライアント編:待受、コア、ポートの使用状況を確認する
ブラウザーと明示的なプロキシコマンドの両方が失敗する場合は、v2rayNに戻ってローカルサービスを確認します。システムプロキシは通信をローカルポートへ向けるだけで、実際に接続を受けるのはV2RayまたはXrayのコアです。コアの起動失敗、設定生成の失敗、他プロセスによるポート占有があると、システムプロキシが有効なままでもすべての接続が失敗します。
基本設定を開く
「設定」→「パラメーター設定」→「基本設定」を開き、ローカル待受アドレス、HTTPポート、SOCKSポートを記録します。バージョンによって項目の並びが異なる場合があるため、画面に表示された実際の値を基準にしてください。
コアの種類を確認する
「設定」→「パラメーター設定」→「Coreタイプ」を開き、現在のノードで使用するプロトコルと選択中のコアが適合しているか確認します。VMessとVLESSの設定では、サブスクリプションが提供したトランスポートパラメーターも保持してください。
実行ログを確認する
コアを再起動したらすぐにログを確認し、failed、error、bind、refused、invalidなどのキーワードを重点的に検索します。システムトレイの状態だけで判断しないでください。
待受ポートを変更する
ログにポートの使用中が示されている場合は、HTTPとSOCKSのポートをそれぞれ未使用の値へ変更し、保存してコアを再起動します。その後、システムプロキシを再設定してください。
サブスクリプション設定を更新する
「サブスクリプショングループ」で「すべてのサブスクリプションを更新」を実行し、アクティブサーバーを選び直します。1つのノードだけが失敗する場合は、クライアントのインストールよりもノード設定を優先して確認します。
ポートを変更した後は、v2rayNの待受設定、OSのプロキシ設定、ターミナルの環境変数という3か所を同期して更新する必要があります。1か所だけ変更すると、「クライアントは動作中なのにアプリは古いポートへ接続する」という不一致が起きます。古いターミナルウィンドウには元の環境変数が残るため、ターミナルを開き直すか、現在のセッションで上書きしてください。
エラー:bind: Only one usage of each socket address is normally permitted
原因と対処:ローカルの待受ポートが別のプロセスに使用されています。使用中のプロセスを終了するか、v2rayNのポートを変更してからシステムプロキシを再設定してください。
エラー:failed to start core
原因と対処:コアプロセスが起動を完了できませんでした。設定エラーやファイルへのアクセス失敗が考えられます。同じ時刻のログから最初のerrorをさかのぼって確認し、該当フィールドを修正して再起動してください。
エラー:invalid config
原因と対処:生成されたノード設定に欠落または互換性のないフィールドがあります。サブスクリプションを更新してノードを再インポートし、VMessとVLESSのトランスポートパラメーターを手動で混在させないでください。
接続は確立するのに通信できない:ルーティングとDNSを確認する
ローカルポートに接続できても、対象の通信が必ずリモートプロキシを経由するとは限りません。v2rayNのルーティングは、ドメイン、IP、プロトコル、ルールセットに基づいて出口を決定します。対象ドメインが直結ルールに一致すると出口アドレスは変わらず、ブロックルールに一致するとブラウザーで接続エラーが表示されることがあります。この場合、システムプロキシを何度も切り替えても解決しません。
| 現象 | 考えられる原因 | 確認方法 |
|---|---|---|
| 明示的なプロキシは成功するが、出口が変わらない | 対象ドメインが直結ルールに一致している | 一時的にグローバルプロキシモードへ切り替えて再テストする |
| ドメインは失敗するが、既知のアドレスへ直接アクセスすると応答がある | ローカルDNSの名前解決に問題がある | socks5hを使ってリモート側の名前解決をテストする |
| 1つのノードだけが継続的にタイムアウトする | ノードのアドレス、ポート、トランスポートパラメーターに問題がある | 同じサブスクリプション内の別ノードへ切り替えて比較する |
| VMessは使えるが、特定のVLESS設定だけ失敗する | その設定のトランスポートまたはセキュリティパラメーターが不完全 | サブスクリプションを更新し、ログのハンドシェイクエラーと照合する |
ルーティングを確認するときは、まず短時間の比較テストを行います。同じノードを使い続け、ルール分流とグローバルプロキシで同じ対象へアクセスします。グローバルモードでは成功し、ルールモードで失敗するなら、そのドメインに最終的に適用されたルールと出口を確認します。テスト後は日常用の分流設定に戻し、グローバルモードを恒久的な解決策にしないでください。
結論:一度に変更する変数は1つだけ
対象アドレスとノードを固定し、アプリのプロキシ方式、ポート、ルーティングモードを順番に変更します。毎回1項目だけを変えることで、ブラウザーの適用処理、ターミナル設定、ローカル待受、リモートノードのどこに問題があるかを安定して特定できます。ノード、DNS、ルールを同時に切り替えると、本当の原因が分からなくなります。
結果で確認を終える:5分チェックリスト
確認後は、「アイコンが正常に見える」ことだけを判断材料にする必要はありません。システム設定のポートとクライアントが一致している、明示的なプロキシコマンドが成功する、ブラウザーでプロキシ拡張機能を無効にするとアクセスできる、ログに新しい起動エラーがない、という明確な結果で確認を終えます。以下の順序は、同じ問題が再発したときの簡易チェックにも適しています。
- v2rayNでアクティブサーバーが選択され、コアのログに起動完了が表示されていることを確認します。
- 実際のHTTPポートとSOCKSポートを記録し、記憶している10808や10809をそのまま使わないでください。
- システムプロキシを解除してから再設定し、アドレスが127.0.0.1でポートが一致していることを確認します。
- ブラウザーのプロキシ拡張機能を無効にし、ブラウザーを完全に終了してから再起動します。
- curlの
--proxy引数でHTTPとSOCKSの入口をそれぞれテストします。 - 明示的なプロキシが成功したら、ターミナルツールに現在のセッションの環境変数を設定します。
- ルールモードだけが失敗する場合は、ルールの適用先とDNSを確認し、ローカルポートを変更し続けないでください。
- 1つのノードだけが失敗する場合は、サブスクリプションを更新して別ノードと比較します。
ブラウザーは正常なのに、なぜターミナルは直接接続するのですか?
多くのターミナルプログラムはデスクトップのシステムプロキシを自動的に読み取りません。単発のコマンドにプロキシ引数を追加するか、現在のシェルでHTTP_PROXY、HTTPS_PROXY、ALL_PROXYを設定してください。どの変数を使うかは、ツールが対応するプロキシ形式によって異なります。
システムプロキシのポートは10809でなければなりませんか?
いいえ。10809はよく使われる例示値にすぎず、ポートは変更できます。システムプロキシ、v2rayNの待受設定、ターミナルの環境変数には、実際に使用している同じHTTPポートを指定する必要があります。
グローバルプロキシを有効にすると復旧します。どこに問題がありますか?
通常、ローカルポートとノードは利用可能で、問題はルーティングの分流にある可能性が高いことを示します。対象ドメインに一致したルール、ルールの順序、対応する出口を確認し、テスト後は日常利用に適した分流モードへ戻してください。