技術

DNSリーク・WebRTCリーク確認法:6段階診断と原因別解決

DNSリークはDNSクエリのみVPNトンネルから、WebRTCリークはSTUN要求がプロキシから出て実際のIPが現れる現象です。ブラウザだけで行う6段階診断、原因8つ別の解決、StageVPNアプリとChrome拡張の処理方法を整理します。

StageVPNチーム22分読む

パイプ状の青い接続通路から小さな光の彫刻が漏れる様子を表現した3Dイラスト

VPNをオンにしても、以下の症状のいずれかが見える場合は、DNSリークまたはWebRTCリークを疑います。漏洩とは、VPNルートに行く必要がある情報がそのルートから出ていく状態です(流出とも呼ばれます)。

  • IP確認ページにはVPNサーバーIPが表示され、DNSテストには通信会社やルーターのDNSサーバーが表示されます。
  • IPv4アドレスは変わりましたが、IPv6アドレスはVPNをオフにする前と同じです。
  • WebRTCテストページにVPNをオフにする前の認定IPがそのまま見えます。
  • Wi-Fiからモバイルデータに切り替えた直後、または省電力モードで目が覚めた直後にのみ元のIPが見えます。
  • StageVPN for Chromeをオンにしたが、他のブラウザやPCプログラムは元のIPで接続する。
  • VPNをオンにしてもサイトが元の地域基準の言語とコンテンツを表示する(アカウント・クッキー設定のためかもしれません)。

DNSリークとは、VPNをオンにした状態でWeb通信はトンネルを通るのにDNSクエリだけトンネルから出て、通信会社やWi-FiのDNSサーバーにドメイン名が見える現象です。 WebRTCリークとは、ブラウザのWebRTCがSTUNリクエストをVPN・プロキシから直接送信し、Webページが実際の認定IPを把握する現象です。どちらの現象もページの内容が漏れるわけではありません。しかし、「誰がどこに接続するのか」が明らかになります。この記事は症状から始まり、6段階の診断、原因別の解決、再点検の順に進みます。

Webトラフィックは保護されていてもDNSクエリだけから出ています
Webトラフィックは保護されていてもDNSクエリだけから出ています

診断:ステップ6で漏れがないかどうかを確認する方法

リークチェックの原理は、VPN をオフ状態とオン状態の値とを比較することです。サイトに表示されるIP、DNSクエリを受信したサーバー、WebRTC候補アドレスをそれぞれ比較します。 VPNをオンにしても元の値が表示された場合はリークです。テストは実際に使用するデバイスとブラウザで行う必要があります。特定のテストサイトがなくても、ブラウザだけでほとんどを確認できます。 IP確認ページは、接続した人の認定IPアドレスを画面に表示するWebページです。検索エンジンで「IP確認」として見つけることができます。 DNSリークテストページとWebRTCテストページも同じ方法で見つけます。どちらのページを使用しても同じ原則があるため、特定のサイトに頼る必要はありません。

  1. VPN をオフにして IP を記録します。 IP確認ページを開き、認定IPv4アドレスと、ある場合はIPv6アドレスを書き留めます。この値は以降のすべての比較の基準です。
  2. VPN をオンにして IP を比較します。 StageVPNアプリの接続完了マークまたはStageVPN for Chromeアイコンの緑色のオンマークを確認してから、同じページをもう一度開きます。 IPv4はVPNサーバーアドレスに置き換える必要があります。
  3. DNSサーバーを確認してください。 DNSリークテストページを開きます。これらのページは、ランダムなサブドメインを検索してからそのクエリを送信したDNSサーバーを示しています。通信会社やルーターのサーバーが見える場合は、DNSリークです。
  4. chrome://webrtc-internals を開きます。 Chromeアドレスウィンドウにこのアドレスを入力すると、進行中のWebRTC接続と候補アドレスが表示されます。別のタブでWebRTCテストページまたはビデオハングアウトページを開いたままにすると、アイテムが表示されます。
  5. 候補IPを確認してください。 srflx(サーバーリフレクション)候補のアドレスがステップ1の元の正規IPと同じ場合、WebRTCリークです。 VPN サーバー IP または .local 名とプライベート IP のみが表示されている場合、認定 IP インプレッションではありません。
  6. IPv6を確認してください。 手順1でIPv6アドレスがあった場合は、VPNをオンにしてそのアドレスが消えているか変更されているかどうかを確認します。そのままにすると、IPv6がトンネルから出ていく状態です。 Wi-Fiとモバイルデータを交換し、ブラウザを再起動しても同じ結果であることを繰り返します。
