VPNが有効か確認するときは、クライアントに「接続済み」と表示されているかだけでは不十分です。この表示は通常、ハンドシェイクの完了やトンネルの確立を示すだけで、ブラウザ、コマンドラインツール、その他のアプリの通信まで対象回線を経由しているとは限りません。出口IP、DNSの問い合わせ経路、実際のアプリの通信結果を確認する必要があります。

完全なチェックは3段階に分けられます。まずクライアントとノード間のプロトコル接続を確認し、次にOSが対象トラフィックをトンネルへ渡しているかを確認します。最後に、アクセス先から見える出口が想定どおりかを確かめます。1段階だけを調べると、「プロトコルは接続済みだがルーティングが引き継がれていない」状態を正常と誤認しやすく、ブラウザ独自のプロキシやDNS設定をシステムVPNの有効化と取り違えることもあります。

「接続成功」と「通信が対象回線を経由すること」を分けて考える

クライアントが接続を開始すると、まずリモートサーバーとの通信経路を確立します。Shadowsocks、VMess、Trojan、VLESS、Hysteria2、TUICはいずれもこの段階を担えますが、プロトコルのハンドシェイクが成功した後に通信を経路へ流す方法は、クライアントモード、システム権限、分流ルールによって決まります。

たとえばクライアントがシステムプロキシモードの場合、通常はシステムプロキシ設定に従うアプリだけがプロキシを経由します。ブラウザは出口を切り替えられても、一部のゲーム、コマンドラインプログラム、独自のネットワークスタックを使うデスクトップアプリは直接接続を続ける場合があります。仮想NICやトンネルモードでは、より広範囲のシステム通信を引き継げますが、ルートの優先順位、除外ルール、他のネットワークツール、システム権限の影響を受けることがあります。

したがって、「接続済み」には少なくとも次のような異なる状態が含まれます。

トラブルシューティングでは、ノードを何度も切り替えてステータスランプだけを確認するのは避けましょう。特定の回線を1つ固定し、接続前後のネットワーク結果を記録してから、問題の範囲を段階的に絞り込むほうが効果的です。これにより、問題がプロトコル、ルーティング、DNS、分流、特定のアプリのどこで発生しているかを判断できます。

出口IPで実際の通信経路を確認する

出口IPはアクセス先のWebサイトから見える送信元アドレスであり、Web通信がリモートノードを経由しているかを判断する最も直接的な手がかりです。確認前にクライアントを切断し、信頼できるIP確認ページへアクセスして通常回線の出口を記録します。その後、指定した回線に接続して再度確認し、結果を比較します。アドレスと地域情報がノードに応じて変われば、その問い合わせはリモート出口から送信されたと判断できます。

テスト中は、ネットワーク環境をできるだけ同じに保ってください。接続前後に無線LAN、有線LAN、その他の接続方法を切り替えると、通常回線の出口自体が変わり、比較結果に意味がなくなります。ブラウザが古い結果をキャッシュしている場合もあるため、必要に応じて強制更新するか、新しいプライベートウィンドウで再確認します。

出口が変わらない場合に確認すること

出口IPが変わらなくても、必ずしもノードが利用できないとは限りません。よくある原因は、ブラウザがシステムプロキシを読み取っていない、クライアントがローカルプロキシポートだけを起動している、仮想NICに必要な権限がない、分流ルールでIP確認サイトが直接接続に分類されている、といったものです。まず、クライアントがシステムプロキシ、ルールモード、グローバルモード、トンネルモードのどれを使っているか確認します。

グローバルモードでは出口が変わるのに、ルールモードでは変わらない場合、問題は通常プロトコル接続ではなくルールのマッチングにあります。接続ログを確認し、確認サイトのドメインが最終的にプロキシルールと直接接続ルールのどちらに一致したかを確認しましょう。ログの「接続成功」は、クライアントがリモートへ到達できたことしか示しません。診断上重要なのは、そのリクエストがどの出方向けに割り当てられたかです。

アプリによって出口が異なる場合

