AndroidのVPNスプリットトンネルは、端末上のすべての通信を同じ経路に送るのではなく、アプリごとにVPN経由と通常回線を分ける機能です。動画、仕事用ツール、特定のウェブサービスだけをVPNに通し、銀行アプリ、決済アプリ、プリンター、スマートホーム機器などは通常回線に戻す、といった使い方ができます。通信経路を必要以上に変更しないため、地域や接続元の確認が厳しいサービスを通常回線で利用したい場合にも役立ちます。
ただし、Android本体の設定だけで細かなアプリ振り分けができるとは限りません。実際のルール設定は、サービス提供元の公式Androidクライアント、sing-box系クライアント、その他のAndroid対応クライアントが提供するVPNService機能で行います。アプリによって「VPNを使うアプリを選ぶ」方式と「VPNから除外するアプリを選ぶ」方式があり、同じチェックボックスでも意味が反対になることがあります。この記事では、画面の読み方、設定手順、確認方法、失敗したときの戻し方を順番に説明します。
スプリットトンネルの仕組みと使い分け
通常のAndroid VPNは、端末の通信を仮想ネットワークインターフェースへ集め、VPNクライアントが選んだ出口へ転送します。スプリットトンネルを有効にすると、VPNクライアントはアプリ単位の条件を見て、対象アプリの通信だけをトンネルへ送ります。対象外のアプリは、Wi-Fiやモバイルデータ通信などの通常経路を使います。
ここで注意したいのは、アプリを選んだからといって、そのアプリのすべての通信が必ず同じ扱いになるとは限らないことです。アプリが別プロセスを使っている場合、外部ブラウザーを呼び出す場合、OSの共有サービスを経由する場合は、関連する通信が別アプリとして扱われることがあります。また、VPNクライアントの実装によっては、アプリ単位の振り分けとドメイン単位のルールが別機能になっています。
- ✅ 動画や仕事用アプリだけをVPN経由にし、普段使いのアプリは通常回線にする。
- ✅ 銀行、決済、行政、社内認証など、接続元の変化を避けたいアプリを除外する。
- ✅ 同じサービスでも、アプリ本体とブラウザー版を別々に確認する。
- ❌ 「除外アプリ」の一覧を「VPNを使うアプリ」と取り違えない。
- ❌ VPN接続中にルールを何度も変更し、どの設定で動作したのか分からない状態にしない。
VPNに通すアプリを少数だけ選ぶなら、許可リスト方式が分かりやすいことがあります。一方、端末上の多くのアプリをVPNで利用し、数個だけ通常回線にしたい場合は、除外リスト方式の方が管理しやすいでしょう。アプリ数が増えたときにルールを見直しやすいかどうかも、クライアント選びの重要な基準です。
Androidクライアントと設定項目の見方
最初に使うクライアントは、サービス提供元の公式Androidクライアントが適しています。ログイン、サブスクリプションの読み込み、ノード更新、接続状態の確認が一つの画面で行えるため、初期設定で迷いにくいからです。公式クライアントがアプリ別設定に対応していない場合は、サービスが案内するAndroid対応クライアントを確認します。sing-box系のクライアントでは、プロファイル、ルール、DNS、ルート設定が分かれていることがあり、表示名はアプリのバージョンによって変わります。
サブスクリプションを読み込む場合は、URLを第三者へ送信せず、クライアントの「サブスクリプション追加」や「プロファイル追加」から登録します。設定が取得できても、すべてのノードやプロトコルがそのクライアントで利用できるとは限りません。Shadowsocks、VMess、Trojan、Hysteria2、WireGuardなどは、それぞれ接続方式と設定項目が異なるため、クライアント側の対応状況を確認してから使用してください。
設定画面では、次のような表現が使われます。文言が完全に一致しなくても、意味を置き換えて読むと判断しやすくなります。
- 「アプリ分割」「Per-app VPN」:アプリ単位でVPNの対象を決める画面。
- 「VPNを使用するアプリ」:一覧で選んだアプリをトンネルへ送る方式。
- 「VPNから除外するアプリ」:一覧で選んだアプリを通常回線へ送る方式。
- 「すべてのアプリをVPN」:個別指定より優先される初期状態や切り替え項目。
- 「バイパス」「直接接続」:VPNトンネルを経由させないという意味で使われることが多い。
- 「ブロック」「拒否」:直接接続ではなく、その通信自体を止める動作を示す場合がある。
特に「バイパス」と「ブロック」は混同しやすい項目です。銀行アプリをVPNから除外したい場合、必要なのは通常回線への直接接続であり、通信拒否ではありません。設定保存後に「直接接続」や「バイパス」と表示されていることを確認してください。
Androidでアプリ別VPNを設定する手順
ここでは、公式クライアントまたはAndroid対応クライアントにサブスクリプションを追加済みで、少なくとも一つのプロファイルを選べる状態を想定します。アプリによって項目名や配置は異なりますが、考え方は共通しています。
事前にプロファイルを整理する
まずクライアントを開き、サブスクリプションまたは設定プロファイルを更新します。接続先を選ぶ画面では、目的に合うノードを一つ選び、最初から自動選択、複雑なルール、複数のプロファイルを同時に変更しないようにします。最初のテストで条件を増やしすぎると、問題がアプリ設定にあるのか、ノードにあるのか、DNSにあるのか分からなくなるためです。
VPNに含めるアプリまたは除外アプリを選ぶ
クライアントの設定から「アプリ分割」「アプリ管理」「Per-app VPN」などの項目を開きます。次に、VPNを使用するアプリを選ぶか、VPNから除外するアプリを選ぶかを決めます。たとえば動画アプリと仕事用アプリだけをVPNへ送るなら、含める方式でそのアプリを選びます。銀行アプリやローカルサービスだけを通常回線に戻すなら、除外方式で該当アプリを選びます。
アプリ名の横にチェックを付けた後は、画面上部や説明文に表示される動作を確認してください。「選択したアプリをVPN経由」「選択したアプリをVPNから除外」といった説明が、目的と一致していなければ保存しません。仕事用アプリが複数ある場合は、チャット、会議、ストレージ、認証の各アプリを一つずつ確認します。認証アプリだけ通常回線にすると、ログインの途中で経路が変わる構成になることもあるため、会社のポリシーに従ってください。
保存してVPN接続を開始する
設定を保存し、クライアントの接続ボタンを押します。初回接続時はAndroidがVPN接続の許可を表示します。提供元とアプリ名を確認し、意図したクライアントであることを確認してから許可します。通知領域にVPNアイコンが表示されても、それだけでアプリ別ルールが正しく適用されたとは限りません。VPN全体が接続されていることと、各アプリの経路が分かれていることは別々に確認する必要があります。
アプリごとの動作を確認する
設定後は、VPN対象アプリ、除外アプリ、ブラウザーの三つを分けてテストします。VPN対象アプリでは、サービスへの接続、ログイン、画像や動画の読み込みを確認します。除外アプリでは、銀行や決済の画面が通常どおり開くか、ローカルネットワーク上のプリンターや機器を認識できるかを確認します。ブラウザーは、アプリ内ブラウザーや外部ブラウザーを呼び出す動作があるため、別のアプリとして試すのが安全です。
- ✅ VPN対象アプリを開き、接続先の地域表示やサービスの応答を確認する。
- ✅ 除外アプリを開き、ログイン、認証、決済など重要な操作を一度確認する。
- ✅ Wi-Fiからモバイルデータ通信へ切り替え、VPNとルールが再適用されるか確認する。
- ✅ Androidの通知に接続エラーやVPN再接続の表示がないか確認する。
- ❌ IP表示だけでアプリ別の経路を断定しない。アプリ内ブラウザーやDNSの動作が異なる場合がある。
確認するときは、テストのたびに接続状態をメモすると便利です。「VPN接続中」「対象アプリ」「除外アプリ」「Wi-Fiまたはモバイル通信」「表示されたエラー」を記録すれば、後から原因を追いやすくなります。通信経路を確認する外部サイトやアプリを使う場合も、個人情報を入力せず、表示結果を参考情報として扱ってください。
DNSとローカル通信で起きやすい問題
スプリットトンネルで最も分かりにくいのがDNSです。アプリの通信を通常回線へ送っていても、名前解決だけがVPN側のDNSを使う構成や、その反対の構成になることがあります。すると、アプリ自体は起動するものの、地域判定、社内ドメイン、家庭内機器の名前解決だけが失敗する場合があります。クライアントに「DNSをトンネルへ送る」「システムDNSを使用」「アプリ別DNS」といった項目がある場合は、説明を読んでから変更してください。
プリンター、NAS、スマートテレビなどのローカル機器を使う場合は、VPNクライアントの「ローカルネットワークを許可」「LANアクセス」「プライベートネットワークをバイパス」といった設定も確認します。アプリをVPNから除外しても、VPNのルーティングやAndroidのネットワーク保護によって、ローカルアドレスへのアクセスが制限されることがあります。逆に、LAN全体を許可すると、意図せず多くのローカル通信が通常経路になることもあるため、必要な範囲だけを許可するのが基本です。
接続できないときの切り分けと元に戻す方法
設定後に通信できなくなった場合は、いきなり別のクライアントやプロトコルへ移行するのではなく、変更点を一つずつ戻します。最初にVPNを切断し、通常回線で対象アプリが動くかを確認します。通常回線でも動かなければ、アプリ側の障害、アカウント状態、Androidの通信制限、Wi-Fi側の問題を調べます。通常回線では動き、VPN接続時だけ失敗するなら、ノード、DNS、アプリルールのいずれかを確認します。
- ✅ アプリ分割を一時的に無効にし、すべてのアプリを同じVPN経路で試す。
- ✅ すべてのアプリをVPN経由にして動くなら、除外リストを空にしてから一つずつ追加する。
- ✅ 含める方式で動かない場合は、除外方式に切り替えず、まず対象アプリを一つだけ残して確認する。
- ✅ プロファイルを更新し、選択中のノードとプロトコルがクライアントに対応しているか確認する。
- ✅ VPN接続を切断してからAndroidを再起動し、古いVPN状態や別クライアントの接続を残さない。
- ❌ VPNクライアントを二つ同時に接続しない。Androidでは通常、VPNServiceを同時に一つしか動かせない。
元の状態へ戻すには、まずアプリ別ルールを「無効」または「すべてのアプリ」に戻し、設定を保存します。その後VPNを切断し、Androidの「設定」から「ネットワークとインターネット」「VPN」を開いて、常時接続VPNとVPNなし接続のブロック設定を確認します。不要なVPNプロファイルや、使っていないクライアントの接続が残っていれば停止します。アプリを削除する前に、設定をエクスポートできる場合はバックアップを取り、再設定に必要なサブスクリプション情報を安全な場所へ保管してください。
切り分けが終わったら、まず仕事用アプリや動画アプリのようにVPNへ送る目的が明確なものだけを登録します。その後、通常回線にしたいアプリを少数ずつ追加し、Wi-Fiとモバイルデータ通信の両方で確認します。特定のアプリだけ失敗する場合は、そのアプリが外部ブラウザー、別の認証アプリ、システム共有機能を使っていないかを調べると原因を見つけやすくなります。
安全に運用するための最終チェック
アプリ別VPNは、一度設定したら放置する機能ではありません。AndroidのOS更新、アプリ更新、VPNクライアントの更新によってパッケージ名や権限、ルールの解釈が変わることがあります。特に仕事用アプリは、名称が同じでも別アプリへ移行したり、ログイン処理を外部ブラウザーへ変更したりする場合があります。更新後に接続できたとしても、重要な操作とローカル機器の利用を再確認してください。
また、VPN対象アプリを増やしすぎると、通常回線で使いたかった通信までトンネルに入ります。逆に除外アプリを増やしすぎると、意図した保護や地域別経路が適用されません。アプリ名だけで判断せず、「この通信をどの経路に送る必要があるのか」を基準にルールを整理します。設定名にメモを付けられるクライアントなら、用途と変更日を記録しておくと、後から見直しやすくなります。
- ✅ VPNに含めるアプリと除外するアプリを別々の一覧で管理する。
- ✅ 銀行、決済、認証、社内システムは組織やサービスの利用規約に従う。
- ✅ DNS、LANアクセス、常時接続、VPNなし接続のブロックを個別に確認する。
- ✅ OSやクライアントの更新後に、重要アプリだけでも再テストする。
- ✅ 問題が起きたら、ルールを初期状態へ戻してから一項目ずつ再設定する。