WebRTCリークテスト — その正体と対処法
WebRTCリークとは何か、VPN使用中でも実際のIPアドレスが漏洩する理由、テスト方法、そして主要ブラウザごとの具体的な修正手順を解説します。
VPNを起動し、別の国のサーバーに接続して、「これで本当のIPアドレスは隠れた」と思っていませんか? しかし、あらゆる主要ブラウザに直接組み込まれているプロトコル「WebRTC」は、VPNを完全に回避して、あなたの実際のIPアドレスをアクセスするすべてのウェブサイトに密かに送信することがあります。
これが WebRTCリーク と呼ばれる問題で、何百万人ものVPNユーザーが気づかないうちに影響を受けています。
WebRTCとは何か?
WebRTC(Web Real-Time Communication)は、プラグインや中間サーバーなしに、ブラウザ同士が直接通信してビデオ通話・音声チャット・ファイル共有・ピアツーピア接続を行えるオープン標準です。
Chrome、Firefox、Safari、Edge、Operaにネイティブで搭載されています。Google Meet、ブラウザ版Discord、その他あらゆるWebベースのビデオ通話を支えているのがWebRTCです。
直接的なピアツーピア接続を確立するために、WebRTCは実際のネットワーク経路を把握する必要があります。そのために使われるのが ICE(Interactive Connectivity Establishment) というプロセスで、VPNに接続中であっても、デバイスのすべての利用可能なネットワークインターフェース(実際のIPアドレスを含む)を照会します。
WebRTCリークとは何か?
WebRTCリークとは、VPNに接続しているにもかかわらず、ウェブサイトがWebRTC APIを使ってあなたの実際のIPアドレス(またはローカルネットワークのIPアドレス)を検出してしまう現象です。
VPNはインターネットトラフィックを自社サーバー経由でトンネリングすることでIPアドレスをウェブサイトから隠します。しかしWebRTCは、トラフィックがVPNトンネルに到達する前に、OSレベルでデバイスのネットワークインターフェースを直接照会します。その結果、VPNを一切経由せずに、あなたの実際のIPアドレスがウェブサイトに渡されてしまいます。
WebRTCが漏洩させる可能性のある情報
| データの種類 | 何が明らかになるか |
|---|---|
| パブリックIP | あなたの実際のインターネット向けIP(ISPから割り当てられたもの) |
| ローカルIP | プライベートネットワークのIP(例:192.168.1.x) |
| IPv6アドレス | VPNがIPv4のみをトンネリングしている場合でも、IPv6アドレスが漏洩する |
| 複数のインターフェース | デバイス上のすべてのネットワークアダプター(Wi-Fi、イーサネット、VPNアダプターなど) |
最も深刻なのは パブリックIP です。ウェブサイトにこれが見えてしまえば、そのセッション中はVPNによる匿名性がまったく機能しないことになります。
なぜVPNを回避できるのか?
ほとんどのVPNクライアントは、すべてのTCPおよびUDPトラフィックを暗号化されたトンネルを通じてルーティングします。しかしWebRTCは、NATのSTUN(Session Traversal Utilities for NAT)サーバーを使ってICE候補を解決しており、STUNのクエリは一部の設定ではVPNトンネルの外側を通ることがあります。クエリがトンネルを経由する場合でも、ブラウザのICE候補リストからローカルネットワークのIPを直接読み取られてしまいます。
WebRTCリークのテスト方法
最も手軽な確認方法は、VPNに接続した状態で WebRTCリークテストツール を使うことです。
テストの手順は以下の通りです:
- VPNを切断した状態でテストページにアクセスし、実際のパブリックIPアドレスを確認します。
- VPNに接続して、再度テストページにアクセスします。
- ツールが、ブラウザがWebRTC ICE候補を通じて公開しているすべてのIPアドレスを表示します。
- 手順1で確認した実際のIPが手順3の結果に表示されていれば、WebRTCリークが発生しています。
テスト結果の読み方
| 結果 | 意味 |
|---|---|
| VPNサーバーのIPのみ表示 | リークなし — 保護されています |
| ローカルIPのみ(192.168.x.x、10.x.x.x) | 軽微 — ローカルIPは外部からの特定には使えません |
| 実際のパブリックIPが表示 | リーク確認 — 実際のIPが見えています |
| IPv6が表示 | IPv6リーク — IPv6を無効にするか、IPv6対応VPNを使用してください |
注意: 192.168.x.xや10.x.x.xのアドレスが表示されるのは正常です。これらはプライベート(RFC 1918)アドレスであり、ローカルネットワーク内でのみ参照できます。危険なリークは、実際のパブリックIPが漏洩することです。
WebRTCリークの修正方法
修正方法1:WebRTCリーク保護機能付きのVPNを使用する
最もシンプルな解決策です。Mullvad、ProtonVPN、ExpressVPNなどのプレミアムVPNサービスには、STUNリクエストがトンネルを迂回するのをブロックするWebRTCリーク保護機能が含まれています。VPNの設定を確認してください。「WebRTCリーク保護」や「ブラウザWebRTCブロック」などのトグルが用意されていることが多いです。
修正方法2:FirefoxでWebRTCを無効にする
FirefoxではWebRTCをネイティブに無効化できます:
- 新しいタブを開き、アドレスバーに
about:configと入力します - リスクを承認して続行 をクリックします
- 検索バーに
media.peerconnection.enabledと入力します - ダブルクリックして値を
falseに設定します - Firefoxを再起動します
これでWebRTCが完全に無効化されます。WebRTCを必要とするWebアプリ(ビデオ通話、画面共有など)は動作しなくなります。必要なときは同じ手順で再有効化してください。
修正方法3:ブラウザ拡張機能を使用する(Chrome / Edge)
ChromeにはWebRTCの組み込み設定がないため、拡張機能が必要です:
- uBlock Origin — 設定 → プライバシー →「WebRTCがローカルIPアドレスを漏洩しないようにする」をクリック
- WebRTC Leak Prevent(Chrome Web Store) — ポリシーごとのコントロールが可能な専用拡張機能
- WebRTC Control — ワンクリックでWebRTCのオン/オフを切り替え
これらの拡張機能は、WebRTCが公開できるIPアドレスを傍受または制限します。
修正方法4:Chromiumフラグを使用する(Chrome / Edge)
ChromeまたはEdgeのアドレスバーに以下を貼り付けます:
chrome://flags/#disable-webrtc
「WebRTC」 を見つけて Disabled に設定します。これは隠しフラグであり、現在は機能しますが、将来のブラウザバージョンで削除される可能性があります。
修正方法5:OperaでWebRTCを無効にする
- 設定を開く(または
Alt + Pを押す) - 詳細設定 → プライバシーとセキュリティ をクリック
- WebRTC の項目で 「プロキシを使用しないUDPを無効にする」 を選択
修正方法6:Safari
SafariのWebRTC実装はより保守的で、デフォルトではICE候補にローカルIPアドレスを公開しません。SafariでWebRTCリークが発生することはまれですが、テストで確認することは可能です。
SafariでWebRTCを完全に無効にするには:
- Safari → 開発メニューを開きます(表示されない場合は、環境設定 → 詳細で有効にしてください)
- SafariのUIにはWebRTCの直接的なトグルはありません。WebRTCはOSレベルで制限されています
WebRTCリークとIPv6
よくある問題のひとつが IPv6 WebRTCリーク です。多くのISPがIPv6アドレスを割り当てるようになっていますが、古いVPNはIPv4トラフィックしかトンネリングしません。システムにアクティブなIPv6アドレスがある場合、IPv4が隠れていてもWebRTCによってIPv6アドレスが漏洩することがあります。
確認方法:WebRTCリークテストを実行し、結果に 2001:、2600: などIPv6形式のアドレスが表示されていないか確認します。
IPv6リークの修正方法:
Windows:
# すべてのアダプターでIPv6を無効にする
Get-NetAdapterBinding -ComponentID ms_tcpip6 | Disable-NetAdapterBinding
macOS:
# Wi-FiのIPv6を無効にする(en0はお使いのアダプターに合わせて変更してください)
networksetup -setv6off Wi-Fi
Linux:
# /etc/sysctl.confに追加する
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
または、IPv6トンネリングをネイティブでサポートするVPNを使用してください。
すべてのVPNにこの問題があるのか?
いいえ — ただし多くのVPNに存在します。簡単にまとめると:
| VPNの種類 | WebRTCリークのリスク |
|---|---|
| リーク保護機能付きプレミアムVPN | 低(保護が有効な場合) |
| 無料VPNまたはブラウザベースのVPN | 高 — ほとんどはWebRTCをブロックしない |
| ブラウザ拡張機能なしのVPN | 中 — OS/ブラウザの設定による |
| Tor Browser | 低 — デフォルトでWebRTCが無効 |
無料VPN、ブラウザ拡張機能型VPN、古いVPNクライアントは、STUNトラフィックをトンネル経由でルーティングしないため、WebRTCリークが頻繁に発生します。
WebRTCリークが実際に問題になるのはどんなとき?
以下の状況でWebRTCリークは特に重大な問題となります:
- 地域制限のあるストリーミング: VPN使用中でもサービスが実際の位置情報を検出できてしまう
- プライバシーに敏感な閲覧: ジャーナリズム、法的調査、内部告発
- IPバンの回避: VPNの背後にいても実際のIPが見えてしまう
- 企業VPN: VPN接続中の従業員がオフィスのネットワークIPレンジを露出させてしまう可能性がある
プライバシーをそれほど重視しないカジュアルな閲覧であれば、WebRTCリークの緊急性は低いです。ただし、VPNを使う目的がIPアドレスの隠蔽であるなら、それが確実に機能しているか確認すべきです。
よくある質問
WebRTCリークは危険ですか? あなたの脅威モデルによります。VPNを地域限定コンテンツへのアクセスのみに使っており、IPアドレスが知られても構わないのであれば、実質的な影響はありません。VPNをプライバシー保護(本人や所在地の隠蔽)のために使っている場合、WebRTCリークはその目的を完全に無効化します — ウェブサイトに実際のIPが見えてしまいます。
WebRTCを無効にするとウェブの動作に影響はありますか? WebRTCを具体的に使用するWebアプリ(ビデオ/音声通話、ピアツーピアファイル共有、画面共有)にのみ影響します。通常のブラウジング、ストリーミング(Netflix、YouTubeなど)、すべてのサーバーベースの通信には影響しません。
ウェブサイトは常にWebRTCで実際のIPアドレスを検出できますか? WebRTC ICE候補を照会するJavaScriptを意図的に実行している場合のみです。ほとんどのウェブサイトはそれを行っていません — 意図的なコードが必要です。しかし、望めばどんなウェブサイト(または広告ネットワーク、トラッカー)でも密かに検出できます。
VPNにリーク保護があると言っているのですが、それでもテストが必要ですか? はい。VPNのマーケティング文句が実装と一致しているとは限りません。テストには30秒もかかりませんし、お使いの特定のブラウザ、OS、VPNの組み合わせで確実な答えが得られます。
VPNのキルスイッチはWebRTCリークを防ぎますか? いいえ。キルスイッチはVPNが切断された際にインターネット接続を遮断するものです。VPNがアクティブな状態でWebRTCがローカルネットワークインターフェースを照会することは防げません。
これはVPNのみの問題ですか? いいえ。Tor Browserは、まさにこの問題を防ぐためにデフォルトでWebRTCを無効にしています。Tor Browserを使わずにTorを利用している場合(例:Tor SOCKSプロキシを手動でトラフィックにルーティングするなど)、ブラウザのWebRTCが実際のIPを漏洩させる可能性があります。
関連ツール
- WebRTCリークテスト — 今すぐブラウザのWebRTCリークを確認
- マイIPアドレス — 現在のパブリックIPとウェブサイトが知っている情報を確認
- IPジオロケーション — 任意のIPアドレスに関連付けられた位置情報を検索
- DNSルックアップ — 任意のドメインのDNSレコードを確認
- Pingテスト — 任意のホストへのレイテンシを計測