ブラウザ、ターミナル、デスクトップアプリで出口が異なる場合、同じプロキシ入口を共有していない可能性があります。ブラウザが独立したプロキシ拡張機能を使っていたり、ターミナルプログラムがシステムプロキシを無視していたり、アプリが独自設定の通信経路を優先していたりすることがあります。アプリ内プロキシを個別に無効にするか、クライアントが提供するローカルプロキシ入口をアプリに明示的に設定してから、再度テストしてください。

確認結果 考えられる原因 次の手順
接続後に出口が変わった 今回の問い合わせは対象回線に入っている DNSと実際のアプリを引き続き確認する
出口がまったく変わらない プロキシが引き継いでいない、ルールが直接接続、またはルートが設定されていない テストモードを切り替え、接続ログを確認する
ブラウザは変わるが、他のアプリは変わらない プロキシを使っているのはブラウザだけ システムプロキシ、トンネルモード、アプリ設定を確認する
確認ページによって結果が食い違う キャッシュ、プロトコルファミリーの違い、またはページ側の判定データの違い 結果を更新し、複数のネットワーク入口から再確認する
この段階での結論: 出口が変わったことから確認できるのは、テストしたリクエストがリモート回線を経由したことだけです。すべてのアプリ、DNS問い合わせ、バックグラウンド接続が同じ経路を使っているとは限りません。

DNS問い合わせがトンネルを迂回していないか確認する

ドメインへアクセスするとき、システムはまずドメイン名を接続可能なアドレスへ解決します。Web通信がVPNを経由していても、DNS問い合わせが通常回線のリゾルバーへ送られていれば、アクセス自体は完了する一方、ドメインの問い合わせ経路とWebの出口は一致しません。これは一般にDNSリークと呼ばれますが、より正確には、名前解決のリクエストが想定どおり管理された経路に入っていない状態です。

検証時は、切断時と接続時にDNSリゾルバーの所属をそれぞれ確認します。回線接続後も以前の通常回線のリゾルバーが問い合わせを処理し続けるなら、クライアントのDNS引き継ぎ、仮想NICの設定、システムキャッシュを確認してください。クライアントで設定したリモートリゾルバーやトンネル内の名前解決入口が表示されるなら、想定に近い経路で処理されていると判断できます。

ただし、DNSの検出結果は設定と切り離して判断できません。ブラウザが暗号化DNSを有効にして、OSの名前解決設定を迂回していることがあります。クライアントがドメインの種類に応じて別のリゾルバーを選ぶ場合もあります。リゾルバーの地域と出口地域が異なっていても、必ずしもリークとは限りません。重要なのは、その経路がクライアントの設計と利用者の設定に合っているかどうかです。

ブラウザの暗号化DNSによる違い

最新のブラウザは、暗号化されたDNSリクエストを独自に送信できます。そのため、ブラウザの名前解決結果が、システムコマンド、他のアプリ、クライアントログと異なることがあります。ブラウザの暗号化DNSリクエストがトンネル経由で送信されているなら、必ずしも迂回ではありません。ただし、分流ルールでそのリクエストの直接接続が許可されている場合は、システムDNSとは別の経路になります。

切り分けでは、一時的にブラウザがシステムの名前解決設定に従うようにしてから、検出を再実行します。結果が一致するようになれば、違いの原因はブラウザ独自の設定です。それでも一致しない場合は、クライアントのDNSルール、仮想NICが引き継ぐ範囲、システムのネットワークサービスの優先順位を確認します。

システムキャッシュと古い名前解決結果

OSとブラウザは、どちらも名前解決の記録をキャッシュすることがあります。回線を切り替えた後も既存の接続が再利用され、新しい出口が有効になっているのに、ページ上では古い経路を使っているように見える場合があります。テスト前に対象ページを閉じ、システムのDNSキャッシュを消去してブラウザを再起動すると確認しやすくなります。日常的に頻繁な消去は不要で、経路の変化を診断するときだけ実施してください。

Windows:
ipconfig /all

macOS:
scutil --dns

Linux:
resolvectl status

これらのコマンドは、システムが現在認識している名前解決設定を確認するためのものです。すべてのアプリがその設定に従うとは限りません。コマンドの結果は、クライアントログ、ブラウザ設定、実際のDNS問い合わせ結果と合わせて判断する必要があります。

