Android VPNのスプリットトンネル設定ガイド|アプリ別ルール
動画や仕事用アプリだけVPNにつなぎ、国内サービスは直接通信したい人向け。Androidのアプリ別ルーティングと動作確認を手順付きで説明します。
AndroidでVPNを使うとき、すべてのアプリを同じトンネルへ通す必要はありません。動画、仕事用のチャット、ブラウザなど特定のアプリだけをVPN経由にし、銀行アプリ、国内の動画サービス、スマートホーム機器などは直接通信にする設定がスプリットトンネルです。Androidでは、利用するクライアントが「アプリ別ルーティング」「バイパス」「除外アプリ」「対象アプリのみ接続」のどの方式を採用しているかによって、設定画面と考え方が少し変わります。
重要なのは、アプリを選んでVPNに接続することと、アプリ内のすべての通信が同じ経路を使うことは別だという点です。ブラウザ本体だけをVPN対象にしても、別のダウンロード機能、外部認証画面、動画再生コンポーネント、バックグラウンドサービスは直接接続になる場合があります。反対に、除外方式で設定すると、指定したアプリ以外がまとめてVPNへ入ることがあります。最初にルールの意味を確認し、接続後は出口IP、DNS、対象アプリの実通信を順番に確認してください。
スプリットトンネルの方式を理解する
Androidのアプリ別VPN設定は、大きく「選択したアプリだけをVPNへ送る方式」と「選択したアプリをVPNから除外する方式」に分けられます。前者は動画アプリや仕事用アプリだけを対象にしたい場合に分かりやすく、後者は端末上のほとんどの通信をVPNへ通し、一部の国内サービスだけを直接接続したい場合に向いています。クライアントによっては、アプリ一覧のチェックを入れたときに対象になるのか、除外されるのかが異なるため、設定名だけで判断しないでください。
AndroidのVPNサービスは、端末上に仮想的なネットワークインターフェースを作り、通信をクライアントへ渡します。クライアントはその後、ルールに従ってVPN経由または直接接続へ振り分けます。公式Androidクライアントでアプリ除外に対応している場合は、設定画面の説明に従うのが安全です。サブスクリプションURLを利用する汎用クライアントでは、読み込んだプロファイルのモードやルールセットを確認してからアプリ別設定を変更します。
プロトコルとアプリ別ルールは別の層です。Shadowsocks、VMess、Trojan、VLESSはプロキシとして利用されることが多く、Hysteria2はUDPを活用する通信方式です。WireGuardはVPNインターフェースを作る方式として扱われますが、同じAndroidアプリ内でどのプロトコルを利用できるかはクライアントごとに異なります。サブスクリプションが読み込めても、クライアントがすべての形式を認識できるとは限りません。一部のノードだけが表示される場合は、再インストールを繰り返す前にプロトコルの対応状況を確認してください。
110+
対応する国・地域
240+
選択できる回線
60日
無理由退款
不限
同時接続台数
方式の結論:VPNを使うアプリが少ないなら「対象アプリのみVPN」、VPNを使う通信が多いなら「除外アプリを直接接続」にすると管理しやすくなります。どちらを選んでも、チェックボックスの意味とDNSの扱いを最後まで確認することが重要です。
Androidクライアントとサブスクリプションを選ぶ
まず、利用中のサービスが提供するAndroid公式クライアントを確認します。公式アプリはログインから接続までの手順が比較的明確で、アプリ別VPN設定が用意されている場合は初心者にも扱いやすい選択肢です。Windows、macOS、iOS、Android、Linuxに対応するサービスであっても、プラットフォームごとに設定できる機能が同一とは限りません。Android版の設定画面で、アプリ単位の除外または対象指定ができるかを先に確認してください。
サブスクリプションURLを一度読み込めば、サーバーアドレスやポートを毎回手入力せずにノード情報を更新できます。ただし、URLはアカウント情報に近い扱いになります。公開グループ、スクリーンショット、第三者の変換サイトへ貼り付けたり、正体の分からない設定ファイルを読み込んだりしないでください。Android用の互換クライアントを使う場合も、提供元、対応プロトコル、更新方法、アプリ別ルールの説明を確認します。
Clash系のAndroidクライアントやsing-box系クライアントでは、グローバル、ルール、直接接続などのモードを切り替えることがあります。ルールモードでは、ドメイン、IP、アプリパッケージ名など複数の条件が使われる場合がありますが、設定ファイルの記述形式とクライアントの仕様が一致していなければ動作しません。Clash Vergeは主にデスクトップ向けのクライアントとして扱われるため、Android端末ではAndroid対応版を選んでください。ShadowrocketはiOS向けアプリであり、Android用クライアントとして案内しないよう注意が必要です。
導入前に、次の情報をメモしておくとトラブルを切り分けやすくなります。現在の接続方式、使用したノード名、VPN対象にするアプリ、直接接続にするアプリ、DNS設定、常時接続やキルスイッチの有無です。Androidのバッテリー最適化がクライアントを停止させると、画面上では設定が残っていてもバックグラウンド通信だけが直接接続へ戻ることがあります。
- ✅ Android版クライアントの提供元と対応プロトコルを確認する。
- ✅ サブスクリプションを読み込んだ後、ノード名とルールモードを確認する。
- ✅ 対象アプリのみVPNにするのか、除外アプリ以外をVPNにするのか決める。
- ✅ Androidのバッテリー最適化、バックグラウンド通信制限、常時接続の設定を確認する。
- ❌ 端末に複数のVPNクライアントを同時に接続し、結果だけを見て判断する。
- ❌ サブスクリプションURLや設定ファイルを不明なWebサービスへ入力する。
Androidでアプリ別ルールを設定する手順
ここでは、Android公式クライアントまたはAndroid対応の汎用クライアントで、対象アプリを選択してVPNへ送る一般的な流れを説明します。アプリのバージョンによって項目名は異なりますが、「VPN設定」「アプリ管理」「スプリットトンネル」「アプリ除外」「ルーティング」などの項目を探してください。最初から多くのアプリを登録せず、動作を確認しやすい一つのアプリから始めるのが安全です。
- 公式のAndroidクライアントをインストールし、必要ならアカウントへログインします。サブスクリプション方式の場合は、アプリ内のインポート画面からURLを登録し、設定の更新を実行します。
- ノード一覧から使用する回線を選びます。接続先の名称だけで品質を断定せず、現在のネットワーク環境で実際に確認できる回線を選択してください。
- 接続前に「アプリ別ルーティング」または類似の設定を開きます。「VPN対象のみ」「除外リスト」「バイパス」などの方式を読み、チェックを入れたアプリがVPN経由になるのか直接接続になるのかを確認します。
- 動画アプリや仕事用アプリなど、VPNを使いたいアプリを登録します。国内サービス、銀行関連アプリ、家庭内機器の管理アプリなどは、必要性を確認してから直接接続側へ登録します。
- 設定を保存し、Androidが表示するVPN接続の許可ダイアログを承認します。別のVPNアプリが接続中なら先に切断し、常時接続VPNやVPN未接続時の通信遮断が有効になっていないか確認します。
- 対象アプリを完全に終了してから再起動します。ログイン画面や動画ページがアプリ起動時に読み込まれる場合、設定変更前の接続状態がキャッシュされていることがあるためです。
- 対象アプリと直接接続のアプリをそれぞれ開き、通信できるか確認します。片方だけが失敗する場合は、アプリ別ルール、DNS、地域制限、アプリ内の独自プロキシ設定を順番に調べます。
直接接続にしたアプリが動かない場合は、LANアクセスをブロックする設定や、VPN接続時だけ有効になるDNS保護が影響している可能性があります。家庭内のプリンター、テレビ、NASなどを使う場合は、クライアントにローカルネットワークを許可する項目があるか確認してください。反対に、直接接続を選んだアプリの通信がVPNへ流れる場合は、除外方式と対象方式を取り違えていないか、上位ルールがアプリルールより先に適用されていないかを見直します。
アプリごとの通信経路を確認する
設定が終わったら、VPNに入るアプリと直接接続するアプリを同じ条件で比較します。まずクライアントを切断した状態で、ブラウザから当サイトのネットワーク診断を開き、出口IPとネットワーク情報を記録します。次にVPNへ接続し、同じページを開き直して確認します。ブラウザをVPN対象にした場合は出口IPが変わる可能性がありますが、これはブラウザの通信についての確認であり、Android上のすべてのアプリを証明する結果ではありません。
VPN対象アプリでは、ログイン、画像表示、動画再生、ファイル取得など複数の機能を試します。一つの画面だけ表示できても、別の機能が異なるドメインや別の通信方式を使っている場合があります。仕事用アプリでは、認証ページ、通知、ファイル共有、音声通話を個別に確認してください。特に通知はアプリ本体とは別のバックグラウンド処理に依存することがあり、アプリを開いたときだけ正常になる場合は、Androidの省電力設定も確認します。
直接接続側のアプリでは、国内サービスへのログイン、決済画面、家庭内LANへのアクセスなど、普段使う機能を確認します。直接接続を選んだアプリがVPNの出口IPを示す場合は、アプリがルールの対象外になっている、別のプロファイルが有効になっている、またはアプリが独自の接続方式を使っている可能性があります。逆に、IPが変わらないことだけで失敗と断定することもできません。ルール上、直接接続が正しいアプリなら、IPが変化しないことが期待されるからです。
DNSの確認も忘れないでください。ドメインの名前解決が直接接続側で行われ、実際の通信だけがVPNを通る構成では、地域判定や接続先の選択が想定と異なることがあります。クライアントにDNSモード、リモートDNS、分流DNSなどの項目がある場合は、ルールと矛盾していないか確認します。AndroidのプライベートDNSを手動指定している場合も、クライアントのDNS処理と競合する可能性があります。
| 確認した結果 | 考えられる状態 | 見直す項目 |
|---|---|---|
| 対象アプリだけ出口が変わる | アプリ別ルールが想定どおり適用されている可能性がある | 対象アプリの主要機能とDNSを確認する |
| 対象アプリも直接接続のまま | 対象方式ではなく除外方式を選んでいる、または別プロファイルが有効 | ルールモード、アプリ一覧、現在のプロファイルを確認する |
| 除外アプリまでVPN経由になる | 除外設定が保存されていない、上位ルールが優先されている可能性がある | バイパス、グローバルモード、VPN再接続を確認する |
| アプリ本体は動くが通知が遅れる | バックグラウンド制限や通知用通信の経路が異なる可能性がある | 省電力設定、バックグラウンド通信、DNSを確認する |
検証の結論:VPN対象アプリの出口IPが変わること、直接接続アプリが通常どおり通信できること、DNSとバックグラウンド機能に矛盾がないことを別々に確認して、初めてアプリ別ルールが機能したと判断できます。
接続できないときの切り分け
最初に確認するのは、Androidが許可しているVPNが一つだけかどうかです。別のVPNクライアント、広告ブロックアプリ、セキュリティアプリがローカルVPNを使っていると、目的のクライアントと同時に動作できない場合があります。AndroidのVPN設定で現在の接続先を確認し、不要なクライアントを切断してから再度テストしてください。
次に、モードをグローバルからルールへ戻します。グローバルモードは分流設定を検証する目的には向かず、直接接続にしたいアプリまでVPNへ送ることがあります。ルールモードで対象アプリを少数に絞り、接続ログやアプリ一覧の適用状態を確認します。アプリの複製機能、仕事用プロファイル、デュアルアプリを使っている端末では、同じ名前のアプリでも別パッケージとして認識される場合があります。
通信が遅い、動画だけ再生できないという場合は、アプリ別ルールを変更する前にノードとプロトコルを確認します。TCP接続を前提にした環境でUDPを活用するHysteria2が安定しないこともあれば、逆にUDPを利用できるネットワークで別の方式が適することもあります。IEPL専線やBGP、CN2などの回線表記は経路の特徴を示すもので、すべてのアプリの通信が自動的に最適化されることを意味しません。回線を変えたら、同じ対象アプリと同じ直接接続アプリを再テストしてください。
ルールを複雑にしすぎると、どの条件で通信が振り分けられたか分かりにくくなります。まずアプリ単位だけで動作を確認し、その後にドメイン、IP、LAN、DNSの条件を追加します。設定を変更するたびに名前を付けて保存できるクライアントなら、変更前のプロファイルを残しておくと復元しやすくなります。問題が解消しない場合は、セットアップ手順で基本的なインポートと接続状態を確認してから、アプリ別設定へ戻りましょう。
- ✅ Androidで有効なVPNクライアントが一つだけか確認する。
- ✅ グローバルモードではなく、アプリ別ルールを適用できるモードを選ぶ。
- ✅ 仕事用プロファイルやアプリ複製で、対象アプリの識別が分かれていないか調べる。
- ✅ ルールを一度単純化し、アプリ単位、DNS、ドメインの順に追加する。
- ❌ 接続不良のたびに複数の項目を同時変更し、原因を分からなくする。
- ❌ 国や都市の表示だけを見て、実際の出口IPやアプリの機能を確認しない。
日常利用でルールを安全に保つ
スプリットトンネルは一度設定すれば終わりではありません。AndroidのOS更新、アプリ更新、クライアントのプロファイル更新によって、アプリの識別方法やバックグラウンド通信の扱いが変わることがあります。サブスクリプションを更新した後は、選択中のノードだけでなく、ルールモード、DNS、対象アプリの一覧も確認してください。ノード情報が更新されてもアプリ別ルールが保持されるとは限らないため、重要なアプリは再テストするのが安全です。
公共Wi-Fi、モバイルデータ、家庭内Wi-Fiを切り替えた場合も、同じ設定が同じ結果になるとは限りません。ネットワーク側が特定のUDP通信を制限したり、IPv6を優先したり、DNSを強制したりするためです。接続先を変えたときは、VPN対象アプリの主要機能と直接接続アプリの最低限の機能を確認します。特に仕事用アプリやファイル通信では、画面が表示されるだけでなく、送受信まで完了するかを見てください。
プライバシー面では、直接接続にしたアプリがどの情報を送るかも確認が必要です。VPNを使わないアプリの通信は、利用中のネットワークやサービス提供者から見える経路が変わりません。国内サービスを直接接続にする理由が速度や互換性なら、必要なアプリだけに限定し、ログイン情報や決済情報を扱う場面では公式アプリと安全なネットワークを使います。VPNはアプリの安全性そのものを保証する機能ではないため、提供元が不明なアプリをルールで保護しようとしないでください。
最終的には、VPN対象のアプリ、直接接続のアプリ、DNS、バッテリー設定、使用中のプロファイルを簡単に記録しておくと、端末交換や再設定の際に役立ちます。Androidでアプリ別ルールを使う目的は、すべての通信を複雑に制御することではなく、必要な通信だけ経路を分けて、普段の利用を安定させることです。小さく設定し、実通信を確認し、問題が起きたら一つずつ戻すという順番を守れば、原因を追いやすくなります。
まとめ:Androidのスプリットトンネルは、対象方式と除外方式を区別し、対応クライアントへ安全にサブスクリプションを読み込み、VPN対象と直接接続のアプリを個別に検証するのが基本です。ルールを増やす前に、出口IP、DNS、主要機能、バックグラウンド通信を確認してください。