VPN 初心者向け完全ガイド:接続が本当に有効か確認する方法

VPNはクライアント画面の「接続済み」だけでは有効と判断できません。出口IP、DNSの経路、システムルーティング、アプリの実際の通信を順に確認し、スプリットトンネリングのルールと照らし合わせることが確実です。

「接続済み」でも、すべての通信が経路を通るとは限らない

クライアントに接続成功と表示されても、通常はローカルのプログラムがリモートノードとのハンドシェイクを完了した、またはローカルプロキシポートが起動したことを示すだけです。ブラウザ、デスクトップアプリ、システムサービスのすべてがこの経路を使っていることを、それだけで証明するものではありません。最終的な結果は、システムプロキシ、仮想ネットワークインターフェース、ルーティングテーブル、DNS設定、分割接続ルール、アプリ自身のネットワーク実装にも左右されます。

一般的な接続方式は、システムプロキシ、仮想ネットワークインターフェースによる引き受け、アプリ内プロキシに分けられます。システムプロキシは、システム設定に従うアプリへプロキシアドレスを提供しますが、一部のプログラムはこれを迂回することがあります。仮想ネットワークインターフェース方式は、より広範なシステム通信を引き受けられる場合が多い一方、ルーティングルール、除外リスト、ローカルネットワーク設定の影響を受けます。アプリ内プロキシは指定したアプリだけに適用され、ほかのプログラムが従来の出口を使うのは正常です。

確認できた結果 考えられる意味 次に確認する項目
クライアントは接続済みだが、出口が変わらない アプリがプロキシを使っていない、または対象が分割接続で直接接続になっている システムプロキシ、仮想ネットワークインターフェース、ルールの適用状況を確認する
出口は変わったが、DNSはローカルネットワークを経由している データ通信とドメイン名前解決が異なる経路を使っている クライアントのDNSとブラウザの暗号化DNSを確認する
ブラウザでは有効だが、ほかのアプリでは有効にならない ブラウザだけにプロキシが設定されている、またはほかのアプリがシステムプロキシを迂回している アプリ別設定と仮想ネットワークインターフェース方式を確認する
一部のサイトは経路を通るが、別のサイトは直接接続になる ルールによる分割接続が機能している、またはルールの対象範囲が不十分 ドメイン、IP、最終的なフォールバックルールを確認する

まず接続前後の出口IPを比較する

出口IPは最も分かりやすい確認項目です。始める前に経路を切断し、ネットワークを個別に引き受ける可能性のあるブラウザ拡張機能やほかのプロキシツールを停止します。信頼できるIP確認ページを開き、現在の通信事業者とおおまかな地域を記録してください。その後、対象の経路に接続してページを更新し、出口情報が変わったか確認します。

別の地域のノードを選んだ場合、出口地域は通常、選択した経路の出口と一致します。ただし、IPデータベースの更新には遅れがあり、市区町村レベルの位置情報にも誤差があります。都市名だけを根拠に判断しないでください。より重要なのは、IPアドレスそのもの、ネットワークの所属、接続前後の変化です。

次の順番で操作するのがおすすめです

  1. 現在の経路を切断し、ほかのプロキシや仮想ネットワークインターフェースが動作していないことを確認します。
  2. ブラウザで直接接続時の出口情報を記録します。
  3. テストする経路に接続し、クライアントのハンドシェイクが完了するまで待ちます。
  4. 古いタブのキャッシュ結果だけを読み取らないよう、確認ページを開き直します。
  5. 普段使うブラウザと対象アプリでそれぞれテストし、結果が一致するか確認します。

出口がまったく変わらない場合は、まず現在のモードを確認します。システムプロキシモードでは、ブラウザが独自のプロキシ拡張機能を有効にしていないか、システム設定を無視していないかで結果が変わります。仮想ネットワークインターフェースモードでは、インターフェースが作成され、ルートを取得していることを確認してください。ルールモードでは、IP確認サイト自体が直接接続に設定されている可能性があります。その場合は診断のため一時的にグローバルモードへ切り替え、経路が利用できることを確認してから分割接続に戻します。