アプリ別に検証する:ブラウザが正常でもすべてが正常とは限らない

出口とDNSの確認が終わったら、実際に使うアプリを選び、1つずつ検証します。対象にはブラウザ、ターミナルのダウンロードツール、デスクトップクライアント、動画アプリ、UDPを必要とするリアルタイム通信アプリなどが含まれます。重要なのは、すべてのアプリで画面表示を完全に同じにすることではなく、それぞれの接続が想定した出方向けに割り当てられているかを確認することです。

最も簡単な方法は、まずクライアントログで新しい接続を確認することです。対象アプリを起動して明確なネットワーク操作を1回実行し、該当するドメインやアドレスがプロキシ、直接接続、ブロックのどれに割り当てられたかを確認します。ログにそのアプリのリクエストがまったく現れない場合、クライアントの引き継ぎ範囲外であるか、クライアントが現在処理していないネットワークプロトコルを使っている可能性があります。

システムプロキシとトンネルモードの違い

システムプロキシは、プロキシ設定に従うWebアプリやデスクトップソフトに適しており、設定も比較的簡単です。ただし、すべてのプロセスをカバーできるとは限りません。トンネルモードは仮想ネットワークインターフェースでシステム通信を受け取るため、統一的に引き継ぎたい場面に向いています。トンネルモードを有効にするときは、システム権限、デフォルトルート、DNSの処理方法、LANアクセスルールを確認してください。

システムプロキシでは正常なのにトンネルモードで異常が出る場合は、仮想NICの作成、他のVPNやセキュリティソフトによるルートの書き換え、クライアントによる現在のネットワークインターフェースの除外を確認します。反対に、トンネルモードは正常でシステムプロキシが機能しない場合は、OSのプロキシ設定が正常に反映されているか、アプリが対応するプロキシ形式をサポートしているかを確認します。

分流ルールが検証結果に与える影響

ルールモードでは、ドメイン、アドレス範囲、プロセス名、ルールセットなどに基づいて出方向を選択します。ルールの判定を誤ると、クライアントは接続正常と表示していても、対象リクエストが直接送信されることがあります。特に、ドメインがリダイレクトされた場合、アプリがCDNのドメインへ接続する場合、ルールがメインドメインだけを対象にしている場合は、アクセス経路が想定と異なる可能性があります。

ルールの問題を診断するときは、一時的にグローバルプロキシへ切り替えて比較できます。対象アプリがグローバルモードで復旧し、ルールモードで失敗するなら、ルールの順序、ドメインの一致条件、最終的なフォールバック先を確認します。調査後は必要な分流設定に戻せばよく、グローバルモードを常用する必要はありません。

UDPとQUICベースの接続

一部のWebサイト、リアルタイム通信、ゲームはUDPを使用します。クライアントがTCPしか引き継げない場合や、現在のネットワークがUDPを制限している場合、アプリが別の転送方式へフォールバックすることもあれば、直接失敗することもあります。Hysteria2とTUICはQUICおよびUDPをベースとしているため、ノードのハンドシェイク、基盤ネットワークへの到達性、クライアントのUDP転送能力が結果に影響します。

Trojan、VMess、VLESS、Shadowsocksの挙動も、クライアントの実装、トランスポート層の設定、ルーティング方式によって変わります。プロトコル名だけでシステム通信をカバーできるか判断することはできません。プロトコルはクライアントとサーバー間のデータ転送方法を決め、システムプロキシ、仮想NIC、分流ルールがどのアプリのデータをその経路へ入れるかを決めます。

テスト対象 確認する項目 異常の手がかり
ブラウザ 出口、DNS、ブラウザ独自のプロキシ 拡張機能または暗号化DNSがシステム設定を迂回している
コマンドラインツール 環境変数のプロキシを読み取るか、トンネルに入るか ターミナルの出口がブラウザと一致しない
デスクトップアプリ プロセスルールとアプリ内のネットワーク設定 ログに該当する接続がない
リアルタイム通信アプリ UDPの引き継ぎと接続のフォールバック Webは正常だがリアルタイム接続に異常がある

