AndroidでVPNを使うとき、通信速度やアプリごとの接続先を決めるのはVPNノードだけではありません。ドメイン名をIPアドレスへ変換するDNSの経路も、ページの表示開始、サービスの地域判定、広告やトラッカーの名前解決、分割トンネルの動作に影響します。VPNを接続したのに一部のアプリだけ開けない、通常のウェブサイトは表示できるのに特定サービスでログインできない、といった場合は、ノードを何度も切り替える前にDNS設定を確認すると原因を絞り込みやすくなります。

Androidには、システム全体の「プライベートDNS」と、VPNクライアント内部のDNS設定があります。前者はAndroidの設定画面から指定する名前解決方式で、後者はVPNトンネルやルール分岐と一緒にクライアントが管理します。両方を同時に変更すると、どの設定が有効なのか分かりにくくなるため、最初は一つずつ確認することが重要です。この記事では、カスタムDNSの考え方、Androidでの設定手順、分割トンネルとの関係、問題が起きた場合の復旧方法を順番に説明します。

AndroidのカスタムDNSを理解する

Androidの「プライベートDNS」には、オフ、自動、プライベートDNSプロバイダのホスト名という考え方があります。端末やメーカーによってメニュー名は少し異なりますが、通常はネットワークとインターネット、接続、その他の接続設定などの中にあります。ホスト名を指定する方式では、単なるIPアドレスではなく、DNS over TLSに対応したプロバイダのホスト名を入力します。入力欄にURL全体や「https://」を付けると認識されない場合があるため、サービスが案内しているホスト名の形式をそのまま使います。

一方、VPNクライアントのDNS設定は、接続中のトンネル内部で使うリゾルバーを指定するものです。クライアントによっては、通常のDNS、暗号化DNS、フォールバックDNS、Fake IP、ホスト名の除外、プロキシ経由でのDNS解決などを個別に設定できます。Clash系クライアントやsing-box系クライアントでは、DNS設定とルール設定が別の項目として存在することが多く、DNSを変更しただけで全アプリの通信経路が変わるわけではありません。

設定場所 主な役割 適している場面 注意点
AndroidのプライベートDNS 端末側の名前解決方式を指定する VPNを使わない通信も含め、基本のDNS方針を整えたい場合 VPNクライアントが独自DNSを強制すると、設定が使われないことがある
VPNクライアントのDNS トンネル、ルール、分割トンネルと連携して解決する プロキシ経由と直接接続を分けたい場合 クライアントごとに設定項目と構文が異なる
ルーターのDNS 同じWi-Fiに接続した端末へDNSを配布する 家庭内の複数端末をまとめて管理したい場合 モバイル回線やVPNトンネル内のDNSには直接適用されない場合がある

DNSプロバイダを選ぶ際は、速度だけでなく、ログ方針、暗号化方式、障害時の挙動、利用地域での到達性を確認します。名前解決の応答が速くても、対象サービスとの相性が悪ければ接続開始が遅くなったり、地域判定が意図しない結果になったりします。特定のサービスだけを目的にDNSを選ぶのではなく、通常の閲覧、アプリ利用、VPN接続の三つを分けて確認しましょう。

AndroidでカスタムDNSを設定する手順

設定を始める前に、現在のWi-Fiまたはモバイル通信で通常のウェブ閲覧ができることを確認し、VPNクライアントを一度停止します。元の状態を記録せずに複数の項目を変更すると、失敗したときに戻せなくなります。設定画面の名称はAndroidのバージョンや端末メーカーによって異なるため、画面上部の検索欄で「プライベートDNS」と検索する方法も有効です。

  1. Androidの設定を開き、「ネットワークとインターネット」または接続関連の項目へ移動します。
  2. 「プライベートDNS」を開き、現在の選択肢が自動かオフかを確認します。
  3. プロバイダのホスト名を指定する項目を選び、案内されたホスト名だけを入力します。
  4. 保存後、Wi-Fiを一度切り替えるか、機内モードを短時間オンにして接続を再確立します。
  5. 通常のウェブサイト、ログインが必要なサービス、名前解決を利用するアプリを順番に確認します。
  6. 問題があれば、入力ミスを確認したうえで自動へ戻し、VPNを停止した状態で比較します。

カスタムDNSを設定した後は、すぐVPNをオンにするのではなく、まずVPNなしの状態で結果を確認します。これにより、DNS自体が到達できないのか、VPNクライアントが別のDNSを上書きしているのかを分離できます。VPNをオンにした後に挙動が変わった場合は、クライアントのDNSモード、接続先、ルール分岐を確認してください。特に「DNSリクエストをプロキシ経由にする」「トンネル内で解決する」といった項目は、通常のAndroid設定より優先されることがあります。

  • ✅ 変更前に、AndroidのプライベートDNSが自動かオフかを記録する
  • ✅ ホスト名はプロバイダの公式案内からコピーし、余分な空白やURL記号を付けない
  • ✅ VPNなし、VPNあり、Wi-Fi、モバイル通信を分けて動作を確認する
  • ❌ Android設定とVPNクライアントのDNSを同時に変更して原因を分からなくしない
  • ❌ DNSを変えただけで、ノードの混雑や通信経路まで改善したと判断しない

DNSと分割トンネルの関係

