Android VPN の設定ガイド:アプリのインストールから接続確認まで
Android にアプリを入れるだけなら数分で終わります。初心者がつまずくのはその後の手順です。システムのダイアログの意味が分からない、バックグラウンドで省電力機能に止められる、繋がったのに DNS はまだローカルのまま——。この Android VPN ガイドでは手順を 5 つに分け、それぞれの設定画面のたどり方と確認ポイントを示します。
Android にアプリを入れるだけなら数分で終わります。初心者がつまずくのはその後の手順です。システムのダイアログの意味が分からない、バックグラウンドで省電力機能に止められる、繋がったのに DNS はまだローカルのまま——。この Android VPN ガイドでは手順を 5 つに分け、それぞれの設定画面のたどり方と確認ポイントを示します。
Android には 4.0 以降、VpnService というインターフェースが組み込まれています。サードパーティ製のクライアントはこれを使って端末内に仮想ネットワークインターフェースを作り、アプリが送り出すパケットをいったんそこへ引き込みます。その後クライアントが規則に従って、暗号化トンネルへ流すか、そのままローカルネットワークへ渡すかを決めます。この仕組みを押さえておけば、後のダイアログやスイッチの意味がすべてつながります。誰が通信を引き受けているのかを OS が把握する必要があるため、許可は必ず本人が与えることになり、アプリを入れ直した後ももう一度確認を求められるのが普通です。
デスクトップ版と比べて、Android では先に覚えておきたい違いが 2 つあります。1 つは、同時に有効にできる VPN アプリは 1 つだけという点です。2 つのクライアントを同時に起動すると、後から起動した方が先のものを押し出してしまい、利用者からは「急に切れた」ように見えます。もう 1 つは、OS のバックグラウンドプロセス管理がより強力な点です。画面上は接続中のままでも、下の接続はすでに回収されていることがあります。前者はインストールと共存、後者は接続維持に関わる話で、以降の章でそれぞれ扱います。
クライアントと回線の間をどのプロトコルで通信するかによって、ハンドシェイクの方式やネットワーク環境への敏感さが変わります。以下に Android でよく使われるものを挙げます。ノードに繋がらないときは、闇雲にノードを変える前に、まず特徴を照らし合わせて切り分けてください。
| プロトコル | 通信の特徴 | Android 側の注意点 |
|---|---|---|
| Shadowsocks | 軽量な転送で、TCP / UDP 上に載る | 暗号化方式はクライアントが対応している一覧と揃える必要がある |
| VMess | ユーザー ID を持ち、ハンドシェイク時に時刻を検証する | 端末の時刻が大きくずれているとハンドシェイクに失敗する |
| VLESS | それ自体は暗号化せず、外側の転送に依存する | 通常は TLS や Reality と組み合わせて使う |
| Trojan | 通常の HTTPS 通信を装う | SNI やパスワードの誤りは接続タイムアウトとして現れる |
| Hysteria2 / TUIC | QUIC ベースで、UDP を使う | UDP を制限するネットワークもあり、予備の回線が要る |
本サービスの回線はすべて軍用グレードの暗号化を使用しています。クライアントで選ぶプロトコルが左右するのは、ハンドシェイクの方式、通信の特徴、そして一部のネットワーク環境での通過しやすさです。この 2 つは混同しないでください。暗号化はサービス側が担保し、プロトコルは「どう繋ぐか」だけを決めます。
回線を選ぶときに実際に使える指標は多くありません。本サービスが公開している以下の項目は、そのまま確認できます。
120+
対応国・地域
240+
回線総数
無制限
同時接続デバイス数
14 日間
理由を問わない返金
デバイス数に上限がないということは、タブレット、予備機、古いスマートフォンを 1 つのアカウントで共有できるということです。台数が増えたからといって、もう 1 契約を買う必要はありません。返金条件は試す余地を与えてくれます。まず 1 台を以下の手順で整え、それから他の端末へ広げるかどうかを決めれば十分です。
Android 版クライアントは本サイトのダウンロードページから入手します。先にアカウントへログインしてください。ダウンロードページに静的なインストールパッケージの直リンクはなく、ログイン後に取得できるものがアカウントに紐づいたバージョンとサブスクリプション情報になります。インストール時に「提供元不明のアプリ」という警告が出ることがありますが、これはサイドロードでは一般的なものです。現在使っているファイルマネージャーにインストールの続行を許可してください。
インストールが終わっても、すぐに接続ボタンを押さないでください。Android は初回接続時にシステムレベルの許可ダイアログを出します。先にサブスクリプションを設定しておくと、やり取りが 1 回減ります。
サブスクリプションリンクは https で始まるアドレスで、クライアントが定期的にアクセスしてノード一覧を取得します。サーバー側で回線が増減したら、クライアントで「サブスクリプションを更新」を 1 回押すだけで新しい一覧が手に入ります。ノードを 1 つずつ手動で追加する必要はありません。これがサブスクリプション型クライアントと手動設定の最も大きな違いです。
クライアントによっては、サーバーアドレス、ポート、パスワード、プロトコルパラメータを手動で入力できます。手動設定の利点はサブスクリプションサービスに依存しないこと、欠点はサーバー側で回線が変わると 1 件ずつ直す必要があることです。使っているクライアントがサブスクリプションの読み込みに対応していない場合を除き、サブスクリプションを優先してください。手間が少なく、パラメータの入力ミスも起きにくくなります。
初めて接続を押したとき、システムが「接続リクエスト」ダイアログを表示し、クライアント名と引き受ける範囲を一覧で示します。このダイアログはクライアントが作ったものではなく、Android がチェックのために出しています。「このアプリを信頼する」にチェックを入れて OK を押して初めて接続が確立します。キャンセルするとクライアントは「接続中」のまま止まり、次回以降に必ず再表示されるとは限りません。
多くの Android クライアントはアプリ単位のプロキシに対応しており、チェックしたアプリだけをトンネルに通し、それ以外は直接接続にできます。ネットバンキング、社内ネットワーク、地域密着型のアプリは直接接続にしておくと、出口の地域が変わったことで不正利用判定に引っかかるのを避けられます。国際回線が必要なアプリだけを個別にチェックしてください。この種のルールはクライアントの端末内に保存され、機種変更しても同期されません。新しい端末ではもう一度設定し直す必要があります。
Android の省電力機能は、画面が消えるとバックグラウンドの通信を制限します。そのため常時接続が切られてしまいます。現れ方はこうです。画面ロックから 10 分後に端末を開くと、クライアントは「接続済み」と表示しているのに Web ページが開かない。手動で切断して再接続すると戻る。これは回線の品質ではなく、OS がプロセスの通信権限を取り上げているためです。
ここまで済んだら、画面を消して数分置いてから戻り、クライアントが接続状態のままか、Web ページがそのまま開くかを確認してください。それでも切れる場合は、別の回線で試します。長時間アイドル状態の UDP セッションを回収するネットワーク環境もあり、QUIC ベースのプロトコルは TCP ベースより影響を受けやすい傾向があります。
「接続済み」と表示されているのは、クライアント自身がそう認識しているだけで、通信が本当に回線から出ているかまでは示していません。以下の 4 項目を順に確認すれば、「繋がったのに使えない」ケースのほとんどをカバーできます。
スマートフォンのブラウザで任意の IP 確認ページを開き、2 点を見ます。表示されたアドレスが選んだ回線の所在地のものか、そして事業者や ASN が回線の種類と合っているかです。ローカルのアドレスのままなら通信はトンネルに入っていないので、前の節に戻って権限と分割トンネリングの設定を確認してください。
DNS リーク検出ページを開くと、現在有効な DNS サーバーが一覧で表示されます。理想的な状態では、それらは回線の出口付近にあり、契約しているローカル回線の事業者のアドレスではありません。ローカルの DNS が現れる場合は、順に確認してください。プライベート DNS に固定のホスト名を入れていないか、クライアントの DNS モードがリモート解決になっているか、「LAN をバイパス」を誤って有効にしていないか。
機内モードをオンにし、10 秒待ってからオフにして、クライアントが自動で復帰するかを見ます。自動で戻ればバックグラウンド維持の設定が効いています。手動で 1 回押さないと戻らない場合は、バックグラウンドが制限されているので、前の節に戻って除外設定を補ってください。
直接接続に設定したアプリとトンネルを通すアプリをそれぞれ開き、別々に出口アドレスを確認します。両者は違うアドレスになるはずです。すべて同じなら分割トンネリングのルールが効いていません。グローバルモードになっていないか確認してください。
以下の表は「症状—原因—対処」の形でまとめたものです。困ったときはまずここを照らし合わせてください。多くは回線を変えなくても、どこかのスイッチが噛み合っていないだけで解決します。
| 症状 | 主な原因 | 対処 |
|---|---|---|
| 接続を押しても読み込みが続き、システムのダイアログが出ない | 以前に誤ってキャンセルし、権限が与えられていない | 切断して再接続し、システムのダイアログで信頼にチェックを入れて OK を押す |
| 接続済みと表示されるのに Web ページが開かない | DNS がトンネルを通っていない、またはプライベート DNS にホスト名を固定している | プライベート DNS を自動にし、再接続後にリーク検出を 1 回行う |
| 画面ロックから数分で通信が切れる | 省電力機能がバックグラウンドの通信を止めている | バッテリー最適化を「最適化しない」にし、メーカー ROM の自動起動を有効にする |
| 一部のアプリだけ回線を通らない | アプリ単位のプロキシ一覧でチェックが入っていない | 分割トンネリングの設定でそのアプリを個別にチェックする |
| サブスクリプションを更新してもノードが変わらない | クライアントがキャッシュした一覧を使っている | 手動で更新を 1 回実行する、またはサブスクリプションを削除して読み込み直す |
| いくつかの回線に変えてもハンドシェイクに失敗する | 端末の時刻とサーバーの時刻が大きくずれている | システムの時刻を自動同期に設定してから再試行する |
表の方法をすべて試しても繋がらない場合は、まず同じアカウントでパソコン側が正常か確認してください。パソコンでは正常で Android だけ異常なら、原因はほぼ端末のシステム設定にあります。両方とも異常なら、回線かアカウントそのものの問題です。