出口が変わっても、すべての接続が引き受けられたとは限りません。たとえばブラウザのウェブリクエストは経路を通っていても、特定のデスクトッププログラムは直接接続のままかもしれません。確認時は実際に使いたいアプリを対象にし、1つのウェブページの結果だけでシステム全体を推測しないでください。

DNS名前解決が想定した経路を通っているか確認する

ウェブサイトへアクセスする前に、端末は通常DNSを使ってドメインをIPアドレスへ解決します。ウェブ通信は経路を通っていても、DNSクエリがローカルネットワークに送られていると、外部から見える名前解決元が出口地域と一致しない場合があります。これは一般にDNSリークと呼ばれます。接続失敗につながるとは限りませんが、アクセスしたドメインの名前解決リクエストが露出したり、地域判定が混乱したりする可能性があります。

DNSを確認するときは、ウェブの出口だけでなく、テストページに表示される名前解決サービスと地域を確認します。結果が明らかにローカルネットワーク由来なら、クライアントでリモートDNS、暗号化DNS、DNSハイジャック対策機能が有効になっているか確認してください。名称はクライアントごとに異なりますが、目的はドメイン名前解決を現在の接続ポリシーに従わせることです。

ブラウザの暗号化DNSがテスト結果を変えることがある

最新のブラウザでは独自の暗号化DNSが有効になり、OSの設定に完全には従わない場合があります。その場合、テストページに表示される名前解決サービスは、VPNクライアントが選択したものとは限りません。原因を切り分けるには、ブラウザが一時的にシステムDNSを使うよう設定してから、もう一度テストします。結果が変われば、違いの原因はブラウザ自身の設定であり、トンネルが確立していないわけではありません。

「パブリックDNSを使うこと」と「DNSリークが起きること」も区別する必要があります。クライアントが暗号化されたパブリックDNSを明示的に指定していても、リクエストが管理された経路を通っていれば、名前解決サービスの名称が経路のブランドと異なるだけでリークとは判断できません。重要なのは、名前解決リクエストが想定した経路を迂回していないか、ローカルネットワークへ戻っていないか、そして結果が分割接続を壊していないかです。

DNSと分割接続ルールは連携させる必要がある

ドメインベースのルールでは、名前解決の段階でドメイン情報を保持する必要があります。アプリがキャッシュ済みのIPを直接使ったり、DNS結果が別のプログラムによって書き換えられたりすると、クライアントはIPルールだけで行き先を判断することがあります。仮想ネットワークインターフェースによる引き受けを有効にすると、一部のクライアントは仮想DNSマッピングを使い、接続を元のドメインへ戻してルールを正しく適用します。実装はクライアントによって異なるため、意味を理解しないまま複数のDNS機能を組み合わせないでください。

ルーティングテーブル、グローバルモード、分割接続ルールを確認する

出口とDNSの結果が食い違う場合、次はルーティングを確認します。ルーティングテーブルは、対象IPをどのゲートウェイまたは仮想ネットワークインターフェースから送信するかを決めます。ルールエンジンは、さらに上位の層でドメイン、アプリ、ポート、アドレス範囲などを基に、直接接続、プロキシ、拒否を選択することがあります。

グローバルモードは通常、対応するより多くの通信を経路へ送るため、診断に適しています。ただし、すべての低レベル通信を無条件に引き受けるわけではありません。ローカルネットワークのアドレス、クライアント自身がノードへ接続する通信、システムが予約している通信などは、ルーティングループを避けるため除外が必要になることがあります。ルールモードは日常利用に向いていますが、トラブルシューティングでは対象がどのルールに一致したかを把握する必要があります。

システムのネットワーク状態を確認する一般的なコマンド

