なぜ「接続済み」は通信が回線を通ったことを意味しないのか
クライアントを開いてステータスが「接続済み」になっても、それは端末と回線サーバーの間にトンネルが確立したことだけを意味します。通信が実際にそのトンネルに入っているかどうかは、クライアントの動作モード、分流ルール、アプリ自身のネットワーク挙動によって決まり、この3つは「接続済み」とは別の話です。
動作モードは大きく2種類あります。システムプロキシモードはOSのプロキシ設定を書き換えるだけで、その設定を読むアプリだけがリクエストをトンネルに渡します。ブラウザは通常読みますが、デスクトップアプリの一部は読みません。TUN / 仮想NICモードはシステムに仮想ネットワークアダプターを作成してルーティングテーブルを引き継ぐため、システムプロキシを読まないアプリを含め、ほとんどのアプリの通信がトンネルに入ります。同じサブスクリプションでも、2つのモードでは検証結果がまったく変わることがあります。
第2の層は分流ルールです。ルールリストはドメインやIPを「直接接続」「プロキシ経由」「拒否」などのグループに分類します。対象ドメインが直接接続と判定されれば、トンネルが完全に正常でも、そのアクセスはローカル回線から出ていきます。ルールセットが古い、あるいはクライアントごとに内蔵の既定ルールが違うと、「同じサイトなのに、回線を通る端末と通らない端末がある」という状態になります。
第3の層はアプリ自身にあります。独自のネットワークスタックを内蔵し、システムプロキシを読まないアプリがあります。IPv6を優先するアプリもあれば、トンネルがIPv4しか引き継いでいないこともあります。UDPベースの通信(QUIC、音声通話、一部のゲーム)はTCP転送しか対応していない場合、フォールバックしたり直接接続になったりします。こうしたケースでは「クライアントは接続済みなのに、アプリはローカル回線のまま」という状態になります。
実際に効いているかどうかは、クライアントの表示ではなく、3つの外部証拠で判断します。出口IPの所在地、DNSリゾルバーの所在地、そして目的のアプリが実際に使えるかどうかです。
3ステップの自己点検:出口IP → DNS → アプリの実測
3つのステップは「外側から内側へ」の順に並んでいます。まず通信がトンネルに入っているかを確認し、次にトンネル内の名前解決がクリーンかを確認し、最後に目的のアプリが実際の場面で使えるかを確認します。
- 切断時と接続時にそれぞれ出口IPを確認し、国・地域とプロバイダの帰属を比べます。
- DNS解決がどのサーバーで行われているかを確認し、名前解決リクエストがローカルのプロバイダに届いていないことを確かめます。
- 実際に使うアプリを1つずつ実測します。適当なWebページを開いて終わりにしないこと。
3つのステップは段階的な関係にあり、どれか1つでも通らなければ、「接続済み」がまだ「有効」に変わっていないということです。どの段階でつまずいているかを特定してから、回線の変更、モードの変更、ルールの更新のどれを行うかを決めます。
ステップ1:出口IPを確認し、地域が選択した回線と一致するかを見る
出口IPを調べるツールはたくさんありますが、ポイントは「比較」です。まず接続を切った状態で1回調べて結果を記録し、次に回線に接続してシークレットウィンドウでもう1回調べ、2つを並べて見比べます。コマンドラインの方法は、何度も検証する場面に向いています。
# 現在の出口IPを確認(Windows / macOS / Linux 共通)
curl -s https://ifconfig.me
# 地域とプロバイダ情報が必要な場合は、JSONを返す照会APIを使う
curl -s https://ipinfo.io/json
Webページのほうが分かりやすい方法です。任意のIP確認ページを開き、IPv4とIPv6の両方を見ます。片方しか変わっていなければ、もう片方はローカル回線のままです。
| 接続後に表示される出口 | 意味 | 対処 |
|---|---|---|
| 選択した回線の国・地域と一致 | 通信はトンネルに入っている | ステップ2へ進む |
| ローカルのプロバイダと地元都市のまま | 通信がトンネルに入っていない | 動作モードと分流ルールを確認 |
| 選択した国だが、都市が回線の表記と異なる | 出口プールの割り当てによるもので、正常な動作 | 対処は不要 |
| IPv4は変わったが、IPv6はローカルアドレスのまま | IPv6が引き継がれておらず、リークしている | IPv6の引き継ぎを有効にするか、一時的にOSのIPv6を無効化 |
IPを調べる前に、ブラウザのプロキシ系拡張機能をオフにし、シークレットウィンドウで確認ページを開き直します。拡張機能のプロキシはシステムプロキシを上書きし、ページキャッシュが前回の結果を見せてしまうこともあります。
ステップ2:DNS解決を確認し、リークがないか確かめる
DNSリークとは、Webの通信はトンネルを通っているのに、ドメインの名前解決リクエストはローカルのプロバイダのDNSに送られ続けている状態です。これには2つの影響があります。1つは、アクセスの意図がローカルのリゾルバーに知られてしまうこと。もう1つは、解決結果がローカルに最も近いノードを指し、配信ラインナップの不一致や速度異常を招くことです。DNSリークはクライアントを切断させないため、接続状態を見ているだけでは絶対に気づけません。
確認方法は2つあります。ブラウザでDNSリーク検出ページを開くと、今回の名前解決に使われたサーバーとその所在地が一覧で表示されます。コマンドラインでリゾルバーのアドレスを見る方法でも同じように判断できます。
# macOS / Linux:リゾルバーを確認
dig example.com | grep SERVER
# Windows:リゾルバーと解決結果を確認
nslookup example.com
判断基準はシンプルです。リゾルバーの所在地が回線の地域と一致しているか、トンネル内部のDNSアドレスとして表示されている必要があります。ローカルのプロバイダのリゾルバーが表示されているなら、名前解決リクエストはトンネルを通っていません。
DNS設定を変更したり回線を切り替えたりした後は、まずOSのDNSキャッシュをクリアしてから再確認します。そうしないと古い結果を見続けることになります。
# Windows
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux(systemd-resolved)
sudo resolvectl flush-caches
ステップ3:アプリ別に検証し、ブラウザだけで判断しない
ブラウザはシステムプロキシ設定を読むため、最もプロキシを通しやすいアプリです。しかし実際の使い勝手を決めるのは、多くの場合ほかのアプリです。検証は実際の利用シーンに沿って行い、適当なWebページを開いただけで合格にしないこと。
| アプリの種類 | 確認する操作 | 有効なときの状態 |
|---|---|---|
| ブラウザで海外サイトを閲覧 | 目的のサイトを開いてログイン | ページが正常に表示され、地域表示が回線と一致 |
| ストリーミングの再生ページ | 再生ページを開いて1分ほど再生 | 配信ラインナップが回線の地域と一致し、再生が途切れない |
| AIツール | 長めの会話を1回行う | セッションが維持され、地域制限の表示が出ない |
| アプリストア / OSのアップデート | ストアの地域とダウンロード元を確認 | 地域が回線の地域と一致 |
コマンドラインと開発ツールは別途検証
gitやパッケージマネージャーなどのコマンドラインツールは、既定ではシステムプロキシを読みません。HTTP_PROXY / HTTPS_PROXY 環境変数を設定するか、TUNモードに切り替えて仮想NICに引き継がせる必要があります。確認方法はブラウザと同じで、コマンドラインで出口IPを1回調べ、ブラウザで見た結果と比べます。両者が一致しなければ、どちらかがトンネルを通っていません。
「つながっているように見えて実は通っていない」よくあるケース
以下はトラブルシューティングで最もよく見られる現象です。「現象 → 原因 → 対処」に沿って当てはめてください。
| 現象 | よくある原因 | 対処 |
|---|---|---|
| ブラウザだけローカル地域と表示され、他のアプリは正常 | ブラウザにプロキシ系拡張機能が入っており、システムプロキシを上書きしている | 拡張機能をオフにして再検証 |
| ブラウザは正常だが、デスクトップアプリで地域不一致の表示が出る | そのアプリがシステムプロキシを読まない | TUNモードに切り替えるか、アプリ内で個別にプロキシを設定 |
| 接続直後は使えるが、しばらくすると使えなくなる | 分流ルールが対象ドメインを直接接続と判定している、またはルールセットが古い | サブスクリプションとルールセットを更新して再検証 |
| ほとんどのサイトは正常だが、一部のサイトでローカルアドレスが表示される | そのサイトがIPv6を使っており、トンネルはIPv4しか引き継いでいない | IPv6の引き継ぎを有効にするか、一時的にOSのIPv6を無効化 |
| Webページは開けるが、音声通話 / ゲーム / QUICの通信が異常 | 現在のモードがUDP転送に対応していない | UDPに対応したプロトコルまたは回線タイプに切り替える |
| 別のクライアントに変えると結果が違う | 両端で既定のモードとルールセットが一致していない | モードとルールセットを揃えてから比較し直す |
クライアントを変えると結果が変わるのはなぜか
サブスクリプションのリンクが運ぶのは回線情報だけです。サーバーアドレス、ポート、プロトコルパラメータであり、「どう使うか」というポリシーは含まれません。同じサブスクリプションを別のクライアントに読み込ませても、既定のモードはグローバルだったりルールだったり直接接続だったりします。ルールセットも、クライアント内蔵のものと配布元のものが併用され、マッチングの順序が違えば結果も変わります。
プロトコルの違いも検証結果に影響します。Shadowsocks、VMess、Trojan、VLESSはTCPが中心で、実装によってはUDP転送に対応します。Hysteria2、TUICはQUICベースで本質的にUDPを使うため、UDPが制限されたネットワークでは接続できない、あるいは不安定になることがあります。出口IPとDNSの2ステップは通っているのに、特定の種類のアプリだけ異常が出る場合は、回線そのものよりプロトコルとUDP対応を疑ってください。回線タイプ(直接接続、中継、IEPL専用線)の違いについては、ノードページの説明を参照してください。
プラットフォームによっても違いがあります。デスクトップでは仮想NICを作ってすべての通信を引き継げます。モバイルはOSの制約を受け、通常は構成プロファイル単位かアプリ単位での引き継ぎになります。ルーターはネットワーク全体を引き継ぎますが、DNSも転送されているかを別途確認する必要があります。
有効かどうかは、出口IP、DNS解決、目的のアプリの3つが同時に通っているかで判断します。クライアントの表示や、たまたま1つのWebページが開けたかどうかだけで結論を出すと、誤判定につながります。
再利用できるチェックリスト
ここまでの手順を1枚のチェックリストにまとめました。端末、回線、クライアントを変えたときは、この順番でひととおり確認してください。クライアントへの読み込み手順の詳細は使い方ガイドをご覧ください。
- ✅ 接続を切り、ローカルの出口IPとDNSリゾルバーを記録して比較用の基準にする
- ✅ 回線に接続したら、シークレットウィンドウで出口IPを再確認し、選択した回線の地域と一致するか確かめる
- ✅ IPv6アドレスも同時に確認し、トンネルをすり抜けていないか確かめる
- ✅ DNSキャッシュをクリアしてから、リゾルバーの所在地を再確認する
- ✅ 実際に使うアプリを1つずつ検証する。ブラウザだけで済ませない
- ✅ 回線、クライアント、ルールセットを変更したら、この手順をもう一度ひととおり行う
この手順は1回わずか数分で済みますが、「つながった気がする」と「有効だと確認できた」をはっきり分けられます。まずどのステップでつまずいているかを特定し、それから回線の変更、モードの変更、ルールの更新を決めるほうが、何度も再接続を繰り返すよりはるかに効果的です。
よくある質問
クライアントは接続済みなのにWebページが開けません。効いていないのでしょうか?
「接続済み」はトンネルの確立に成功したことだけを意味します。Webページが開かない場合は、分流ルールが対象ドメインを直接接続と判定している、名前解決リクエストがトンネルを通っていない、回線が混雑している、といった原因が考えられます。出口IP → DNS → アプリの3ステップで切り分ければ、どの段階の問題か特定できるので、そこからモードの変更、ルールの更新、回線の変更を判断してください。
1つのアプリだけ回線を通りません。回線を変える必要はありますか?
通常は不要です。まずそのアプリがシステムプロキシを読むか、独自のネットワークスタックを内蔵していないかを確認し、それからTUNモードへの切り替えやアプリ内での個別のプロキシ設定を検討してください。回線そのものの問題なら、特定の1つだけでなくすべてのアプリに影響します。
端末を変えたら、また検証し直す必要がありますか?
はい。検証結果は端末上の動作モード、ルールセット、DNS設定に左右され、アカウント自体とは関係ありません。同じサブスクリプションを新しい端末に読み込んだら、3ステップの自己点検をもう一度行うことをおすすめします。特にモバイルとデスクトップを行き来する場合は重要です。
モバイルとデスクトップで結果が違うのはなぜですか?
モバイルはバックグラウンド通信や仮想NICへの制約が多く、通常は構成プロファイル単位かアプリ単位での引き継ぎになります。デスクトップは端末全体を引き継げます。比較する前に、両端のモードとルールセットが一致しているかを確認してください。そうでなければ、結果に比較の意味はありません。