分割トンネルは、すべての通信をVPNへ送るのではなく、アプリやドメイン、IPアドレスなどの条件によって、VPN経由と直接接続を分ける仕組みです。Androidクライアントでは「VPNを使わないアプリを選ぶ」「指定アプリだけVPNへ送る」「ルールモード」「バイパス」などの名称で提供されます。名称が似ていても、実際の動作はクライアントごとに異なるため、設定後は対象アプリの通信とDNS解決を別々に確認する必要があります。

たとえば、仕事用アプリや家庭内機器は直接接続にし、特定のウェブサービスだけVPN経由にする構成では、アプリの通信経路と名前解決の経路が一致しないことがあります。アプリが直接接続なのにDNSだけVPN側へ送られると、社内ホスト名やローカル機器名を解決できない場合があります。反対に、通信はVPN経由なのにDNSがローカル回線へ流れると、名前解決の地域やプライバシー方針が意図と異なる可能性があります。

ルール分岐で確認したいDNSモード

Clash系の設定では、ドメインルールに応じて異なるDNSサーバーを使う設計があります。sing-boxではDNSサーバー、ルール、ルートの関係を構造化して定義します。公式クライアントでも、全量トンネル、ルール分岐、アプリ単位の除外などによってDNSの扱いが変わることがあります。設定ファイルを別のクライアントへ移す場合、プロトコルの互換性だけでなく、DNSフィールド、Fake IP、ルールセットの対応状況も確認してください。

Shadowsocks、VMess、Trojan、Hysteria2、WireGuardなどは接続方式やプロトコルの層に関する設定であり、DNSプロバイダそのものではありません。プロトコルを変更すればDNS問題も自動的に解決する、とは限りません。接続方式を変える前に、名前解決の失敗、トンネル確立の失敗、ルールの誤判定をそれぞれ切り分けるのが安全です。

分割トンネルの結論

アプリの通信経路だけでなく、ドメインをどのDNSで解決するかまで一組のルールとして考えます。VPN経由と直接接続を分ける場合ほど、DNSの経路を別に確認することが重要です。

設定が反映されたかを確認する方法

DNS設定の確認では、単一のテストサイトや一回の速度測定だけで結論を出さないでください。まずVPNをオフにして名前解決とウェブ閲覧を確認し、次にVPNをオンにして同じ操作を行います。その後、分割トンネルの対象アプリを一つずつ起動し、対象外のアプリやローカル機器へのアクセスにも影響がないかを見ます。アプリを完全終了してから再起動すると、古い接続やキャッシュの影響を減らせます。

確認すべき項目は、ドメインが解決できるか、解決結果が毎回大きく変化しないか、VPN接続前後で意図した経路になっているか、地域判定が必要なサービスでアカウントや利用条件に問題がないかです。DNSのキャッシュが残っていると、設定変更直後だけ古い結果が表示されることがあります。Wi-Fiからモバイル通信へ切り替えたとき、画面ロックから復帰したとき、VPNノードを変更したときにも再確認すると、常時接続時の問題を見つけやすくなります。

症状 考えられる原因 最初に行う確認
すべてのサイトが開かない ホスト名の誤入力、DNS到達不可、VPNクライアントの競合 プライベートDNSを自動へ戻し、VPNを停止して比較する
一部のドメインだけ失敗する ルール分岐、DNSフィルタ、地域や応答形式の相性 クライアントのDNSルールと除外設定を確認する
VPN接続中だけアプリが使えない アプリ除外、トンネル内DNS、IPv4とIPv6の扱い 全量トンネルと分割トンネルを一時的に比較する
ローカル機器が見つからない ローカルDNSやプライベートアドレスがVPN側へ送られている LAN関連の除外ルールと直接接続設定を確認する

問題が出たときの安全な復旧手順

接続障害が起きた場合は、設定をさらに追加するのではなく、変更した項目を一つずつ元に戻します。最初にVPNを切断し、AndroidのプライベートDNSを自動へ戻します。次にVPNクライアント内のカスタムDNS、ルール分岐、アプリ除外を初期状態へ戻し、端末のネットワークを再接続します。それでも改善しない場合は、Wi-Fiとモバイル通信を切り替えて、回線側の問題と端末側の問題を分離します。

設定ファイルを使うクライアントでは、元の設定を削除する前にバックアップを保存します。ただし、出所不明の設定をそのまま再利用せず、DNSサーバー、ルール、リダイレクト、Fake IP、分割トンネルの項目を確認してください。接続できないからといって、複数のVPNアプリを同時に起動するのは避けます。AndroidではVPNサービス同士が競合し、どのアプリがトンネルやDNSを管理しているのか分からなくなるためです。

復旧後は、まず通常の通信、次にVPN接続、最後に分割トンネルという順で機能を戻します。各段階で一つのドメインと一つのアプリを確認し、問題がなければ次の設定を有効にします。これなら、カスタムDNS、クライアント、ルールのどこで問題が発生したかを追跡できます。

最終チェック

AndroidのカスタムDNSは、速度を万能に改善する機能ではなく、名前解決の経路を整える設定です。VPNの接続方式、クライアントのDNSモード、分割トンネルのルールを分けて確認し、異常時は自動設定へ戻してから段階的に再構成しましょう。