WindowsでVPNを使うとき、すべての通信を同じトンネルへ送るグローバルモードは、原因を切り分ける際には便利です。しかし、社内ポータル、プリンター、オンライン会議、ゲーム、国内向けの業務サービスまで経由させると、速度低下やアクセス拒否、名前解決の不具合が起きることがあります。そこで役立つのが、アプリやドメイン、IPアドレスごとに経路を分けるスプリットトンネルです。

この記事では、Windows版クライアントでアプリ別ルーティングを設計する考え方、ルールの優先順位、設定手順、適用後の確認方法、うまく動かない場合の対処を順番に説明します。単に「このアプリをVPNへ送る」と登録するだけではなく、DNS、子プロセス、IPv6、システムプロキシの範囲まで確認すると、設定後の予期しない通信漏れや接続不良を減らせます。

スプリットトンネルの基本と適した使い方

スプリットトンネルは、同じWindows端末から出るすべての通信を一つの経路へ固定するのではなく、条件に応じてVPN経由と直接接続に振り分ける仕組みです。代表的な条件には、実行ファイル名、ドメイン名、IPアドレス、ポート、接続先の地域、ルールセットなどがあります。

たとえば、海外向けのウェブサービスや特定の開発ツールだけをVPNへ送り、社内システム、ローカルプリンター、家庭内NAS、通常の国内サイトは直接接続にします。この構成なら、必要な通信だけ出口地域を変更し、その他のサービスは普段の経路とDNSを使えます。ただし、アプリが複数のドメインへ接続する場合や、ログイン画面とAPIが別のホスト名を使う場合は、アプリ名だけの登録では不十分なことがあります。

2

主な経路

90+

対応地域の目安

200+

ラインの選択肢

不限

同時利用端末

サービス側の接続方式も確認してください。サブスクリプションをWindows公式クライアント、Clash Verge、sing-boxなどへ取り込む場合、クライアントごとにルールの書式、TUNモード、システムプロキシの扱いが異なります。Shadowsocks、VMess、Trojan、Hysteria2、WireGuardなどは接続方式やトランスポートの違いであり、アプリ別ルーティングそのものを意味するものではありません。プロトコルを変更しても、ルールの対象が誤っていれば通信経路は改善しません。

アプリ別ルールを設計する順番

最初から多くの例外を登録するより、用途ごとに通信を分類するほうが安全です。まずVPNへ送るアプリを決め、次にそのアプリが利用するドメインを確認し、最後に例外を追加します。アプリルールとドメインルールが競合する場合は、クライアントのルール優先順位を必ず確認してください。

  • ✅ 海外向けのブラウザー通信や特定の業務ツールだけをVPNへ送る
  • ✅ 社内ドメイン、ローカルアドレス、プリンターは通常回線へ残す
  • ✅ アプリの実行ファイル名だけでなく、関連する子プロセスも確認する
  • ✅ DNSも同じ経路に合わせ、名前解決だけ別経路にならないようにする
  • ❌ グローバルモードと別のVPNクライアントを同時に有効にしない

ブラウザーは比較的わかりやすい対象ですが、アップデーター、認証ヘルパー、バックグラウンドサービスが別の実行ファイルとして動くことがあります。メイン画面は開くのにログインできない場合、関連プロセスや認証用ドメインがルールから外れている可能性があります。逆に、アプリ全体をVPNへ送ると、ローカルファイル共有や社内アドレスまで同じトンネルへ入ることがあります。

ドメインを登録するときは、完全一致とサブドメイン一致を区別しましょう。ログイン用のホスト、API用のホスト、静的ファイル用のホストが別々なら、必要な範囲を確認して登録します。広いワイルドカードを使うと簡単ですが、関係のないサービスまでVPNへ送る可能性があります。最初は狭いルールで始め、接続ログを見ながら追加する方法が適しています。

設計の結論: アプリ名、接続先ドメイン、DNSの3つを別々に考え、広いワイルドカードは最後に検討しましょう。ルールの数を減らすことより、意図を説明できる構成にすることが重要です。

Windowsで設定する実践手順

ここでは、サブスクリプションを導入済みのWindowsクライアントで、特定アプリだけをVPN経由にする基本的な流れを示します。画面名はクライアントやバージョンによって異なりますが、「設定」「ルール」「ルーティング」「分流」「TUN」「システムプロキシ」といった項目を探してください。

  1. 現在の状態を保存する:既存のプロファイルやルールをエクスポートし、変更前の接続方式と選択中のノードを記録します。
  2. モードを確認する:ルールモード、グローバルモード、直接接続の違いを確認します。最初のテストでは、意図したルールが適用されるモードを選択します。
  3. 対象アプリを登録する:実行ファイルのパス、またはアプリ名を指定します。ランチャー経由で起動するアプリは、実際に通信する子プロセスも確認します。
  4. ドメイン例外を追加する:社内ドメイン、ローカルネットワーク、プリンター管理画面など、VPNへ送らない接続を登録します。
  5. DNS方式を確認する:ルールの対象ドメインをVPN側で解決するのか、通常回線で解決するのかを設定します。DNSだけが別経路になると、地域判定や接続先選択が不安定になる場合があります。
  6. 一つずつテストする:対象アプリを完全に終了して再起動し、IP確認、ログイン、ファイル取得、ローカルサービスへのアクセスを個別に確認します。

