WindowsでVPNを使うとき、すべての通信をトンネルへ送る「グローバル接続」が常に最適とは限りません。海外サービスや特定の業務アプリだけVPN経由にし、国内サイト、プリンター、社内共有フォルダー、ゲームの音声通信などは通常接続に残したい場面があります。このように通信経路を分ける仕組みが、スプリットトンネルです。
ただし、スプリットトンネルはクライアントによって実現方法が異なります。アプリの実行ファイルを直接指定できるもの、ドメインやIPアドレスをルールで振り分けるもの、Windowsのプロキシ設定を利用するものがあり、画面に「分割トンネル」と表示されていても同じ動作になるとは限りません。設定前に、アプリ単位なのか、ドメイン単位なのか、DNSも同じ経路に送られるのかを確認することが重要です。
スプリットトンネルの仕組みと方式を理解する
スプリットトンネルでは、VPNクライアントが通信を判定し、条件に一致したパケットだけを仮想インターフェースへ送ります。一致しない通信は、通常のWi-Fiや有線LANのデフォルトルートへ流れます。判定条件には、アプリケーション、ドメイン名、IPアドレス、ポート、ネットワークアダプターなどがあります。
アプリ単位の方式では、実行ファイルやプロセス名を基準にします。ブラウザーだけをVPNへ送る設定は分かりやすい一方、ブラウザーが別プロセスで動かす更新機能、動画再生、通知、拡張機能の通信まで同じ扱いになるとは限りません。ランチャーから別の実行ファイルを起動するゲームや、補助サービスを使う業務アプリでは、関連プロセスの確認も必要です。
ルール単位の方式では、ドメインやIPアドレスを基準にします。Clash VergeのようなClash系クライアントでは、ルールプロバイダーや設定ファイルに基づいて、特定のドメインをProxy、Direct、Rejectなどへ振り分けます。これはアプリそのものを識別する機能ではありません。同じドメインへ接続する複数のアプリが同じルールの影響を受けるため、アプリ別設定とドメイン別設定を混同しないでください。
sing-box系のクライアントでは、routeルール、DNSルール、インバウンド、アウトバウンドを組み合わせて経路を設計します。WireGuardはAllowedIPsによる宛先単位のルーティングが基本で、標準的な設定だけでWindowsの実行ファイルごとに通信を分けるものではありません。Shadowrocketは主にiOS向けのクライアントなので、Windowsの設定例をそのまま移植できるとは考えないほうが安全です。
3
主な判定軸
5
確認する通信要素
1
最初に試す対象アプリ
2
基本の出口
上の数字は、設定時に意識したい考え方を整理したものです。主な判定軸はアプリ、ドメイン、IPアドレスです。確認する通信要素は、実行ファイル、子プロセス、DNS、ブラウザーの出口、接続ログです。最初から多くのアプリを登録せず、一つの対象で結果を検証してから範囲を広げると、誤設定を見つけやすくなります。
設定前にWindowsとクライアントを確認する
最初に、現在どのネットワーク機能が通信を制御しているかを確認します。VPNクライアント、Windowsのプロキシ、ブラウザー個別のプロキシ、セキュリティソフト、広告ブロッカー、仮想マシンのネットワークアダプターが同時に動いていると、スプリットトンネルの結果が分かりにくくなります。切り分けの間は、不要なVPN接続やプロキシを停止し、主に使うクライアントを一つに絞ります。
クライアントの設定画面では、次のような項目を探します。名称は製品によって異なりますが、意味を確認してから変更してください。
- ✅「全ての通信」「グローバル」「ルール」「ダイレクト」などの動作モードを確認する
- ✅ 分割トンネルがアプリ指定型か、ドメイン・IPルール型かを確認する
- ✅ Windowsのシステムプロキシを変更する設定があるか確認する
- ✅ DNSをVPN経由にするか、通常接続に残すかを確認する
- ❌ クライアントを二つ同時に起動して経路を比較する
- ❌ 「接続済み」の表示だけで分割トンネルが成功したと判断する
対象アプリの実行ファイルを登録するタイプでは、ショートカットの場所ではなく、実際の実行ファイルを選びます。タスクマネージャーで対象アプリを起動し、「詳細」からプロセス名を確認すると、登録すべきファイル名を特定しやすくなります。Microsoft Storeアプリやランチャー経由のアプリでは、通常のProgram Files配下と異なる場所にある場合があるため、クライアント側に「インストール済みアプリを選択」機能があればそちらを優先します。
また、アプリを通常接続へ送る設定と、アプリをVPNへ送る設定は別の意味を持ちます。VPNを常時接続し、指定したアプリだけ通常回線へ除外する方式もあれば、通常接続を基本にし、指定したアプリだけVPNへ入れる方式もあります。前者は漏れを防ぎやすい一方、登録漏れによって意図しないアプリまでVPNへ入ることがあります。後者は影響範囲を小さくできますが、関連ドメインの追加が必要になる場合があります。
Windowsクライアントでアプリ別ルールを登録する
アプリ指定に対応したWindowsクライアントでは、通常「Split tunneling」「Per-app routing」「アプリ分割」「除外アプリ」などの項目からルールを作成します。最初にモードを選び、次にアプリを追加し、最後に接続を再確立します。接続中に設定を変更できるクライアントでも、ルールが新しい接続にだけ適用されることがあるため、変更後は一度切断してから再接続してください。
- VPNクライアントを開き、現在の接続を切断します。
- 設定から分割トンネル、アプリルール、ルーティングなどの項目を開きます。
- VPNへ送るのか、VPNから除外するのか、動作モードを選択します。
- 対象アプリの実行ファイルを追加し、保存します。
- 必要に応じてWindowsのプロキシ設定やDNS設定の扱いを確認します。
- VPNへ再接続し、対象アプリと対象外アプリを別々にテストします。
アプリが起動時に別のランチャーを使う場合は、ランチャーだけを登録しても目的の通信がVPNへ入らないことがあります。逆に、ランチャーと本体の両方を登録すると、更新確認やログイン画面までVPN経由になる場合があります。対象アプリのメインプロセス、認証プロセス、更新プロセスを分けて考え、必要なものだけをルールに追加します。
除外方式を使う場合は、業務アプリを通常接続へ残したつもりでも、アプリが呼び出すブラウザーや認証サービスがVPN経由になる可能性があります。アプリが使用する通信先を確認できる場合は、Windowsのリソースモニター、クライアントの接続ログ、DNSログなどを組み合わせて確認します。ログに実行ファイル名が表示されないクライアントでは、ドメインルール方式のほうが管理しやすいこともあります。
Windows Defender Firewallの高度な設定を使ってアプリ単位の通信を制御する方法もありますが、これはVPNクライアントのスプリットトンネルとは別の機能です。送信を遮断するルールとVPNインターフェースへ送るルールを混同すると、通信を完全に止めてしまうことがあります。高度なファイアウォール設定を追加する場合は、既存のルールを記録し、変更前の状態へ戻せるようにしてから行ってください。
Clash系・sing-box系でドメインルールを組み立てる
Clash Vergeなどのルール型クライアントでは、アプリ名を登録する代わりに、通信先のドメインやIPアドレスをルールへ追加します。例えば、特定のサービスのWeb画面をVPN経由にしたい場合、そのサービスのメインドメインだけでなく、ログイン、API、画像、動画、認証に使われる関連ドメインが必要になることがあります。すべてを推測して登録するのではなく、接続ログを確認しながら不足分を追加してください。
ルールの順番も重要です。一般的なルール型設定では、上から評価し、最初に一致した条件が採用されます。広い範囲のDIRECTルールが先にあると、後ろに置いた対象ドメインのPROXYルールまで到達しません。反対に、広すぎるプロキシルールを先に置くと、意図しない通信までVPNへ送られます。変更前の設定を保存し、ルールの順序と優先度を確認します。
DNS処理にも注意が必要です。ドメインを通常のDNSで解決し、その結果だけをVPNへ送る構成と、DNS問い合わせ自体をVPN経由にする構成では、結果が異なることがあります。地域や名前解決に依存するサービスでは、アプリの出口だけでなく、DNSの出口も確認してください。DNSが通常接続に残る設計を選ぶ場合は、プライバシーと互換性のどちらを優先するかを決めておきます。
| 方式 | 判定の基準 | 向いている場面 | 注意点 |
|---|---|---|---|
| アプリ指定 | 実行ファイルやプロセス | 特定のWindowsアプリだけを振り分ける | 子プロセスや更新機能が別扱いになる場合がある |
| ドメインルール | ドメイン名やルールセット | ブラウザーや複数アプリで同じサービスを使う | 関連ドメインの登録漏れが起きやすい |
| IPルール | 宛先IPやCIDR | 固定されたサーバーや社内ネットワークを扱う | CDNやアドレス変更に弱い |
| プロキシ設定 | Windowsまたはアプリのプロキシ | HTTP通信を簡単に分ける | プロキシ非対応の通信は対象外になりやすい |
設定結果をテストし、問題があれば復旧する
テストでは、VPNの接続表示だけでなく、通信ごとの出口を確認します。まずVPNをグローバルモードで接続し、対象アプリが利用できることを確認します。次にスプリットトンネルを有効にし、VPNへ送るアプリと通常接続へ残すアプリを別々に試します。ブラウザーだけで確認する場合は、キャッシュや既存の接続が結果に影響することがあるため、新しいプライベートウィンドウや別のテストページを使うと比較しやすくなります。
確認すべき項目は、出口IP、DNSの解決結果、クライアントの接続ログ、対象アプリの動作、ローカルネットワークへのアクセスです。通常接続へ戻したアプリがVPNの出口を表示するなら、除外ルールが適用されていない可能性があります。反対にVPNへ送るはずのアプリが通常の出口を表示するなら、対象プロセスが未登録か、ルールの優先順位が別の条件に負けています。
- ✅ VPN経由にするアプリの出口IPを確認する
- ✅ 通常接続に残すアプリの出口IPを別に確認する
- ✅ DNS問い合わせがどのクライアントで処理されているか確認する
- ✅ Windowsの共有フォルダーやプリンターが必要な場合は接続状態を確認する
- ✅ ルール変更前の設定を保存し、復旧手順を残す
- ❌ 一つのブラウザー画面だけで全アプリの経路を判断する
接続できなくなった場合は、まず追加したルールを無効にしてグローバルモードへ戻します。グローバルモードでも接続できないなら、スプリットトンネルではなく、ノード、認証、WindowsのVPN権限、他のネットワーク拡張などを確認します。グローバルモードでは動作し、分割時だけ失敗するなら、ルールの方向、プロセス名、DNS、優先順位を一つずつ見直します。
ネットワークが切断後も復旧しない場合は、VPNクライアントを正常に切断し、Windowsのプロキシ設定を確認します。クライアントが作成した仮想アダプターを不用意に削除するのではなく、まずアプリを終了し、Windowsを再起動して状態を確認してください。古いVPNプロファイルや複数のネットワーク拡張が残っている場合は、名前と用途を記録してから不要なものだけを整理します。
よくある質問
Windows標準のVPNだけでアプリ別振り分けはできますか?
Windows標準のVPN接続は、通常のデフォルトルートや宛先ルートの管理が中心です。利用するWindowsエディション、VPN方式、管理ポリシーによって使える機能が異なるため、一般的な個人向け設定だけで任意の実行ファイルを簡単に振り分けられるとは限りません。アプリ指定が必要なら、対応するVPNクライアントの機能を確認してください。
Clash Vergeでアプリ名を指定できますか?
標準的なClash系のルールは、主にドメイン、IP、ポート、ルールセットを基準にします。クライアントやTUN実装によってプロセス名を扱える場合もありますが、すべての構成で同じとは限りません。アプリ別に見えても、実際にはアプリが利用するドメインを振り分けている場合があるため、接続ログで確認してください。
VPNを除外したアプリだけ通信できません。何を見ればよいですか?
Windowsのプロキシ設定、DNS、ファイアウォール、子プロセスの扱いを確認します。対象アプリがローカルネットワークや特定ポートを必要とする場合、単純な除外ルールだけでは足りないことがあります。まずルールを無効にして通常接続で動作するか確認し、動作する場合は条件を一つずつ戻します。
設定後もすべての通信がVPN経由になります。なぜですか?
グローバルモードが有効なまま、除外方式ではなくVPN優先方式が選ばれている可能性があります。また、ルール型クライアントでは広い範囲のPROXYルールが先に適用されている場合があります。動作モード、ルールの順序、Windowsのシステムプロキシを順に確認してください。
Windowsのスプリットトンネルは、設定項目をオンにするだけで完了する機能ではありません。アプリ指定かルール指定かを見極め、対象プロセスと関連ドメインを整理し、出口とDNSを別々に検証する必要があります。最初は一つのアプリだけで試し、グローバル接続への復旧方法を確保してから、必要な通信だけを段階的に追加するのが安全です。