表 1. 診断結果の読み方
観察した結果意味続いて見る原因
サイトにVPNサーバーIPが表示されるWeb通信はVPNパスを通過します通常、次のステップへ
IPv4は変わりましたが、IPv6は元のアドレスですIPv6がトンネルから出る原因2
DNSサーバーが通信会社・共有機のものDNSリーク原因1、3、4、5
DNSサーバーがパブリックDNS事業者になるVPN 構成の DNS または直接指定したセキュア DNS事業者名だけで漏れだと断定しない、原因4確認
WebRTCに元の認定IPが表示されるWebRTCリーク原因6、7
WebRTCに.local名またはプライベートIPのみを表示する認定IPインプレッションではありません概して正常
ネットワーク切り替え直後のみ元のIP移行瞬間の隙間原因8

テストサイトごとに結果が異なる場合があります。 IPv4だけを見るところとIPv6まで見るところがあり、DNSサーバーを見つける方法も異なります。 2つ以上の場所で、複数のネットワークに切り替えて比較してください。

DNSクエリには何がありますか?

DNSクエリにはドメイン名が含まれています。ページの内容や入力した値は含まれません。 DNSとは、人間が読んでいるドメイン名をコンピュータが書き込むIPアドレスに置き換えるインターネットのアドレス帳方式です。ブラウザにアドレスを入力するか、アプリがサーバーに接続するたびに、デバイスはまずDNSサーバーに「この名前のアドレスは何ですか」と尋ねます。だから、クエリの記録だけを見ても、いつどのサービスにアクセスしようとしたのか、かなりの部分がわかります。

  1. マイデバイスアプリ・ブラウザ
  2. 公共Wi-Fiカフェルーター
  3. キャリア DNS既存サーバー
  • 露出できる区間
図 1. DNS 漏れがあるとき: Web 通信はトンネルに行っても DNS クエリは現在ネットワークに出ます
  1. マイデバイスアプリ・ブラウザ
  2. 公共Wi-Fiカフェルーター
  3. VPNサーバーStageVPN
  4. DNSサーバーVPN構成に割り当てる
  • VPN暗号化
図2.漏れがない場合:DNSクエリもトンネルに入り、DNSサーバーにはVPNサーバーのIPが表示されます。

従来のDNSクエリは、暗号化されていないUDP 53番ポートに行きます。これを補うためにクエリをHTTPSで包むDoH(RFC 8484)とTLSで包むDoT(RFC 7858)が作られました。ただし、暗号化DNSを使用してもサイトにHTTPSで接続するときに送信するサーバー名(SNI)は、サイトとブラウザが暗号化されたClient Hello(ECH)をサポートしていない場合はネットワークに表示されます。

表 2. DNS 転送方式でドメイン名を表示できる場所
配信方法同じWi-FiのオブザーバーWi-Fi運営者・通信社問合せを受ける DNS サーバー
一般DNS(平文)見ることができる見ることができる見ることができ、私の認定IPと
DoH・DoT(暗号化DNS)見えない表示できません、DNSサーバーアドレスは表示されます見ることができ、私の認定IPと
VPNトンネル内のDNS見えない見えない、VPNサーバーと通信するという事実だけが見える見ることができ、VPNサーバーIPと
DNSリークステータス平文で見ることができる見ることができる見ることができ、私の認定IPと

