AndroidでVPNを使うとき、すべてのアプリを同じトンネルへ送る必要はありません。動画、ブラウザー、業務ツールなど保護したいアプリだけをVPN経由にし、決済アプリ、家庭内機器、地域サービスは直接接続に分ける方法がスプリットトンネリングです。通信経路をアプリ単位で整理できるため、不要な通信量を抑えたり、ローカルネットワークへのアクセスを維持したりできます。
ただし、Androidの設定画面にVPNを登録しただけで、すべてのクライアントが同じアプリ別ルールを提供するわけではありません。公式Androidクライアント、sing-box系クライアント、その他の互換アプリでは、除外方式、対象方式、DNSの扱い、接続時の動作が異なります。この記事では、方式の違いを確認してから、サブスクリプションの取り込み、アプリ別ルールの作成、接続確認、速度調整、リセットまでを順番に説明します。
スプリットトンネリングの仕組みと2つの方式
AndroidのVPNクライアントは、端末内に仮想ネットワークインターフェースを作り、アプリの通信をそのインターフェースへ渡します。クライアントは、受け取った通信をVPN側へ送るか、端末の通常回線へ戻すかをルールで判断します。したがって、接続先のノードだけでなく、アプリの選び方とルールの優先順位が結果を左右します。
代表的な方式は「VPN対象アプリを指定する方式」と「VPNから除外するアプリを指定する方式」です。前者では、一覧から選んだアプリだけがVPNへ送られます。後者では、原則として全通信をVPNへ送り、指定したアプリだけを直接接続にします。保護したいアプリが少ない場合は対象方式、対象外にしたいアプリが少ない場合は除外方式が扱いやすいでしょう。
| 方式 | 通信の初期状態 | 向いている場面 | 注意点 |
|---|---|---|---|
| 対象アプリ方式 | 選択したアプリだけVPN | 保護対象が限定されている場合 | 新しく追加したアプリは自動でVPN対象にならないことがある |
| 除外アプリ方式 | 原則として全アプリがVPN | 大部分の通信をVPNへ送る場合 | バックグラウンド通信もVPNを通り、通信量が増える可能性がある |
| ルール分岐方式 | アプリやドメインなどで判定 | アプリ別と接続先別を組み合わせたい場合 | ルールの順番、DNS、IP判定を一緒に確認する必要がある |
注意したいのは、アプリ一覧に表示される名前と、実際に通信する補助アプリが一致しない場合があることです。動画アプリが別の認証サービスやWebView、広告、通知コンポーネントを使うこともあります。対象アプリだけを選んだのにログイン画面が開かない場合は、関連するシステムコンポーネントまで除外されていないか、またはDNS通信だけが別経路になっていないかを確認します。
- ✅ VPNへ送るアプリと直接接続するアプリを先に紙やメモへ整理する。
- ✅ 対象方式と除外方式のどちらを使っているか、設定画面で確認する。
- ✅ Androidのバッテリー最適化がクライアントを停止しないように確認する。
- ❌ VPN接続中に複数のVPNクライアントを同時起動しない。
クライアントとサブスクリプションを準備する
まず、Androidに対応した公式クライアント、または利用する互換クライアントを決めます。HBVPNはWindows、macOS、iOS、Android、Linuxに対応しており、Androidでは公式クライアントを基本に考えると、アカウントと設定の管理を分けずに済みます。高度なルールを使う場合は、Android対応のsing-box系クライアントなど、アプリ別ルーティングを明示的に提供するものを選びます。
Clash Vergeは主にデスクトップ向けのクライアントであり、Android端末のアプリ一覧から直接設定する用途には向きません。ShadowrocketはiOS向けの代表的なクライアントなので、Androidでは同じ名称の設定画面を期待しない方が安全です。互換クライアントを使う場合は、対応プロトコル、アプリ別のinclude・exclude設定、サブスクリプション更新の仕組みを確認してください。
設定を取得するときは、サービスの公式パネルからサブスクリプションリンクをコピーします。サブスクリプションリンクには複数のノードや接続情報を取得するための情報が含まれる場合があるため、公開したり、知らない相手へ転送したりしないでください。クライアントで「URLから追加」「サブスクリプションを追加」などの項目を選び、取得後にノード一覧が表示されることを確認します。
プロトコル名は速度の順位を表すものではありません。Shadowsocksは軽量なプロキシ方式、VMessとVLESSは主にV2Ray系で使われる方式、TrojanはTLSを利用する構成、Hysteria2はQUICやUDPを利用する方式、WireGuardはVPNトンネルを構築するプロトコルです。クライアント側が対応していても、サブスクリプション側のパラメータと一致しなければ接続できません。初心者は、取り込んだ設定のポート、暗号化、TLS、SNI、UUIDなどを不用意に書き換えないようにしましょう。
Androidでアプリ別ルールを設定する手順
ここでは、一般的なAndroidクライアントに共通する考え方を使います。画面の名称はアプリによって異なりますが、「VPN設定」「アプリ管理」「スプリットトンネル」「アプリルール」「ルーティング」などの項目を探してください。設定変更前に、現在のプロファイルを保存しておくと、問題が起きたときに比較しやすくなります。
- 設定を取り込む:公式パネルからサブスクリプションリンクをコピーし、クライアントの追加画面へ貼り付けます。更新が完了したら、利用可能なノードとプロファイルが表示されることを確認します。
- 接続方式を選ぶ:対象アプリ方式、除外アプリ方式、またはルールモードを選択します。初回は対象アプリを少数に絞ると、どの通信がVPNを通っているか判断しやすくなります。
- アプリを登録する:アプリ一覧からVPNへ送るアプリ、または直接接続させるアプリを選択します。アプリの更新や再インストールで識別情報が変わることがあるため、更新後は一覧を再確認します。
- DNSの扱いを確認する:アプリ通信を直接接続にしても、DNS問い合わせがVPN側へ送られる設定があります。逆に、DNSだけ直接接続されると、アプリの接続先判定と実際の通信経路が一致しない場合があります。クライアントのDNSモードとAndroidのプライベートDNSを確認します。
- AndroidのVPN確認を許可する:初回接続では、AndroidがVPN接続の許可を表示します。内容を確認して許可し、ステータスバーのVPN表示とクライアントの接続状態を確認します。
- 一つずつ検証する:対象アプリを開き、ログイン、ページ表示、音声や映像の再生など、通常利用に必要な動作を確認します。その後、直接接続にしたアプリも開き、ローカルサービスや決済機能に問題がないか調べます。
ルールを追加するときは、一度に多くのアプリを選ばないことが大切です。最初にブラウザーなど確認しやすいアプリを一つ登録し、次に必要なアプリを追加します。接続できない場合、最後に追加したルールを戻せば原因を絞れます。アプリ名だけでなく、仕事用プロファイル、複製アプリ、ゲームのランチャーと本体が別項目になっていないかも確認してください。
動作確認と通信速度の調整
接続後は、単にVPNアイコンが表示されたかだけで判断しません。VPN対象アプリでは出口地域、ページ表示、認証、ストリーミングなど必要な機能を確認し、直接接続のアプリでは通常回線に戻っているかを確認します。Androidのブラウザーで出口情報を調べる場合も、そのブラウザーがVPN対象か直接接続かを先に確認してください。
速度が落ちたと感じたときは、スプリットトンネルを無効にして全通信をVPNへ送る設定と比較するのではなく、条件をそろえて切り分けます。まずバックグラウンド更新、クラウド同期、動画の自動再生を止めます。次に同じアプリ、同じWi-Fiまたはモバイル回線、同じノードでルールの有無を比較します。対象アプリだけ遅いなら、アプリ側の接続先、DNS、ルールの優先順位を疑います。端末全体が遅いなら、ノード混雑、無線環境、クライアントの省電力停止を確認します。
90+
対応国数
200+
利用可能な回線
無制限
同時利用デバイス
HBVPNでは90か国以上、200以上の回線を利用できるため、特定ノードだけで判断せず、目的に合う地域や別の回線も比較できます。ただし、スプリットトンネリングが有効でも、VPNへ送るアプリの通信量はプランの通信量として扱われます。月額プランは¥9.9/月で60GB、¥18/月で250GB、¥28/月で500GBです。通信量を多く使うアプリを対象にする場合は、バックグラウンド再生や自動更新も確認しましょう。
直接接続にしたアプリが開かない場合は、Androidの「常時接続VPN」や「VPNを使用しない接続をブロック」の状態も確認します。後者が有効だと、除外したアプリの通信まで遮断されることがあります。安全性を優先してこの機能を使う場合は、除外方式と矛盾しないかを確認し、必要なアプリが通信できることをテストしてから常用してください。
接続できないときの切り分けとリセット
アプリ別ルールを設定した後に接続できなくなった場合、すぐに設定全体を作り直すのではなく、段階的に戻します。まずVPNを切断し、クライアントを完全に終了してから再起動します。次に、ノードを変更せず、スプリットトンネルだけを一時的に無効にします。全通信で接続できるなら、ノードよりもアプリルール、DNS、除外設定に原因がある可能性が高くなります。
- ✅ アプリルールを一時的に空にし、全通信で接続できるか確認する。
- ✅ 接続できた後、アプリを一つずつ対象へ戻して問題のルールを特定する。
- ✅ サブスクリプションを更新し、期限切れや設定変更がないか確認する。
- ✅ AndroidのVPN許可、バッテリー制限、常時接続VPNの状態を確認する。
- ❌ 接続不良のまま複数のプロトコルやノードを同時に変更しない。
それでも改善しない場合は、プロファイルを削除して再インポートします。再インポート前に、必要なアプリ一覧と現在のルールをメモしておくと、原因を残したまま復元することを避けられます。クライアントのデータ消去は最後の手段です。保存済みのサブスクリプションリンク、カスタムルール、ログイン情報が消える可能性があるため、公式パネルから再取得できる情報と端末だけに保存されている情報を分けて確認してください。
なお、Androidのアプリ更新後だけ問題が起きる場合は、パッケージの変更や補助サービスの追加が原因かもしれません。対象アプリ本体だけでなく、関連するWebView、認証、通知の動作も確認します。業務用プロファイルや複製アプリは通常のアプリ一覧と別に扱われることがあるため、同じ名前の項目が複数あるときはアイコンとプロファイルを確認して選択します。
AndroidスプリットトンネルのFAQ
対象アプリをVPNへ送ったのに通信が直接接続になります。なぜですか?
VPNから除外したアプリも通信できません。どうすればよいですか?
スプリットトンネルで通信量は節約できますか?
設定を初期状態へ戻す最も安全な方法は何ですか?
Androidのスプリットトンネリングは、VPNを常時オンにするか完全にオフにするかの二択を減らせる便利な機能です。一方で、対象方式と除外方式、DNS、補助アプリ、Androidのキルスイッチが連動するため、最初から複雑なルールを作ると原因を追いにくくなります。保護したいアプリを少数から登録し、直接接続との違いを一つずつ確認しながら運用するのが、安定した設定への近道です。