AndroidのVPNスプリットトンネル設定|アプリ別に通信を振り分ける

すべての通信をVPNへ送らず、必要なアプリだけをVPN接続にする設定方法を紹介。対象アプリの選び方から、直通設定の確認、トラブル時の初期化まで実用的にまとめています。

AndroidでVPNを使うとき、すべてのアプリを同じ経路へ送る必要はありません。動画や海外サービスを利用するアプリだけをVPNに通し、銀行アプリ、社内システム、近距離機器、国内向けサービスは通常回線へ残す構成も可能です。この仕組みがスプリットトンネリングです。Androidでは、VPNクライアントがアプリ単位のルールを作成し、対象アプリの通信だけを仮想VPNインターフェースへ渡します。

ただし、アプリを一覧から選ぶだけで完全に設定が終わるとは限りません。VPNへ通すアプリを選ぶ「対象アプリ方式」と、VPNから除外するアプリを選ぶ「除外方式」では意味が逆になります。また、アプリ本体とログイン画面、プッシュ通知、ブラウザー経由の認証が別プロセスとして動く場合もあります。この記事では、Androidでの考え方、クライアントの選び方、実際の設定手順、直通通信の確認方法、問題が起きたときの初期化までを順番に整理します。

Androidのスプリットトンネリングを理解する

通常のVPN接続では、端末の通信をできるだけ広くVPNインターフェースへ送り、VPNサーバー側からインターネットへ転送します。これに対してスプリットトンネリングでは、アプリまたは宛先ごとに経路を分けます。VPN対象に指定したアプリはVPN経由、それ以外のアプリは通常のWi-Fiやモバイル回線へ進むという形です。

最初に確認したいのは、使っているクライアントがどの方式を採用しているかです。代表的には、選択したアプリだけをVPNへ送る「VPN対象アプリ」、選択したアプリだけを通常回線へ送る「VPN除外アプリ」、そしてルールやドメインを組み合わせる方式があります。画面に「Include」「Exclude」「Bypass」「Proxy only」などの表記がある場合、翻訳だけで判断せず、説明文と設定後の通信結果を確認してください。

90+

対応国

200+

回線数

不限

同時利用端末

Android

対応プラットフォーム

アプリ単位の分岐が便利なのは、通信の目的が異なるアプリを一つの端末で使い分けられるからです。たとえば、海外向けの動画アプリやブラウザーだけをVPNへ通し、決済、配車、家庭内NAS、プリンター管理アプリは直通にできます。ただし、同じサービスでもアプリ内ブラウザーや外部ブラウザーを使うことがあり、親アプリを選んだだけでは関連通信まで対象になるとは限りません。

要点:まず「VPNへ通すアプリ」と「VPNから外すアプリ」のどちらを選ぶ画面なのかを確認し、設定後はアプリごとに経路を検証します。

対象アプリとAndroidクライアントの選び方

対象アプリを決めるときは、アプリの知名度ではなく、どの通信をどの経路へ送りたいかを基準にします。海外サービスを利用するアプリだけをVPN対象にするなら、対象アプリ方式のほうが管理しやすい場合があります。一方、普段使うアプリの大半をVPNへ通し、少数の国内サービスだけを直通にしたい場合は、除外方式のほうが一覧を短く保ちやすくなります。

  • ✅ VPN対象にするアプリは、まず目的が明確なものだけに絞る
  • ✅ 決済、社内業務、家庭内機器などは直通が必要か確認する
  • ✅ アプリ本体だけでなく、外部ブラウザーや認証プロセスの動作も確認する
  • ✅ Androidの省電力設定でクライアントが停止されないようにする
  • ❌ 対象アプリを増やし続けて、どの通信がVPN経由か分からない状態にしない
  • ❌ 二つのVPNクライアントを同時に有効化しない

Android用クライアントには、サービス専用アプリ、汎用サブスクリプションクライアント、sing-box系のルール型クライアントなどがあります。専用アプリはログインやサブスクリプション更新が簡単な一方、アプリ別の詳細ルールが少ないことがあります。汎用クライアントはURLから設定を読み込みやすく、プロキシグループやアプリルールを細かく扱える反面、設定項目の意味を理解する必要があります。

サブスクリプションに含まれるプロトコルも確認しましょう。Shadowsocks、VMess、Trojan、Hysteria2、WireGuardなどは、名前がすべてVPNと呼ばれていても設定形式やクライアント側の実装が同じではありません。VMessやTrojanではTLS、サーバー名、トランスポート方式などが接続条件になる場合があります。Hysteria2はUDPベースの通信を利用するため、現在のネットワークがUDP通信をどのように扱うかも影響します。クライアントにノード名が表示されたことだけで、すべてのパラメータが正しく読み込まれたとは判断しないでください。

Androidでアプリ別に設定する手順

ここでは、アプリ別ルーティングに対応するAndroidクライアントを使う場合の一般的な手順を説明します。画面名はアプリによって異なりますが、設定の順序は大きく変わりません。最初からDNS、プロキシモード、ルール、ノード選択をすべて変更すると、問題が起きたときに原因を追いにくくなります。

  1. クライアントを準備する。公式の配布元からAndroidクライアントを入手し、必要ならサブスクリプションURLを「URLから追加」「サブスクリプションを追加」などの機能で登録します。貼り付け後は更新を実行し、ノード一覧とプロトコル情報が表示されることを確認します。
  2. VPN権限を許可する。初回接続時にAndroidがVPN接続の作成を確認します。提供元とアプリ名を確認してから許可し、他のVPNアプリが接続中でないことも確認します。
  3. 基本の接続を確認する。まずアプリ分岐を変更せず、通常のノードで接続します。クライアントが接続済みになり、AndroidのステータスバーにVPN表示が出ることを確認します。
  4. アプリルールを開く。設定画面の「アプリ管理」「アプリルーティング」「分割トンネル」などに進みます。対象アプリ方式か除外方式かを読み、現在のモードを記録しておきます。
  5. 少数のアプリだけ選ぶ。最初は検証しやすい一つまたは少数のアプリを登録します。保存後、VPNを一度切断して再接続し、ルールが実際の接続へ適用された状態でテストします。
  6. 必要に応じてシステム設定を調整する。Androidのバッテリー最適化、バックグラウンド制限、自動起動制限によってクライアントが停止すると、ルール以前にVPN全体が切断されます。端末メーカー独自の省電力管理も確認してください。

