Android VPN は導入そのものは難しくありません。難しいのはその後です。サブスクリプションを貼ってもノード一覧が空、システムの権限ダイアログをキャンセルしてしまった、通知バーに鍵アイコンは出ているのにページが開かない——。ここでは実際の操作順に沿って、各ステップでどうなるはずか、ならないときにどこを確認するかを書き出します。

  • 120+対応国・地域
  • 150+利用可能な回線
  • 無制限同時接続デバイス数
  • 7 日間理由を問わない返金

インストール前に確認しておきたいこと

Android のクライアントがやることは 3 つだけです。サブスクリプションからノードを読み出す、システムに VPN トンネルを張る、ルールに従ってどの通信をトンネルに入れるか決める。設定の失敗は、ほぼこの 3 つのどれかに当てはまります。

  • ✅ 自分の端末の Android バージョンを把握しておく:設定 → 端末情報 → Android バージョン。権限ダイアログやバッテリー設定の場所を判断するのに使います。
  • ✅ 有効なサブスクリプションリンク、またはノードリンクが 1 本手元にある。
  • ✅ 端末が現在ふつうにインターネットへ接続できている。サブスクリプションの取得自体が通常の HTTPS リクエストなので、ネットにつながらないとノードを更新できません。
  • ❌ root も Bootloader のアンロックも不要です。権限はすべてシステム設定から付与します。
  • ❌ サーバーアドレス、ポート、パスワードを手入力する必要はありません。これらはすべてサブスクリプションに含まれています。

サブスクリプションリンクは 1 本の HTTP アドレスです。クライアントがそれを取得すると、Base64 でエンコードされたテキストが返り、デコードすると各行がノード URI になっています:vless://、vmess://、trojan://、ss://、hysteria2://、tuic:// などが現れます。クライアントは認識できるプレフィックスのノードだけを表示します。サブスクリプションに Hysteria2 のノードがあってもクライアントが対応していなければ、ノード一覧は数件少なくなりますが、サブスクリプションが壊れているわけではありません。

プロトコルが決めるのは「つながるかどうか」ではなく「回線の挙動」です。VMess、VLESS、Trojan、Shadowsocks は TCP または WebSocket を使うため互換性は最も高いものの、パケットロスに敏感です。Hysteria2、TUIC は QUIC、つまり UDP を使うので、モバイル回線の切り替えや電波の弱い状況ではハンドシェイクが速い反面、事業者が UDP を制限していると一切つながりません。ある回線がつながらないときは、まずプロトコル系統を変え、次に地域を変えてください。

アカウントの開設に必要なのはユーザー名とパスワードだけで、メールアドレスは不要です。そのため確認メールを待つ工程はなく、開設後に受け取ったサブスクリプションリンクをそのままクライアントに貼り付けられます。

クライアントを導入し、サブスクリプションを読み込む

以下の順番で進めてください。途中で手順を飛ばさないように。

  1. インストーラーを入手する。Android クライアントは公式ダウンロードページから取得し、第三者アプリストアにある同名パッケージは使わないでください。期待される結果:インストーラーが正常に開き、システムのインストール確認が表示されます。
  2. 今回のインストールを許可する。Android 8 以降はアプリ単位の許可方式で、システムが「不明なアプリのインストール」画面へ移動します。ブラウザまたはファイルマネージャーのスイッチをオンにしてから戻り、作業を続けます。
  3. クライアントを開き、サブスクリプションの入口を探す。多くのクライアントでは、サイドバーまたは下部の「設定」「サブスクリプション」タブにあります。
  4. サブスクリプションリンクを貼り付ける。前後にスペースや改行が入らないよう注意してください。入力欄によっては改行をリンクの一部とみなし、送信後にそのまま 404 が返ることがあります。
  5. 保存してサブスクリプションを更新する。期待される結果:数秒でノード一覧が表示され、地域ごとにグループ化され、件数がサブスクリプションと一致します。
  6. 回線を 1 本選ぶ。最初は TCP 系プロトコルのノードで通信を通し、その後 UDP 系プロトコルに切り替えて比較してください。こうすると不具合が出たときに、プロトコル側の問題か回線側の問題かを切り分けられます。

サブスクリプションリンクをブラウザで直接開くと Base64 のテキストが表示されます。デコードするとおおよそ次のような構造で、# の後ろがノード名です。以下のアドレスと認証情報は形式を示すためのサンプルです:

vless://[email protected]:443?encryption=none&security=tls&type=ws&path=%2Fws#日本-IEPL
trojan://[email protected]:443?sni=node.example.com#シンガポール-中継
hysteria2://[email protected]:8443?sni=node.example.com#アメリカ-直結
サブスクリプションの更新に失敗する原因は、9 割が次の 3 つです。リンクがチャットアプリで途中から切れたり、自動でスペースが付いたりしている。端末のシステム時刻が大きくずれていて TLS 証明書の検証に失敗している。サブスクリプションのドメインが現在のネットワークから直接接続できない。対処はそれぞれ、リンクを丸ごとコピーし直す、時刻を自動同期に設定する、別のネットワークで更新する、です。

VPN 権限の付与と初回接続

回線の右側にある接続ボタンを押すと、Android がシステムダイアログを表示します。タイトルは「接続リクエスト」で、内容はクライアントが VPN 接続を設定しネットワーク通信を引き受けようとしている旨です。このダイアログはシステムが描画するもので、クライアントが描いているものではありません。「このアプリを信頼する」にチェックを入れて OK を押すと、トンネルが確立します。

期待される結果:通知バーに鍵または VPN のアイコンが表示され、クライアント画面が接続済みになり、今回の送受信バイト数が表示されます。

誤ってキャンセルを押すと、クライアントは未接続のまま止まり、再度接続を押してもダイアログが出ないことがあります。システムが今回の拒否を記憶しているためです。対処:設定 → ネットワークとインターネット → VPN を開き、一覧に該当クライアントの構成があれば削除してから、クライアントに戻って再接続するとダイアログが再び表示されます。

システム側でオンにしておきたいスイッチがもう 2 つあります:

  • 常時接続 VPN。起動後に自動で接続を確立し、アプリが起動する前にトンネルが準備済みになるため、ロック解除直後の数秒間に通信がローカル回線へ流れることがありません。
  • VPN をバイパスする接続をブロック。トンネルが切れたときにモバイル回線へフォールバックせず、そのまま通信を遮断します。代わりに、トンネル異常時は端末が完全にオフラインになるため、手動でこのスイッチを切る必要があります。

分流モードは、どの通信をトンネルに入れるかを決めます。グローバルモードではすべての通信が海外の出口を通るため、国内アプリも遠回りになり、ログイン認証が頻繁に求められたり動画の読み込みが遅くなったりすることがあります。ルールモードはドメインと IP で振り分け、国内サイトは直結、海外サイトはプロキシ経由にします。普段はこちらを使ってください。クライアントの「中国本土をバイパス」「アプリ別プロキシ」はいずれもルールモードの一種です。

DNS も見落としやすいポイントです。クライアントがドメイン解決をローカルの事業者に任せていると、Web の通信がトンネルを通っていても解決リクエストはローカルに露出したままになります。これが DNS リークです。クライアントには通常「リモート DNS」または「DNS over プロキシ」のスイッチがあるので、これをオンにして解決リクエストもトンネル経由で出るようにしてください。

クライアントを省電力の除外設定に追加

Android の Doze は画面オフがしばらく続くとバックグラウンド通信を制限し、メーカーはさらに独自のバックグラウンド管理を重ねています。その結果、クライアントのプロセスが凍結されてトンネルが切れているのに、画面には接続済みと表示されたままになります。各社で入口の名前は違いますが、オンにするスイッチは同じ種類です:

システムオンにするスイッチおおよその場所
素の Android / Pixelバッテリー → 制限なし設定 → アプリ → クライアント → バッテリー
Xiaomi HyperOS / MIUI省電力ポリシー → 制限なし;自動起動 → 許可設定 → アプリ設定 → アプリ管理 → クライアント
Huawei HarmonyOSアプリ起動管理 → 手動管理にし、自動起動・関連起動・バックグラウンド動作をオン設定 → アプリとサービス → アプリ起動管理
OPPO / OnePlus ColorOS自動起動を許可、バックグラウンド動作を許可設定 → バッテリー → アプリの消費電力管理
vivo OriginOSバックグラウンド消費電力 → 許可設定 → バッテリー → バックグラウンド消費電力管理
Samsung One UI「スリープ状態のアプリ」から外す設定 → バッテリー → バックグラウンド使用の制限

システムのバージョンによって名称は変わります。「自動起動」「バックグラウンド動作」「消費電力」といったキーワードで探せば、おおむねアプリまたはバッテリーの分類にあります。

