WindowsでVPNを使っていると、VPN自体は「接続済み」なのにウェブページだけ開けない、特定のサービスの表示が遅い、ドメイン名を解決できないといった問題が起こることがあります。この場合、回線速度やVPNノードだけでなく、DNSの問い合わせ先が適切に切り替わっているかを確認する必要があります。
DNSは、ドメイン名を接続先のIPアドレスへ変換する仕組みです。VPN接続中にローカルネットワークのDNSを使い続けると、名前解決の経路と実際の通信経路が一致せず、応答の遅延、名前解決エラー、DNSリークの原因になる場合があります。一方で、Windows側にカスタムDNSを設定しただけでは、VPNクライアントのDNS設定が優先されることもあります。重要なのは、設定することよりも、適用後にどのDNSが実際に使われているかを確認することです。
IPv4
基本のDNS設定
IPv6
別途確認が必要
DNS
名前解決を担当
VPN
優先順位を確認
VPN接続時のDNSが重要な理由
通常、Windowsは自宅や職場のルーターから通知されたDNSサーバーを利用します。VPNクライアントを起動すると、仮想ネットワークアダプターが作成され、VPN側が指定したDNSへ問い合わせる構成に変わることがあります。クライアントによっては、VPN接続中だけ専用DNSを利用し、切断すると元のネットワーク設定へ戻します。
問題は、物理アダプター、仮想アダプター、IPv4、IPv6の優先順位が複雑になりやすい点です。たとえばIPv4だけカスタムDNSへ変更しても、IPv6の問い合わせが別のDNSへ送られることがあります。また、ブラウザーがDNS over HTTPSを独自に利用している場合、WindowsのDNS設定を変更しても、そのブラウザーの名前解決には反映されません。
| 症状 | 考えられる原因 | 最初に確認する場所 |
|---|---|---|
| サイト名だけ解決できない | DNSサーバーの応答遅延、設定ミス、キャッシュの不整合 | WindowsのDNS設定と nslookup の結果 |
| VPN接続後に一部アプリだけ使えない | VPNクライアントのDNS優先、分割トンネル、アプリ独自のDNS | クライアント設定と仮想アダプター |
| 接続済みなのにページ表示が遅い | 遠いDNS、失敗した問い合わせの再試行、IPv6経路の不一致 | IPv4とIPv6の両方の設定 |
| VPNを切断しても名前解決できない | DNS設定が戻らない、キャッシュが残っている、アダプターが無効 | ネットワークアダプターとDNSキャッシュ |
カスタムDNSは、すべての接続問題を解決する機能ではありません。VPNサーバーとの認証失敗、プロトコルの非互換性、回線混雑、ファイアウォールによる遮断は、DNSを変更しても改善しません。まず「IPアドレスへ直接接続できるか」「ドメイン名だけ失敗しているか」を切り分けると、無関係な設定変更を避けられます。
変更前に確認する項目
設定を変更する前に、現在の状態を記録しておきましょう。Windowsの設定画面だけでなく、VPNクライアントのDNS保護、キルスイッチ、分割トンネル、トンネルモードの項目も確認します。クライアント側に「DNSを自動設定」「VPNのDNSを使用」「ローカルDNSを許可」といった項目がある場合、Windows側の手動設定より優先される可能性があります。
また、変更対象のアダプターを間違えないことも重要です。Wi-Fi接続中にイーサネットアダプターのDNSを変更しても、現在の通信には影響しません。VPNクライアントが作る仮想アダプターへ手動設定を加える方法もありますが、接続や切断のたびに上書きされることがあるため、通常は物理ネットワークアダプターとVPNクライアントの設定を分けて考えます。
- ✅ 現在接続しているのがWi-Fiかイーサネットかを確認する
- ✅ VPNクライアントのDNS関連項目とキルスイッチを確認する
- ✅ IPv4だけでなくIPv6も利用中か確認する
- ✅ 変更前の自動設定へ戻せるよう、現在の状態を記録する
- ❌ 複数のVPNクライアントを同時に起動したまま変更しない
DNSアドレスは、利用するサービスやネットワークの方針に合わせて選びます。特定の公開DNSを使う場合でも、公式情報でアドレスと対応方式を確認してください。ここで重要なのは、名前解決の速度だけを基準にせず、VPNのプライバシー方針、ログの扱い、IPv6対応、DNS over HTTPSまたはDNS over TLSへの対応も確認することです。
WindowsでカスタムDNSを設定する手順
ここではWindowsの標準設定から、現在使っているネットワークアダプターのDNSを変更します。画面の名称はWindowsの更新状態によって多少異なることがありますが、考え方は同じです。変更後にVPNへ接続する場合と、VPN接続中に変更する場合では結果が異なるため、まずVPNを切断した状態で物理アダプターへ設定し、その後にVPNへ接続して動作を確認すると切り分けやすくなります。
設定画面から変更する方法
- Windowsの「設定」を開き、「ネットワークとインターネット」へ進みます。
- 現在利用中の「Wi-Fi」または「イーサネット」を選択します。
- 接続中のネットワークのプロパティを開き、DNSサーバーの割り当てを編集します。
- 自動設定から手動設定へ切り替え、使用するDNS方式を選択します。
- 必要なDNSアドレスを入力し、IPv4を有効にした状態で保存します。
- IPv6を利用している環境では、IPv6側も同じ方針で確認します。
入力欄にDNSアドレスを設定しても、保存後に表示が自動へ戻る場合は、管理者権限、ネットワーク管理ソフト、VPNクライアントのポリシーを確認してください。設定が保存されても、VPN接続時に別の仮想アダプターが優先されれば、実際のDNS問い合わせ先は変わりません。
アダプターのプロパティから変更する方法
より詳細に確認したい場合は、ネットワーク接続の一覧から対象アダプターのプロパティを開きます。インターネットプロトコルバージョン4(TCP/IPv4)のプロパティでDNSサーバーを手動指定し、IPv6を使っているならインターネットプロトコルバージョン6(TCP/IPv6)も確認します。
IPv6を無効にして問題を隠す方法は、最初の対処としてはおすすめできません。IPv6を前提に動作するネットワークやアプリもあるため、まずはIPv6側のDNS設定、VPNクライアントのIPv6処理、ブラウザーの独自DNS機能を順番に確認してください。環境を一時的に簡素化するために無効化する場合も、検証後は元へ戻せるようにしておきます。
PowerShellで状態を確認する方法
画面操作後の状態を確認するには、PowerShellまたはコマンドプロンプトを使います。次のコマンドは、ネットワークアダプターごとのDNS設定を表示する例です。
Get-DnsClientServerAddress
現在どのDNSへ問い合わせているかを調べるときは、nslookupを使用します。
nslookup example.com
表示されたServerの名前やアドレスが、意図したDNSと一致しているかを確認します。ただし、この結果だけでVPNの全通信が安全に処理されていると判断することはできません。VPN接続中と切断後の両方で確認し、VPNを接続したときにDNSの向きが想定どおり変化するかを比較してください。
適用後に接続とDNSを検証する
設定後は、いきなり複数の項目を変更せず、段階的に確認します。最初にVPNを切断した状態で通常のウェブサイトを開き、次にVPNへ接続して同じサイトを再度開きます。その後、VPNクライアントの接続状態、Windowsのネットワーク表示、nslookupの結果を照合します。サイトが表示できてもDNSの設定が正しいとは限らないため、名前解決の応答先まで確認することが大切です。
DNSキャッシュが残っていると、設定を変更した直後でも以前の結果が使われることがあります。管理者権限のコマンドプロンプトで、次のコマンドを実行してキャッシュを消去できます。
ipconfig /flushdns
その後、VPNをいったん切断して再接続し、ブラウザーも再起動します。ブラウザーが独自のDNS over HTTPSを使っている場合は、ブラウザーの安全なDNS設定も確認します。Windows、VPNクライアント、ブラウザーの三者が異なるDNS経路を使っていると、画面上は正常でもアプリごとに挙動が変わることがあります。
| 確認対象 | 正常と判断する目安 | 異常時の見直し |
|---|---|---|
| VPNクライアント | 接続済みになり、DNS保護の状態が設定方針と一致する | DNS優先、分割トンネル、キルスイッチ |
| nslookup | 意図したDNSサーバーが表示され、名前解決が完了する | IPv4、IPv6、仮想アダプターの優先順位 |
| ブラウザー | ページ表示と名前解決が安定する | DNS over HTTPS、拡張機能、ブラウザーキャッシュ |
| アプリケーション | ブラウザー以外の必要なアプリも接続できる | アプリ独自のプロキシ、VPNモード、ファイアウォール |
DNSリークを確認する際は、VPN接続中のDNSテストサービスを利用し、表示されたDNS事業者や地域が自分の意図と一致するかを確認します。ただし、テスト結果は利用しているブラウザーやDNS方式の影響を受けます。1回の結果だけで判断せず、VPN接続直後、再接続後、ネットワーク切り替え後にも確認すると、再現性を把握しやすくなります。
うまくいかない場合の復旧方法
設定後に接続できなくなった場合は、変更を重ねる前に、カスタムDNSを自動取得へ戻します。Windowsの対象アダプターでDNSサーバーを自動に設定し、VPNクライアント側もDNS設定を元に戻します。その後、VPNを切断し、キャッシュを消去してからネットワークへ再接続します。
VPN接続時だけ問題が出る場合は、WindowsのカスタムDNSよりもVPNクライアントの設定を優先して確認します。クライアントが強制的に専用DNSを使う設計なら、Windows側のDNS変更は効果がなく、場合によっては内部ドメインの解決を壊します。反対に、クライアントがシステムDNSを使う設定なら、Windows側のDNSが接続先の決定に影響します。
- ✅ まずDNSを自動取得へ戻し、通常のインターネット接続を確認する
- ✅ VPN切断後にDNSキャッシュを消去してから再接続する
- ✅ IPv4とIPv6の設定が片方だけ古くなっていないか確認する
- ✅ ブラウザー独自のDNS over HTTPSを一時的に確認する
- ❌ DNSエラーを解決するために、複数のVPNクライアントを同時起動しない
特定のアプリだけが使えない場合は、そのアプリがシステムDNSを利用しているとは限りません。アプリ独自のプロキシ、独自DNS、証明書検証、IPv6優先設定などを持っていることがあります。ブラウザーでは正常でも、ゲーム、業務ソフト、通信ツールだけ失敗するなら、VPNクライアントのトンネルモードや分割ルーティングも調べてください。
設定を何度も変更しても改善しないときは、カスタムDNSをいったん解除し、VPNクライアントの標準設定で接続できるかを確認します。標準設定で正常なら、DNSの選択または優先順位に原因がある可能性が高くなります。標準設定でも失敗するなら、DNS以外の認証、プロトコル、ファイアウォール、回線側の問題を切り分けるべきです。
安定運用のための考え方
カスタムDNSは、VPNの代わりになるものではなく、名前解決の担当先を調整する設定です。VPNは通信経路や認証、暗号化、ルーティングを担当し、DNSはドメイン名から接続先を調べます。この役割を混同すると、DNSを変更すれば通信速度も必ず改善する、VPNの接続先も自動的に最適化される、といった誤解につながります。
日常的に使うなら、設定内容をメモしておき、Windowsの大型更新、VPNクライアントの更新、ルーター交換、ネットワーク変更後に再確認します。VPNクライアントはWindowsの仮想アダプターを更新することがあり、以前のDNS優先順位が変わる可能性があります。問題が起きたときに、いつ、どのアダプターへ、どの設定を行ったか分かれば、復旧までの時間を短縮できます。
Windows用の公式クライアントや接続手順を確認したい場合は、設定ガイドを見ると、端末への導入から接続確認までの流れを整理できます。サードパーティークライアントでサブスクリプションを利用する場合も、最初は公式クライアントで接続とDNSの挙動を確認し、その後にClash Vergeやsing-boxなどへ切り替えると、問題の原因を分けて考えやすくなります。