ドメイン名を管理し、IPアドレスに変換するという役割を担う、DNS(Domain Name System)は現在のインターネットを維持している根幹とも言えるシステムで、多くの個人情報をやり取りしているシステムでもあります。
訪れたサイト(アプリを通してを含む)や、送受信したメール、ダウンロードしたファイル等、個人情報の多くをDNSサーバーを通してやり取りしています。管理側からすれば、これらのデータは一つのビジネスデータ、国よっては管理システムの構築に欠かせないデータとなっています。
関連ブラウザのWebRTCから実IPが漏れていないかの検証手順
どのように情報が収集されているの?
一般的に自分で設定していなければ、ISP(インターネットサービスプロバイダー)のDNSサーバーを利用しています。国によって異なりますが、大部分のISPは経営、国政の為に膨大な数のデータを記録・収集しています。またそれだけでなく、特定の国で行われているインターネット規制は主にDNSサーバーを用いて特定のサイトをブロック・エラー表示させています。
情報を収集されたくない、匿名性を保ちたい人は、ISPのDNSサーバーを回避する必要があります。DNSリークを防ぎ、匿名性を保つ最も効果的な方法がVPNの利用です。
しかし、ある状況下ではVPNを使っていてもDNS情報が漏れている場合があります。どのような状況でDNS漏れ(DNSリーク)が発生するのでしょうか?
DNS漏れの原因
DNS漏れは主に4つの方法で発生します。
- Windowsユーザーの場合デフォルトでISPのDNSが設定されている
- VPN接続が切断された時
- 信頼性の低いVPNサービスを利用している
- 無料Wi-Fi等のルーターのDNSが書き換えられている
よく見受けられる原因の一つは、Windowsの設定の問題です。特にWindows 10やWindows 11における「スマートマルチホスト名前解決(Smart Multi-Homed Name Resolution)」という仕様の問題は深刻です。macOSやLinuxに比べてデフォルト状態でのDNSリーク(漏洩)リスクが高く、VPNアプリによっては設定を変えなければデフォルトでISPのDNSサーバーが設定されている場合があります。
2つ目の問題も考慮すべき点です。キルスイッチといって、VPNが切れた瞬間にネットワークが遮断される機能が付いているVPNプロバイダーであれば安心出来ますが、そうでない場合は裏側では様々なデータがDNSサーバーへ転送されています。
ではどのようにDNS漏れを防ぐ事が出来るのでしょうか?先ずはDNS漏れの確認方法から紹介します。
DNS漏れの確認方法
確認は3段階で進めます。1つ飛ばすと「漏れているのに気づかない」か「漏れていないのに慌てる」のどちらかが起きます。
- 測定:VPNを切った状態と、VPNに接続した状態で、同じテストサイトを2回実行する
- 読み方:接続後の結果に、契約しているISP名や未接続時のDNSサーバーが残っていないかを見る
- 対処:残っていた場合は、原因(Windowsの名前解決/キルスイッチ/VPN側のDNS設定/ルーター)を切り分けて潰す
VPN未接続の状態を先に測っておくのが要点です。比較対象がないと、表示されたDNSサーバーが自分のISPのものなのか判断できません。
DNSリークを探す最も簡単な方法はウェブサービスを利用する事です。
例えば、dnsleaktest.comは現在も世界中で広く使われている最も有名な検証サイトです。
日本語が希望であれば、ExpressVPNのリークテストサイトでも良いかもしれません。
一例として、ExpressVPNに接続中にdnsleaktest.comへアクセスしてみます。次のような画像になります。

VPNサーバーのアドレスが表示されます。
"Standard test", "Extended test" と二種類の方法がありますがDNSサーバーへの問い合わせ回数の違いになります。"Standard test" でも六回問い合わせるので、通常のVPNプロバイダーであれば "Standard test"で十分です。クリックすると結果が次のように表示されました。

DNSサーバーのIPアドレス、Hostname、ISP、サーバー所在地が表示されます。
ポイントは、「ISP」の部分です。ここで自分の契約しているインターネットプロバイダーが表示されていなければDNS漏れは生じていません。
もし、インターネットプロバイダーが表示されていた場合どうすれば良いのでしょうか?
結果を読むときの3つのポイント
1. ISP名の欄:契約しているインターネットプロバイダー名が出ていれば漏れています。VPN事業者名やそのDNS事業者名であれば問題ありません。
2. IPv6の扱い:VPNがIPv4しかトンネルしない構成だと、IPv6側の問い合わせだけが素通りします。IPv4の結果が正常でも、IPv6アドレスやIPv6のDNSサーバーが結果に混ざっていたら、VPNアプリのIPv6ブロック設定(またはOS側でIPv6を無効化)を確認してください。
3. 複数のDNSサーバーが並ぶ場合:VPN事業者が複数台のリゾルバを持っているだけのことが多く、件数が多いこと自体は異常ではありません。見るべきは事業者名であって台数ではありません。
スマートフォンでも手順は同じで、iOS・Androidともブラウザから同じテストサイトを開けば測れます。ただしAndroidはOS設定の「プライベートDNS」(DoT)が有効だと、VPNとは別経路でDNSが解決されることがあります。切り分けのときはいったん自動に戻して測り直すと原因が見えやすくなります。
DNS漏れを防ぐ方法は?
1. 信頼出来るVPNプロバイダーを利用する
匿名性を重視している方に1番簡単でおすすめの方法は、信頼できるVPNプロバイダーを利用する事です。
ExpressVPN, NordVPN, VyprVPN, Proton VPN, Surfsharkなどは自社製の専用DNSサーバーを構築しており、安心して使用出来ます。(※過去に紹介していたProxy.shは現在サービスを終了しています)
特にVPN.acは不必要なくらいDNSサーバーにこだわっており、DNSサーバーとの通信は暗号化され、さらに疑似データを混入させて個人の特定を防ぐことまでしています。
ExpressVPNアプリは優秀で、WindowsではDNSサーバーに関する設定がワンタッチで可能です。
画像のように、Option→Advanced→DNSから設定出来ます。