あわせて次の 2 つも行ってください。最近使ったアプリの画面でクライアントのカードをロックする(多くのシステムは長押しまたは下方向へのスワイプでロックでき、一括クリーンアップで終了されるのを防げます)。クリーナー系や省電力系のアプリを入れている場合は、クライアントをそれらのホワイトリストに追加する。そうしないと、ここまでの設定がすべて無効になります。

本当に国際回線を通っているか確認する

接続できたからといって設定が正しいとは限りません。次の 3 ステップでトンネル、DNS、分流をそれぞれ確認し、すべて通って初めて設定完了です。

出口 IP を確認する

ブラウザで任意の IP 確認ページを開き、接続前に一度結果を記録し、接続後にもう一度見ます。2 回で結果が異なり、2 回目の所在地が選んだノードの地域と一致していれば、Web の通信は確かにトンネルに入っています。

例外が 1 つあります。ストリーミング向けのノードは中継出口を使うことが多く、IP の所在地がノード名の地域と一致しない場合があります。判断基準は「ローカル IP と異なること」であり、「ノード名と一字一句一致すること」ではありません。

DNS 解決がどこで行われているか見る

DNS リーク検出ページでリゾルバの一覧を確認します。そこにローカル事業者のアドレスが残っているなら、解決がトンネルを通っていません。対処:クライアントでリモート DNS をオンにする。あわせて、システムのプライベート DNS を自動に戻してください。システム側の DoT がクライアントの DNS 設定を迂回することがあります。

分流ルールが期待どおりか見る

国内サイトと海外サイトをそれぞれ開きます。ルールモードでは、国内サイトは直結され、速度は未接続時と同程度になるはずです。海外サイトはプロキシ経由になります。国内サイトまで遠回りしている場合は、まずグローバルモードに切り替わっていないか確認し、次にサブスクリプションのルールセットが更新されているかを見てください。

3 ステップすべて通って初めて設定完了です。出口 IP が変わっただけでは、通信がトンネルに入ったことしか分かりません。DNS が追従しているかどうかで、一部のアプリがローカルの解決結果を受け取るかが決まります。分流ルールは、どのアプリがそもそもトンネルに入らないかを決めます。どれか 1 つでもずれていると、症状は「つながっているのに使いにくい」になります。

よくあるつまずきと対処

症状ごとに次の表と照らし合わせてください。確認する順番は固定するのがおすすめです。まずサブスクリプションが最新か、次に権限とトンネルが確立しているか、最後に DNS と分流を見ます。

< class="table-scroll">
症状考えられる原因対処
サブスクリプションの更新に失敗し、タイムアウトまたは 404 が表示されるリンクが途中で切れている、スペースが入っている、またはサブスクリプションのドメインに現在のネットワークから直接接続できないリンクを丸ごとコピーし直す。Wi-Fi またはモバイルデータに切り替えて再試行する
サブスクリプションの更新は成功するが、ノード一覧が空クライアントがサブスクリプション内のプロトコルプレフィックスを認識できないそのプロトコルに対応したクライアントに変える、または汎用プロトコルのノードに切り替える
接続を押してもシステムのダイアログが出ない以前の拒否をシステムが記憶しているシステムの VPN 設定で古い構成を削除し、クライアントに戻って再接続する
鍵アイコンは出ているが、Web ページが開かないDNS がトンネルを通っていない、または分流ルールでそのアプリが直結に振り分けられているリモート DNS をオンにする。グローバルモードに切り替えて再確認する
画面オフから数分で切断されるバッテリー最適化がクライアントのプロセスを凍結している前節の表に従ってホワイトリストに追加し、バックグラウンドでロックする
動画は開くが、頻繁にバッファリングするUDP が制限されている、またはノードの出口が混雑しているTCP 系プロトコルのノードに変える、または別の地域で試す
回線自体も変化します。同じ地域には通常複数の回線があり、種類(IEPL 専用線、中継、直結)によって挙動も異なります。ある地域につながらないときは、まずサーバー一覧で同じ地域の別回線に切り替え、それからクライアント側の問題かどうかを判断してください。

設定が済んだら、日常的に見るのは 2 点だけです。サブスクリプションを定期的に更新すること、OS のメジャーアップデート後にバッテリー設定を再確認すること(アップデートでバックグラウンドのホワイトリストがリセットされることがよくあります)。あとはクライアントに任せておけば問題ありません。