セキュアDNS(DoH)とVPNは目的が異なります。 DoHはDNSクエリのみ暗号化し、サイト接続自体とサイトが見るIPはそのままです。 VPNは、デバイスまたはブラウザとVPNサーバー間の通信全体を暗号化し、サイトに表示されるIPを置き換えます。シークレットモードも漏れを防ぎません。シークレットモードは、デバイスに訪問履歴とCookieを残さない機能であり、DNSクエリやWebRTCのパスを変更しません。

WebRTCはどのようにIPアドレスを調べますか?

WebRTCは、2つのデバイスを最短パスにするために、自分のアドレスをさまざまな方法で見つけ、その結果をWebページのスクリプトに渡します。 WebRTCは、ブラウザでプラグインなしでビデオ通話、音声通話、ファイル転送を可能にするWeb標準技術です。アドレスを収集する手順をICE(RFC 8445)と呼びます。ビデオハングアウトを行わないページでも、スクリプトでこの手順を開始できます。

  1. 接続オブジェクトの作成WebページスクリプトがRTCPeerConnectionを作成する
  2. ローカル候補の収集ブラウザがデバイスネットワークデバイスのアドレスを集めます
  3. STUNクエリUDPでSTUNサーバーに「自分のアドレスがどのように見えるか」を尋ねる
  4. 候補配信STUNサーバーが通知した認定アドレスを含む候補リストがページに渡されます
図3. WebRTCが接続候補アドレスを収集する順序(ICE)
表 3. WebRTC 接続候補の種類と明らかになる情報
候補の種類何か明らかにできる情報最近のブラウザの保護
hostデバイスネットワークデバイスのアドレスプライベートIP(192.168.xなど)ランダム.local名(mDNS)で隠し、カメラ・マイク権限を与えたサイトには見られることがある
srflx(サーバー反射)STUNサーバーが見た私の認定アドレス認定IP、プロキシを迂回すると実際のIPWebRTC IP 処理ポリシーに制限可能
relayTURN中継サーバーのアドレス中継サーバーIP中継を書くと相手に私のIPの代わりにサーバーアドレスが見える

問題は3段階のSTUNクエリです。ブラウザプロキシはWeb要求を転送しますが、ブラウザのデフォルト設定では、WebRTCのUDP通信はプロキシを通過しません。したがって、STUNサーバーが通知するアドレスはプロキシサーバーではなく、私の元の認定IPです。デバイス全体のVPNでは問題が異なります。 STUN要求を含むすべてのUDP通信がトンネルに行くため、STUNサーバーに表示されるアドレスもVPNサーバーのIPです。

ブラウザプロキシと基本ポリシー

  • Webリクエストはプロキシを通過します
  • STUNリクエストはUDPに直接送信されます
  • ページが実際の認定IPを表示できる

ブラウザプロキシとdisable_non_proxied_udp

  • プロキシを経由しないUDPをブロックする
  • WebRTCはプロキシパスのみを使用
  • 一部の通貨は接続方法や品質が異なります。

デバイス全体のVPN

  • STUNリクエストもトンネルを通過
  • 認定アドレス候補がVPNサーバーIP
  • 切断とIPv6処理は確認が必要
図4.接続方式によるWebRTCリークの可能性

Chromeには、WebRTCがどのアドレスを書き込むかを決定する「WebRTC IP処理ポリシー」があり、拡張機能はこの値を変更できます。各値は、IETFのWebRTC IPアドレス処理勧告(RFC 8828)にまとめられている4つの方法に対応します。