2. オープンDNSを利用する
先に注意点を1つ。中国国内からの利用では、オープンDNSへの変更はGFWによる遮断の対策になりません。理由はこのあとの「GFWのDNS汚染とDNSリークは別の問題」で切り分けます。
2つ目の方法はオープンDNSを使用する方法です。完全な匿名性は期待出来ないかもしれませんが、地域によりますがISPより安全に使用出来ます。速度が上がるという相乗効果も期待出来ます。
- Cloudflare
- 1.1.1.1
- 1.0.0.1
- OpenDNS
- 208.67.222.222
- 208.67.220.220
- Comodo Secure DNS
- 8.26.56.26
- 8.20.247.20
- Google
- 8.8.8.8
- 8.8.4.4
OpenDNSは現在Ciscoが運営しており無料でパブリックDNSを使用可能です。企業向けのクラウドセキュリティサービスを提供している大手なので、プライバシーに関してもある程度信頼出来ます。また、2026年現在は「DoH (DNS over HTTPS)」や「DoT (DNS over TLS)」といった最新の暗号化規格がOSやブラウザに標準装備されたため、昔よりも遥かに安全にDNS通信が守られるようになっています。
オープンDNSを利用する別のメリットは、速度が上がる事、マルウェアサイト、違法広告サイトを自動的にブロックしてくれる事が挙げられます。先ずスピードに関しては、ISPによってはDNSサーバーに投資していないので、混雑時にはユーザー数に対しての「電話帳」が不足しています。読み込みが遅いなぁ、と感じる場合は大抵がこのDNSサーバーとの通信が混雑している場合がほとんどです。
マルウェアサイトや、フィッシングサイトをブロックする仕組みに関しては、DNSサーバーに指定のドメイン名のIPアドレスを送信しないように設定しています。いわば「電話帳」に違法業者の番号を登録していないようなイメージです。NordVPNの脅威保護機能や、CyberGhostVPNのマルウェアブロック機能も独自DNSサーバーを用いて同様の仕組みを利用しています。
関連 DNSの設定を変更する方法ーWindows, macOS, iOS, Android, 3G, 4Gに完全対応
GFWのDNS汚染とDNSリークは別の問題
中国からアクセスしている読者が最も混同しやすいのがこの2つです。どちらも「DNSが思ったとおりに動かない」症状に見えますが、壊れている場所が違うので対処もまったく別になります。
| 観点 | DNSリーク | GFWのDNS汚染 |
|---|---|---|
| 起きている場所 | 自分の端末〜ISPの間 | 中国の国際回線の経路上 |
| 何が起きるか | 見たドメインがISPに記録される | 無関係なIPが返り接続できない |
| 体感する症状 | サイトは開けるが匿名性が失われる | 特定のサイトだけ開けない |
| 検出のしかた | テストサイトに自分のISP名が出る | nslookupで本来と無関係なIPが返る |
| オープンDNSへの変更 | 有効(ISPのDNSを回避できる) | 無効(経路上で偽装される) |
| 効く対処 | VPNのDNS設定・キルスイッチ | リモートDNS解決・DoH/DoT |
パケットの流れで見ると違いははっきりします。DNSリークは問い合わせがトンネルの外へ出てしまう問題で、漏れているのは「自分がどのドメインを見たか」という情報です。一方GFWのDNS汚染(DNSポイズニング)は問い合わせ自体は正常に出ているのに、返ってくる答えが途中ですり替えられる問題で、漏れているというより結果が壊れています。
ここで押さえておきたいのが、中国国内で 8.8.8.8 や 1.1.1.1 に変えてもDNS汚染は止まらないという点です。UDP 53番の平文DNSは経路上で偽の応答を先に注入されるため、問い合わせ先のサーバーを変えても偽の答えが先に届いてしまいます。前章のオープンDNSは、ISPのDNSを避けたい日本国内などでは有効ですが、中国国内での遮断回避策にはなりません。
切り分けの手順はシンプルです。
- テストサイトに契約中のISP名が出る → DNSリーク。VPN側のDNS設定とキルスイッチを見直す
- ISP名は出ないのに特定サイトだけ開けない → DNSリークではない。DNS汚染・SNIブロック・IP遮断のいずれかを疑う
- VPNを切った瞬間に特定サイトだけエラーになる → DNS汚染の典型的な挙動
DNS汚染側への対処は、端末のDNS設定をいじることではなく、名前解決そのものをトンネルの向こう側で行わせることです。VPNクライアントのリモートDNS解決(proxy DNS/remote DNS)を有効にするか、DoH・DoTでDNSをHTTPS/TLSに載せて、経路上から中身を見えなくします。
関連グレートファイアウォールがDNSポイズニングを行う仕組み
管理人のコメント
DNS漏れを防ぎ匿名性を保ちたい場合、最高の方法はやはり信頼出来るVPNを利用することです。
オープンDNSを利用する方法もありますが、ログは収集しているので匿名性という観点ではあまり理想ではありません。ISPのデフォルトのDNSよりは操作されていないので、速度を上げたい場合やコストを掛けたくない場合におすすめです。