プロトコル、サブスクリプション、ノードの種類が結果に与える影響

サブスクリプションリンクには通常、ノード名、サーバーパラメータ、プロトコルの種類、トランスポート設定が含まれます。サブスクリプションをクライアントへ読み込むと、クライアントは情報をローカル設定へ変換します。読み込みに成功したことは、クライアントが内容を読めたことを示すだけで、選択したノードが接続済みであることや、ルーティングルールが現在のプラットフォームに自動的に適合することを意味しません。

サブスクリプション更新後に突然使えなくなった場合は、まず現在のノードが残っているか、プロトコルの項目がクライアントに対応しているか、更新によってローカルの分流設定が上書きされていないかを確認します。クライアントによっては、ノード、プロキシグループ、DNS、ルーティングルールを別々に管理します。新しいノードを選んだのに古いプロキシグループを使い続けていることも、結果が一致しないよくある原因です。

プロトコルごとの確認ポイント

直接接続、中継、IEPL専線

直接接続の回線は通常、利用者のネットワークからリモートノードへ直接接続するため、経路がパブリックネットワークの変化に左右されやすくなります。中継回線では、まず中継入口へ接続し、その後中継経路から出口ノードへ送ります。制御しにくいパブリックネットワークの経路を一部減らせますが、実際の効果は入口、基盤ネットワーク、出口設定に左右されます。

IEPL専線は通常、国際間の企業向け専用線で伝送される回線の一種を指します。ただし、IEPLと表示されていても、利用者の端末から入口、入口から出口、出口からアクセス先までのすべての区間がパブリックネットワークを通らないとは限りません。検証ではノード名だけでなく、実際の出口、DNS経路、接続ログ、対象アプリの結果を基準にしてください。

直接接続、中継、専線のノードを切り替えた後は、同じ確認手順をもう一度実行することをおすすめします。回線の種類が変わると出口や伝送経路は変わりますが、アプリが引き継がれていない問題、DNS設定の誤り、分流ルールの競合が自動的に解決するわけではありません。

各プラットフォームの違いとトラブルシューティングの順序

Windowsクライアントでは、システムプロキシと仮想NICモードを同時に利用できることがよくあります。システムプロキシが正常に反映されているか、仮想NICドライバーが正常か、ネットワークインターフェースの優先順位が他のツールに変更されていないかが結果に影響します。まずシステムプロキシの状態を確認し、次にルーティングとDNS設定を確認して、最後に複数のアプリで比較します。

macOSでは、ネットワーク拡張機能とシステムプロキシに明確な権限制御があります。初めてトンネルを有効にするときにネットワーク拡張機能が許可されていないと、クライアントがノード設定を保存していても通信を引き継げないことがあります。ブラウザ、ターミナル、システムのネットワークサービスが異なるプロキシ環境を読み取る場合にも注意が必要です。

iOSのクライアントは通常、システムVPN設定を通じて通信を引き継ぎますが、オンデマンド接続、アプリルール、システムのプライバシー機能によってテスト結果が変わることがあります。ノードを切り替えた後は、再利用されている古い接続を観察するだけでなく、リクエストを新たに実行してください。特定のアプリだけ異常でブラウザが正常な場合は、そのアプリを完全に終了してから再起動します。

Androidでは、システムVPN権限、省電力設定、アプリ別プロキシ、常時接続設定の影響を受けます。クライアントがバックグラウンドでシステムに停止されると、画面には以前の状態が残っていても、新しいリクエストをトンネル経由で送れないことがあります。確認時は、システムのステータスバーに表示されるVPN状態、クライアントの実行状態、アプリ別リストが一致しているかを確認します。

Linuxでは、使用するデスクトップ環境、ルーティングツール、権限設定への依存度が高くなります。デスクトップのプロキシを設定しただけでは、すべてのシェルコマンドやバックグラウンドサービスに影響するとは限りません。仮想NICモードでは、インターフェースを正しく作成してルートを書き込む必要があります。コンテナや独立したネットワーク名前空間を使う場合、コンテナの通信がホストの経路を引き継ぐとも限りません。