以下のコマンドは現在の設定を読み取るだけで、ネットワークを変更しません。出力が多い場合は、デフォルトルート、仮想ネットワークインターフェース、DNSサービス、インターフェースの優先順位を重点的に確認します。

Windows
route print
ipconfig /all

macOS
netstat -rn
scutil --dns

Linux
ip route
resolvectl status

Windowsクライアントがシステムプロキシを使っている場合は、システムのネットワーク設定でプロキシが有効か確認できます。仮想ネットワークインターフェースを使っている場合は、ルーティングテーブルとアダプター一覧から、クライアントが作成したインターフェースを探します。macOSでは、システム拡張機能またはネットワーク拡張機能に権限が必要です。権限の設定が完了していないと、クライアントが待機状態に入っていても通信を実際に引き受けられません。Linuxでは、NetworkManager、systemd-resolved、クライアントのDNS設定が互いに上書きし合う関係にも注意してください。

分割接続の確認では、最終的な適用結果を見る

ルールは通常、具体的な条件から最終的なフォールバックへ段階的に適用されます。ドメインルールがIPルールより優先され、アプリルールが一般的なドメイン判定を上書きすることもあります。クライアントに接続ログがある場合は、対象ドメインまたは対象IPを検索し、最終的にプロキシ、直接接続、拒否のどれが選択されたか確認します。ログに対象の記録がない場合、アプリがそのクライアントを経由していないか、接続が古いセッションを再利用している可能性があります。

ブラウザは接続を再利用し、QUICなどUDPベースの通信を使うこともあります。ルールを変更しても、古い接続がすぐに新しい経路で再構築されるとは限りません。関連するタブを閉じ、対象アプリを終了してから開き直すほうが、更新を繰り返すよりルール変更の検証に適しています。クライアントがTCPだけをプロキシし、対象アプリが主にUDPを使っている場合は、ウェブ閲覧は正常でもリアルタイム通信に問題が出ることがあります。

プロトコル、サブスクリプションのインポート、経路タイプが結果に与える影響

サブスクリプションリンクはネットワークプロトコルではなく、通常はサービス側で管理されるノード設定の集合です。クライアントがサブスクリプションをインポートすると、サーバーアドレス、ポート、プロトコル、暗号化または認証パラメーター、経路名を読み取ります。サブスクリプションの期限切れ、リンクの不完全なコピー、クライアントでの更新漏れにより、ノード一覧とサービス側の状態が一致しなくなることがあります。

Shadowsocksは暗号化プロキシプロトコルで、一般的なクライアントではローカルプロキシとして使うか、仮想ネットワークインターフェースに通信を引き継がせます。VMessとVLESSは異なる転送方式および認証方式であり、設定項目を相互に流用できません。TrojanはTLSベースの接続に近い構成ですが、証明書、ドメイン、転送パラメーターを一致させる必要があります。Hysteria2とTUICはUDPベースの通信環境を重視しており、UDPの到達性とクライアントの互換性が求められます。同じプロトコル名でも、どのクライアントにも直接インポートできるとは限らないため、対応する設定形式を確認してください。

サブスクリプションのインポート後に確認する情報

  • ウェブページのアドレスや説明文を誤って設定として使わず、サブスクリプションリンクをインポートしていることを確認します。
  • サブスクリプションを手動で更新したら、ノード名とプロトコルが正常に表示されるか確認します。
  • ルーティングが相互に上書きされないよう、複数のクライアントにシステムプロキシや仮想ネットワークインターフェースを同時に引き受けさせないでください。
  • プロトコルを切り替えてテストするときは、ノードの地域とアプリの環境を同じに保ち、一度に変更する条件を増やしすぎないようにします。
  • クライアントが認証失敗を報告した場合は、キー項目を推測で変更せず、サブスクリプションを再取得してください。