表4. ChromeのWebRTC IP処理ポリシー値(chrome.privacy APIに基づく)
ポリシー値アクション露出範囲
defaultすべてのネットワークデバイスで候補を収集最も広い(ローカルアドレスはmDNSで覆われています)
default_public_and_private_interfaces基本経路の装置のみ使用、公認・プライベートアドレス共に使用他のデバイスのアドレスは公開されません
default_public_interface_onlyデフォルトパスの正規アドレスのみを使用プライベートアドレスは公開されません
disable_non_proxied_udpプロキシを経由しないUDPの禁止、プロキシがUDPをサポートしていない場合、プロキシを介したTCPの使用プロキシ外のルートのアドレスを公開しない
特定のサイトがなくてもブラウザだけで確認する手順
特定のサイトがなくてもブラウザだけで確認する手順

解決策:原因別に確認して修復する方法

漏れの原因はほとんど8つのうちの1つです。通常は設定が重なって発生します。診断テーブルでわらは原因番号から確認し、1つを修正するたびに上の図の手順6をもう一度回して結果が変わったかどうかを確認します。一度に複数の設定を変更すると、何が効果があったのかわかりません。

原因 1 · VPN 構成に DNS サーバーがないか、デバイスが異なる DNS

確認 VPNをオンにすると、DNSテストにWi-FiルーターまたはキャリアのDNSサーバーが表示されます。お使いのデバイスのWi-Fi設定に手動DNSを入れておくことが多いです。

解決 StageVPN アプリは VPN 設定に DNS サーバーを含め、クエリをトンネルに送信します。デバイスのネットワーク設定で手動DNSを自動的に戻し、VPNを切断して再接続します。それでも同じ場合は、原因3と5を確認してください。

原因2・IPv6がトンネルから出る

確認 IPv4はVPNサーバーアドレスに変わりましたが、IPv6は手順1で書き留めた値のままです。 VPNがIPv4のみトンネリングすると、IPv6クエリと通信は元のルートに入ります。

解決 StageVPNアプリはIPv6通信もトンネルに送信するように構成されているため(AllowedIPs 0.0.0.0/0、::/0)、通常はオフにする必要はありません。それでもIPv6が元のように見える場合は、他のVPNアプリやデバイス設定がパスを変更していることを確認してください。 IPv6をサポートしていないテストサイトもあるので、2か所以上で比較します。

原因3・オペレーティングシステムが複数のネットワークデバイスのDNSに同時に問い合わせる

確認 具体的には、Windows PC での VPN 接続中でも、DNS テストでは VPN の DNS とキャリア DNS が一緒に表示されます。 WindowsのSmart Multi-Homed Name Resolutionのように、すべてのネットワークデバイスに同時に要求する機能が原因です。

解決 オペレーティングシステムとVPNソフトウェアを最新バージョンに保ち、テストを繰り返します。この現象は、PCのデバイス全体のVPNで主に報告されており、スマートフォンのStageVPNアプリとChromeのStageVPN for Chromeでは構造が異なるようには発生しません。

原因4・ブラウザや機器にセキュアDNS(DoH)を別に割り当てる

確認 DNSテストでは、パブリックDNS事業者のサーバーが表示されます。この場合、リークではなく直接指定した設定になる可能性があります。デバイス全体のVPNの場合、このクエリもトンネルを通過しますが、受信する場所はVPN構成のDNSではなく指定した事業者です。

解決 意図した設定であればそのままにしても構いません。 VPN設定のDNSを書きたい場合は、ブラウザとデバイスのセキュアDNS設定を自動的に置き換えます。事業者名だけを見てリークと断定しないことが重要です。

原因5・他のVPN・プロキシ・セキュリティアプリが一緒にオンになっている

確認 他のVPNアプリ、プロキシ拡張、広告フィルタ、セキュリティプログラムのネットワーク機能が同時にオンになっています。ルート設定がお互いを上書きして、一部のクエリが元のルートに入ります。

解決 一度に1つだけオンにします。他のアプリと拡張機能をオフにしてStageVPNを切断して再接続し、手順6を繰り返します。 Chromeのプロキシ設定は一度に1つの拡張機能しか制御できないため、他の拡張機能がプロキシを使用している場合、StageVPN for Chromeは接続せずにその理由を伝えます。