Androidの「常時接続VPN」や「VPNなしの接続をブロックする」機能を使う場合は、スプリットトンネルの設計と矛盾しないか注意が必要です。VPN対象外の通信を通常回線へ出したいのに、VPNなし通信をブロックすると、除外したアプリが通信できなくなることがあります。プライバシーを優先して全通信の遮断を選ぶ構成と、アプリごとに直通を許可する構成は目的が異なります。

設定を保存した後は、クライアントを閉じるだけでなく、対象アプリを完全に終了して再起動します。アプリが以前の接続やDNS結果を保持していると、ルール変更がすぐに画面へ反映されない場合があります。ログイン画面だけ外部ブラウザーで開くアプリでは、ブラウザー側の経路も別に確認してください。

VPN経由と直通通信を確認する方法

スプリットトンネルの確認では、クライアント画面の「接続済み」だけを信じてはいけません。VPNが有効でも、対象外アプリの通信が直通になっているか、対象アプリが本当にVPNを経由しているかは別の問題です。まず対象アプリを一つだけ起動し、外部サービスへのログイン、ページ表示、画像や動画の読み込みなど、通常使う操作を行います。その後、VPNを切断した状態でも同じ操作を比較します。

IP確認ページをブラウザーで開く方法は参考になりますが、ブラウザーがVPN対象に含まれているかを先に確認してください。対象外のブラウザーで確認すれば直通側の結果が表示され、対象ブラウザーで確認すればVPN側の出口を確認できます。アプリ内通信がブラウザーへ委譲される場合は、アプリ単体のルールだけでは判断できません。

確認対象 期待する経路 確認方法 結果が違う場合
VPN対象アプリ VPN経由 アプリを再起動し、接続先とサービス表示を確認する 対象方式、ノード、アプリの再起動を確認する
VPN除外アプリ 通常回線へ直通 VPN接続中に通常の機能とログインを試す 除外方式の意味とAndroidのブロック設定を確認する
外部ブラウザー ブラウザーの登録状態に従う ブラウザー単体でIP確認とページ表示を行う アプリ内ブラウザーとの違いを切り分ける
家庭内機器 通常回線またはローカル接続 NAS、プリンター、キャスト機器への接続を確認する ローカルアドレスをVPNへ送るルールを確認する

DNSの扱いも見落としやすい部分です。通信自体を直通にしていても、名前解決だけがVPN側のDNSへ送られる構成があります。反対に、VPN対象アプリの名前解決が通常回線側で行われ、アクセス先の判定に失敗することもあります。クライアントにDNSモードやFake-IP、分割DNSの項目がある場合は、意味を確認してから変更し、変更前の設定を控えておきましょう。

接続できないときの切り分けと初期化

一部のアプリだけ接続できない場合、すぐにノードを何度も切り替えるのではなく、問題がルール、アプリ、DNS、プロトコル、ネットワークのどこにあるかを切り分けます。まず分割トンネルを一時的に無効化し、同じノードで全通信をVPNへ通して確認します。これで動作するなら、ノードよりもアプリルール、除外設定、DNS、AndroidのVPNブロック設定に原因がある可能性が高くなります。

  • ✅ VPNを切断して通常回線で対象アプリが動くか確認する
  • ✅ 分割ルールを一時停止し、全通信モードで同じノードを試す
  • ✅ 対象アプリを最新版にし、完全終了後に再起動する
  • ✅ Wi-Fiとモバイル回線を切り替え、現在のネットワーク固有の問題か確認する
  • ✅ 省電力制限と常時接続VPNの設定を確認する
  • ❌ DNS、プロトコル、ルール、ノードを一度に変更しない

設定が複雑になって戻せない場合は、まず現在のサブスクリプションURL、ノード名、ルール一覧を安全な場所に控えます。その後、クライアント内のルールを初期状態へ戻し、VPNプロファイルを削除してからAndroidのVPN権限を再作成します。アプリを削除して再インストールする方法もありますが、サブスクリプション情報やログが消えることがあるため、先に必要な情報を保存してください。

初期化後は、サブスクリプションの追加、基本接続、アプリ一つの登録、対象外アプリの確認という順番で戻します。初期化しても接続できない場合は、サブスクリプションの有効状態、クライアントのプロトコル対応、現在のWi-Fiやモバイル回線による制限を確認します。Android側のVPN設定だけを消しても、サービス側の設定やサブスクリプションが更新されるわけではありません。

最終判断:安定したアプリ別ルーティングは、対象を増やすことより、少数のルールを作って一つずつ経路を検証することから始まります。接続、DNS、直通通信、バックグラウンド動作を別々に確認すれば、問題が起きても初期化と再設定を短時間で行えます。

QEvpnはAndroidを含むWindows、macOS、iOS、Linuxに対応し、90+か国、200+回線を案内しています。同時利用端末数に制限はなく、登録時にメールアドレスは必要ありません。Androidでサブスクリプションを使い始める場合は、まず公式の手順でクライアント追加と接続確認を行い、その後にスプリットトンネルを有効化するのが安全です。

無料で試す