経路タイプも通信経路に影響しますが、名称だけで接続の有効性を判断することはできません。直接接続は通常、端末がリモートの出口へ直接接続する方式で、経路は単純ですが、実際の状態は利用中の通信事業者や国際ネットワークの変動に左右されます。中継経路では、まず中継入口へ接続してから出口へ転送するため、異なるネットワーク間の経路を調整しやすくなります。IEPL専線は通常、企業向け専線リソースを重要な国際区間の通信に利用する方式を指しますが、端末から入口まで、また出口から対象サービスまでは実際のネットワークを経由します。

したがって、IEPL、中継、直接接続は経路の構成方式を示すものであり、クライアントの状態を証明するものではありません。どの方式でも、出口、DNS、ルーティング、対象アプリのテストで結果を確認してください。速度テストの結果が良好でも、実際のアプリでの接続確認の代わりにはなりません。

プラットフォームごとに通信の引き受け方式は異なる

Windows、macOS、iOS、Android、Linuxはいずれもプロキシやトンネルを構築できますが、権限モデルと通信を引き受ける範囲が異なります。同じサブスクリプションでもプラットフォームによって結果が違う場合、必ずしもノード障害とは限りません。よくある原因は、クライアントのモード、システムの制約、DNSの実装の違いです。

WindowsとmacOS

Windowsでは、まずシステムプロキシと仮想ネットワークインターフェースモードを区別します。システムプロキシは理解しやすい一方、システム設定に従わないプログラムは直接接続することがあります。仮想ネットワークインターフェースモードはより広い範囲をカバーしますが、ドライバー、ルーティング、DNSが正常に連携する必要があります。スリープやネットワーク切り替え後に異常が出た場合は、ノードを何度も切り替えるのではなく、接続を切断して仮想ネットワークインターフェースを再構築してください。

macOSのクライアントは、ネットワーク拡張機能を通じて通信を引き受けることがよくあります。初回実行時に、システムから関連設定の承認を求められる場合があります。権限が拒否されると、アプリの画面は正常に開いても接続を完了できません。会社や学校が管理する端末では、構成プロファイルによってネットワーク拡張機能が制限されることもあり、この場合はシステム権限のレベルで対応する必要があります。

iOSとAndroid

モバイルOSでは通常、システムVPNインターフェースを通じて通信を引き受けます。同時に主要な通信を制御できるネットワーク設定は、一般に現在有効なもの1つだけです。ほかの広告ブロック、DNSツール、企業ネットワーク設定が競合することもあります。アプリをバックグラウンドへ移した後は、省電力機能が長時間接続に影響する場合があるため、クライアントログで経路の切断なのか、アプリの一時停止なのかを確認してください。

Androidではアプリ別プロキシ機能がよく使われます。一部のアプリだけを選択した場合、選択していないプログラムが直接接続を続けるのは想定どおりです。iOSで対象アプリの範囲は通常、クライアントとシステムのネットワーク拡張機能によって決まります。トラブルシューティングでは、まず標準の引き受け方式を使い、その後で除外ルールを段階的に追加してください。

Linux

Linuxは環境による違いが大きく、デスクトッププロキシ、環境変数、透過プロキシ、仮想ネットワークインターフェースが同時に存在することがあります。ターミナルのプログラムがデスクトップのプロキシ設定を読み取るとは限らず、コンテナが独立したネットワーク名前空間を使う場合もあります。ブラウザでは有効なのにコマンドラインツールでは有効にならない場合は、プログラムがプロキシ環境変数を読み取っているか確認するか、システムルーティングをカバーできる方式へ切り替えてください。

「接続済み」なのに通信できない場合の体系的な確認手順