クライアントは接続済みなのにアクセスできない場合の完全な確認手順

「接続済みなのに開けない」場合は、無作為にプロトコルを変更するより、決めた順序で確認するほうが効果的です。各段階の結果を記録すれば、ノードの障害、ネットワークの制限、ローカル設定の問題を切り分けやすくなります。

  1. 接続前の基準を記録する。クライアントを切断し、通常回線自体が利用できることを確認して、出口IPとDNSの問い合わせ経路を記録します。
  2. ノードを1つ固定して接続する。複数のノードを連続して切り替えないでください。クライアントに明確なハンドシェイクまたは接続応答が表示されるまで待ち、認証エラー、タイムアウト、伝送エラーがないか確認します。
  3. 出口IPを再確認する。出口が変わらない場合は、プロキシモード、仮想NICの権限、ルーティングルール、確認サイトが直接接続に一致していないかを確認します。
  4. DNSを再確認する。システムとブラウザが想定した名前解決経路を使っているかを確認し、キャッシュやブラウザ独自の暗号化DNSの影響を除外します。
  5. グローバルモードとルールモードを比較する。グローバルモードでは使えるのにルールモードで異常がある場合は、ルールの一致条件とフォールバック先を重点的に確認します。
  6. アプリを1つずつテストする。クライアントログに該当するリクエストが現れるか、最終的にプロキシ、直接接続、ブロックのどれへ入ったかを確認します。
  7. プロトコルとネットワークの互換性を確認する。UDPベースのプロトコルでハンドシェイクできない場合は、同じネットワークで別の利用可能な転送方式と比較し、基盤ネットワークの制限かどうかを判断します。
  8. 設定の競合を除外する。他のプロキシ、VPN、ブラウザ拡張機能、ルートを書き換えるネットワークツールを一時的に無効にしてから、接続を再確立します。
  9. サブスクリプションを再読み込みまたは更新する。クライアントがサブスクリプション内のプロトコルと項目に対応しているか、更新によってプロキシグループ、DNS、ローカルルールが変わっていないかを確認します。

いずれかの段階で正常に戻った場合は、さらに変更を加える前に現在の設定を保存してください。複数の項目を一度に変更すると、原因を特定しにくくなります。目的はステータスランプを緑にすることではなく、プロトコルがハンドシェイクでき、ルーティングが通信を引き継ぎ、DNSが設定に合い、対象アプリが想定した出口を得られる、再現可能な経路を構築することです。

最も信頼できる検証は、単一のテストページではありません。接続ログ、出口の結果、DNS経路、実際のアプリの挙動が一致していることが重要です。どれか1つでも食い違うなら、一部の通信がまだ想定どおり動作していないことを示します。

問題が解決したか確認する方法

修正後は、失敗したページだけを再試行するのではなく、基準状態から検証をやり直します。対象回線へ接続した後、出口IPは切断時と異なり、選択した出口と一致する必要があります。DNS問い合わせはクライアントの設定に合い、ブラウザ、ターミナル、主要アプリは分流ルールに従って適切な出方向へ進む必要があります。

ルールモードを有効にしている場合、ローカルサイトが直接接続のままで、指定した対象だけが回線を経由しても矛盾ではありません。これは分流の想定された結果です。有効かどうかを判断するときは、すべてのリクエストが同じ出口を表示することではなく、ルールの意図と実際の経路を比較します。明示的に除外したLANリソースについても、通常回線からアクセスできることを確認してください。

最後に一度切断して再接続し、結果を安定して再現できるか確認します。初回テストだけ成功し、再接続後に設定が失われる場合は、システム権限、スタートアップ項目、サブスクリプションのプロキシグループ、ネットワークインターフェース設定を引き続き確認します。1回だけページが開くことより、同じ操作で再現できる結果のほうが診断上の価値があります。

最終結論: VPNが有効かどうかは、実際の通信経路で判断します。出口IPはWebリクエストのリモート出口を確認し、DNS検査は名前解決の迂回を見つけ、アプリ別テストは引き継ぎ範囲を検証します。クライアントの「接続済み」は確認の出発点にすぎません。