Clash Vergeなどのルール型クライアントでは、ルールの上から順に判定される構成がよくあります。広いMATCHルールを上部へ置くと、後から追加したアプリ指定が到達しないことがあります。sing-box系の設定では、route、rule_set、DNSの設定が分かれていることがあるため、ルーティングだけ変更してDNS設定を忘れないようにします。Windows公式クライアントでアプリ単位の詳細指定が限られる場合は、OSのルート設定や対応する分流機能の範囲を確認し、無理に手動編集しないほうが安全です。

設定後に確認するポイント

設定が保存されたことと、通信が意図した経路を通ることは別です。まず対象アプリを再起動し、VPN接続中と切断中で動作を比較します。VPNへ送ったアプリでは出口IPや地域判定が変わる一方、直接接続にしたサービスでは通常のIPが表示されるはずです。ただし、アプリが独自DNS、QUIC、IPv6、バックグラウンドサービスを使う場合、画面上の動作だけでは判断できません。

次に、クライアントの接続ログを確認します。対象アプリのプロセス名、接続先ドメイン、選択された策略グループ、使用されたノードが表示される場合があります。ログにメインアプリが出ていても、子プロセスがDIRECTになっていることがあります。反対に、ブラウザーを直接接続にしたつもりでも、拡張機能やシステムプロキシの影響で別のプロセスがVPNへ入ることがあります。

社内サービスやローカル機器が開けないときは、ルールだけでなくアドレス範囲を確認します。ローカルネットワークのプライベートアドレス、ホスト名、IPv6アドレスが別扱いになっている場合があります。プリンターはIPアドレスではなく、検出用のブロードキャストや独自プロトコルを使うこともあるため、VPNのTUNモードを一時的に無効にして挙動を比較すると切り分けやすくなります。

接続できないときのトラブル対処

特定アプリだけ失敗する場合は、まずルールを一時的にグローバルへ変更し、同じノードでアプリが動くか確認します。グローバルで動くなら、アプリ別ルール、DNS、子プロセス、例外指定のいずれかに原因があります。グローバルでも動かないなら、ノード、プロトコル、認証、アプリ側のログイン状態など、分流以外の層を調べます。

DNSエラーが表示される場合は、ドメインの綴り、ワイルドカードの範囲、DNS経路を確認します。接続先がIPアドレスへ変換された後に別ルールへ進むクライアントもあるため、ドメインルールだけでは期待通りにならないことがあります。IPv6を利用する環境では、IPv4だけをVPNへ送り、IPv6が通常回線へ流れて地域判定が変わるケースもあります。クライアントにIPv6制御がある場合は、動作を理解してから変更してください。

速度低下が気になる場合、最初にルールの数を増やすのではなく、不要なアプリがVPNへ入っていないかを確認します。ブラウザーの動画、OSの更新、クラウド同期、大容量バックアップが意図せずトンネルへ入ると、対象アプリの通信にも影響します。また、WindowsのシステムプロキシとTUNモードを同時に有効にすると、同じ通信が二重に処理されることがあります。使う方式を一つに絞り、変更後はクライアントと対象アプリを再起動してください。

  • ✅ グローバルモードで再現するかを確認し、分流が原因か切り分ける
  • ✅ クライアントログでメインプロセスと子プロセスの経路を確認する
  • ✅ DNS、IPv4、IPv6、TUN、システムプロキシを別々に確認する
  • ✅ 変更前のプロファイルへ戻せる状態を保つ
  • ❌ 複数のVPN、TUN、仮想ネットワークアダプターを無計画に重ねない

安全に運用するための見直し方

アプリの更新で実行ファイルの場所が変わったり、サービスが新しいAPIドメインを追加したりすると、以前のルールがそのまま動かなくなることがあります。Windowsの大型更新やクライアント更新の後は、対象アプリ、直接接続の例外、DNS、IP確認を再テストしましょう。ルールを増やし続けるのではなく、使っていない項目を削除し、コメントや名前で目的を残すと後から管理しやすくなります。

サブスクリプションを更新した際は、ノード一覧やプロトコルが変わることもあります。導入が成功していても、以前のルールが新しいプロファイルへ自動的に引き継がれるとは限りません。公式クライアントや互換クライアントで再導入する前に、現在のルールをバックアップし、更新後に対象アプリの経路を確認してください。VncVPNの案内を利用する場合も、サブスクリプションURLは設定情報として扱い、公開チャットやスクリーンショットに貼り付けないようにします。

最終チェック: 分流設定の完成とは、対象アプリが開くことだけではありません。VPNへ送る通信、通常回線へ残す通信、DNSの経路、更新後の復元方法を説明できて初めて、日常運用に適した設定になります。