トラブルシューティングの要点は、一度に1つの変数だけを変更することです。ノード、プロトコル、DNS、クライアントを頻繁に変えると、原因を特定しにくくなります。まずローカルの状態から始め、サブスクリプション、ハンドシェイク、ルーティング、対象アプリの順に確認することをおすすめします。

  1. ツールの競合を排除:ほかのプロキシ、ネットワークフィルター、独立したDNSツールを終了し、現在のクライアントだけを残します。
  2. サブスクリプションを読み取れることを確認:サブスクリプションを更新し、ノードが完全に表示されるか確認します。無効になったローカルキャッシュ設定は使わないでください。
  3. 接続ログを確認:名前解決の失敗、接続タイムアウト、認証失敗、証明書エラー、ローカルポートの競合を区別します。
  4. 通信を引き受けるモードを切り替え:システムプロキシが機能しない場合は対象アプリが対応しているか確認し、仮想ネットワークインターフェースに問題がある場合は権限とルーティングを確認します。
  5. 出口とDNSを検証:それぞれ個別にテストし、出口が正常だからDNSも正常だと判断しないようにします。
  6. ルールの適用結果を確認:対象のドメイン、IP、アプリが最終的に経路を選択しており、直接接続になっていないことを確認します。
  7. アプリの接続を再構築:対象アプリを完全に終了してから開き直し、古いセッションやキャッシュの影響を取り除きます。

一般的なログメッセージの読み方

名前解決の失敗は、DNS、ドメインの入力ミス、現在のネットワークに関係することが多くあります。接続タイムアウトは、ノードへ到達できない、UDPが制限されている、ネットワーク経路が不安定といった原因が考えられます。認証失敗はサブスクリプションのパラメーター不一致と関係することが多く、証明書エラーはシステム時刻、サーバー名、TLS設定の不一致を示す場合があります。ローカルポートの競合は、クライアントが待ち受けようとしているポートを別のプログラムが使用していることを意味します。

ログの最後の1行だけを切り取らないでください。多くのクライアントは、上流のエラーを記録した後に接続終了を記録するため、本当の原因は終了メッセージより前に現れることがよくあります。サポートへ連絡する際は、OS、クライアント名、通信を引き受けるモード、プロトコルの種類、エラー文、問題が発生した手順を伝えると役立ちます。ただし、サブスクリプションリンク、キー、トークン、アカウント認証情報は隠してください。

経路を変更すべきタイミング

クライアントがトンネルを正常に確立でき、ルーティングルールも正しいのに、対象アプリが接続に失敗し続ける場合は、同じ種類の経路へ切り替えて比較できます。切り替え後に復旧したなら、原因は元の経路や出口にある可能性が高くなります。すべての経路で同じ現象が出る場合は、まずローカルネットワーク、クライアントモード、DNS、対象サービスの状態を確認してください。

経路を変更した後は、ノード名だけでなく出口を必ず再確認します。クライアントによってはノード切り替え時に古い接続を保持し、対象アプリも元のセッションを再利用することがあります。古い経路を切断してから新しい経路へ接続し、対象アプリを再起動すると、より明確に判断できます。

接続確認の要点

VPNが有効かどうかは、「経路が確立しているか」と「アプリがその経路を使っているか」の2つの側面から判断します。前者はハンドシェイク、サブスクリプション、クライアントの状態を確認し、後者は出口IP、DNS、ルーティング、ルールの適用結果、対象アプリの実際の動作を確認します。この順番で確認すれば、「接続済みなのにアクセスできない」「ブラウザは正常だが、ほかのアプリに問題がある」といった多くのケースを具体的な箇所まで切り分けられます。

日常的に分割接続モードを使う場合、一部の通信が直接接続のままでも障害とは限りません。重要なのは、国際接続が必要な対象が想定した経路に入っているかです。トラブルシューティングが終わったら通常のルールへ戻すことで、ローカルアクセスと国際経路を両立し、グローバルモードを長期間使ってルール設定の問題を見えにくくする事態を避けられます。

GreenVPN

経路接続から出口確認まで

サブスクリプションを取得してクライアントへインポートし、実際の用途に合わせて経路を選択できます。メールアドレスは必要ありません。

無料で始める