原因6・ブラウザプロキシのみを書くのにブラウザ外通信を期待する

確認 StageVPN for Chromeをオンにし、他のブラウザ、PCメッセンジャー、メールプログラムは元のIPと元のDNSに接続します。これはリークではなく設計された範囲です。拡張はChromeの通信のみをカバーします。

解決 Chrome以外のプログラムまで保護する必要がある場合は、デバイス全体に適用されるVPNを書き込みます。スマートフォンでは、StageVPNアプリがその役割を果たします。両方式の範囲差は ブラウザVPNとアプリVPNの比較にまとめました。

原因 7 · WebRTC ポリシーが適用されない

確認 StageVPN for Chromeをオンにしましたが、WebRTCテストやchrome://webrtc-internalsのsrflx候補に元の認定IPが表示されます。他の拡張や会社・機関の管理ポリシーがWebRTC設定を先に制御している場合、StageVPN for Chromeはポリシーを変更できず、そのままにします。

解決 WebRTC設定を制御する別の拡張機能をオフにして、StageVPN for Chromeを再接続します。管理ポリシーが原因である場合は、管理者に連絡してください。シークレットウィンドウに書き込むには、拡張管理画面で「シークレットモードで許可」をオンにする必要があります。オフの場合、シークレットウィンドウの通信はプロキシを経由しません。

原因8・VPN接続が切れた瞬間

確認 ネットワーク切り替え直後やスリープモードで起きた直後にのみ元のIPが表示され、しばらくすると正常です。途切れの間のクエリと通信は両方とも通常のパスに出ます。

解決 機密性の高い作業の前に、アプリの接続完了マークまたは拡張アイコンのオンマークを確認してください。 StageVPNアプリが書いているWireGuardは、Wi-FiからLTEに変わってもトンネルを再結成しませんが、ネットワーク自体がしばらく切れる区間はプロトコルが埋められません。 VPNが切断されたときに自動的に通信を停止する機能は、StageVPNの提供機能に導かれません。原理 WireGuardの原則の説明にあります。

StageVPNアプリとStageVPN for Chromeはリークをどのように防ぐのですか?

StageVPN アプリはすべての通信をトンネルに送信する方法で、StageVPN for Chrome は名前のルックアップをプロキシに委ね、WebRTC ポリシーを調整する方法でリークを軽減します。保護範囲が異なるため、処理方法も異なります。

表5. StageVPNアプリとStageVPN for ChromeのDNS・WebRTC処理(2026年9月基準)
アイテムStageVPNアプリ(iPhone・iPad・Android)StageVPN for Chrome
保護範囲端末全体Chromeブラウザ
VPNルートへの通信IPv4・IPv6 全体 (AllowedIPs 0.0.0.0/0, ::/0)プロキシ経由のWebリクエスト(プライベートIP帯域とlocalhostを除く)
DNSクエリVPN 構成で指定した DNS サーバーにトンネル内で転送プロキシ経由のリクエストはChromeによって検索されず、プロキシサーバーによって検索されます
WebRTCすべてのUDP通信がトンネルを通過する接続中 disable_non_proxied_udp 適用、接続を切断すると元の設定に
現在ネットワークに見えるものVPNサーバーと暗号化通信を行うという事実とデータ量プロキシサーバーアドレスの名前検索、プロキシとの暗号化接続、Chrome以外のアプリの通信
適用できない場合VPNが切断されている間、他のVPNアプリがルートを変更したとき他の拡張や管理ポリシーがプロキシ・WebRTC設定を制御するとき、シークレットモード許可がオフになったシークレットウィンドウ
接続記録(93日)検索したドメインは記録しません接続した宛先ホスト名は記録、パス・検索語は記録しない

StageVPNは、個別のDNS漏れ防止設定メニューを提供機能に導きません。上記の動作は、アプリのデフォルトのVPN設定と拡張の接続方法によるものです。提供範囲は 機能と提供範囲で確認できます。

漏れがないということは、クエリと通信が通信会社の代わりにVPNパスを通過することを意味します。どんな記録も残らないという意味ではありません。 StageVPNは通信秘密保護法に従って接続記録を93日保存し、通信内容は記録しません。アイテムは 接続記録保管通知に、公開する理由は アクセス履歴保持ポリシーを公開する理由で説明しました。

アプリと拡張機能がそれぞれリークを防ぐ方法
アプリと拡張機能がそれぞれリークを防ぐ方法

再チェックチェックリスト:修正後、何を再確認しますか?

原因を修正するたびに、以下の項目を最初からやり直してください。全て通過すると漏れがない状態です。 1つの項目が失敗した場合は、対応する原因カードに戻ります。

  • VPNの接続を切断して再接続した後、アプリの接続完了マークまたは拡張アイコンのON表示を確認しました。
  • [IP確認]ページに、IPv4とIPv6の両方がVPNサーバーアドレスを示しているか、IPv6は表示されません。
  • DNSテストでは、キャリアまたはルーターのDNSサーバーが表示されません。
  • chrome://webrtc-internals の srflx 候補に元の認定 IP がありません。
  • 他のVPNアプリ、プロキシ・VPN拡張、セキュリティプログラムのネットワーク機能がオフになっています。
  • デバイスとブラウザに手動DNSまたはセキュアDNSを指定した場合は、意図した設定であることを確認しました。
  • オペレーティングシステム、ブラウザ、StageVPNアプリ、および拡張機能が最新バージョンです。
  • Wi-Fiとモバイルデータを交換し、ブラウザを再起動した後も同じ結果です。
  • Chrome以外のプログラムまで保護する必要がある場合は、拡張ではなくデバイス全体のVPNを使用しています。

再点検が必要な時点も決めておくと良いでしょう。オペレーティングシステムやブラウザの大規模なアップデートの後、新しい拡張プログラムやセキュリティアプリをインストールした後、初めて接続するネットワークで機密な作業をする前がその時点です。設定はそのままですが、結果が変わった場合は通常、これら3つのうちの1つが原因です。診断手順6は、慣れてから数分で終了します。

問題が続く場合は、デバイスモデル、オペレーティングシステムとアプリのバージョン、発生時刻、テスト結果をまとめてください。 カスタマーサポートにお問い合わせください。パスワードや認証コードは送信しないでください。漏れ確認で確認する機器の設定は、 スマートフォンのプライバシー設定10種類に、VPNだけで解決できないリスクは VPNがブロックするものとブロックできないものに、公共ネットワークでの習慣は 公衆無線LANの安全規則にまとめました。

参考資料

  1. RFC 1034: Domain Names — Concepts and Facilities — DNSの構造とレゾルバの役割(IETF)
  2. RFC 8484: DNS Queries over HTTPS (DoH) - HTTPSでDNSクエリを暗号化する方法(IETF)
  3. RFC 7858: DNS over TLS — TLSでDNSクエリを暗号化する方法(IETF)
  4. RFC 8445: Interactive Connectivity Establishment (ICE) — WebRTC接続候補の種類と収集手順(IETF)
  5. RFC 8828: WebRTC IP Address Handling Requirements — ブラウザがWebRTCに公開するアドレスの範囲(IETF)
  6. chrome.privacy API — Chrome WebRTC IP 処理ポリシーの値 (Chrome for Developers)
  7. chrome.proxy API — 拡張のプロキシ設定とバイパスリスト、制御優先順位 (Chrome for Developers)
  8. WebRTC API — RTCPeerConnectionとICE候補の概念(MDN Web Docs)
  • #DNSリーク
  • #WebRTCリーク
  • #DNS漏洩
  • #IPリークテスト
  • #VPN設定