使い方
- VPNをオンにしてから、このページを開き、テストを実行を押します。
- ページが公開のSTUNサーバー2つに接続する間、数秒待ちます。
- 判定を読みます。公開アドレスが違うと示された場合は、VPNをオフにしてからオンにし直し、もう一度テストを実行してください。
テストの内容
WebRTCは、通話やファイル共有のために、ブラウザ同士を直接つなぐ仕組みです。経路を見つけるため、候補となるアドレスを集めます。端末自身のアドレスと、STUNサーバーが返す公開アドレスです。このテストは、Googleのstun.l.google.comと、Cloudflareのstun.cloudflare.comという2つの公開STUNサーバーで、この収集を始め、ブラウザが見つけた候補を読み取ります。
STUNサーバーが報告する公開アドレスは、通信が出ていくアドレスです。それが、このサーバーがお使いのリクエストで見るアドレスと違う場合、VPNがすべての通信を運んでいない可能性があります。STUNサーバーは、応答するために必要な公開アドレスを見ますが、このページからそれ以外のものは見ません。
ブラウザ別の漏えいの止め方
ブラウザごとに、設定できる項目は異なり、手順はバージョンによって変わります。設定を変えるたびに、このテストの結果を確認してください。
- Firefox:about:configを開き、media.peerconnection.ice.default_address_only を true にすると、WebRTCは既定の経路だけを使います。media.peerconnection.enabled を false にすると、WebRTCを完全に止められるため、ブラウザでの通話もできなくなります。Mozillaのwikiが両方の設定を説明しています。
- Edge:Microsoftは、管理者が設定するWebRtcLocalhostIpHandlingというポリシーを文書化しています。その値 AllowPublicInterfaceOnly にすると、WebRTCは公開のインターフェースだけを使います。一般のユーザー向けの設定は見つかりませんでした。
- Brave:設定には、WebRTCのIPに関する「Default Public Interface Only」の項目があり、Braveの文書で説明されています。メニューの位置はバージョンによって違います。
- Chrome:一般のユーザー向けの公式な設定は見つかりませんでした。同じ制限をかける拡張機能が、よく使われる方法です。コードを信頼できるものを選んでください。
- Safari:WebRTCのアドレスに関する設定は、確認できていません。
- どのブラウザでも:WebRTCの通信を止めるVPN、または端末全体の通信を経路に乗せるVPNは、問題の原因を取り除きます。その後、このテストをもう一度実行してください。
このテストが示さないこと
- すべての経路を試すわけではありません。STUNサーバーが報告しなかったアドレスを、接続が使う場合もあります。
- 候補がどのネットワークインターフェースから来たかは分からないため、違うアドレスが通常の接続から来ている可能性もあります。
- 隠された.local名は、ブラウザが明かさなかったローカルアドレスを表します。このテストは、その中身を読めません。
例:漏えいするVPN
下のアドレスは、実際のアドレスの代わりに使われる、RFC 5737のドキュメント用アドレスです。このサーバーはVPNサーバーのアドレスを見ますが、ブラウザは通常の接続のアドレスも報告します。
そのため結果は漏えいの可能性となり、ページは違うアドレスを一覧にします。
| アドレス | 見たもの | 結果 |
|---|---|---|
| 203.0.113.7 | このサーバー | VPNのアドレス |
| 198.51.100.9 | ブラウザ(WebRTC) | 違う:通常の接続 |
| 192.168.1.10 | ブラウザ(ローカル) | ローカルアドレスで、公開ではない |
よくある質問
WebRTCが、なぜIPアドレスを示すのですか?
WebRTCは、別のブラウザへの経路を見つけるため、端末が持つすべてのアドレスを集めます。VPNはWebの通信を運びますが、ブラウザかVPNが止めるよう設定されていなければ、一部のWebRTCの通信は通常の接続から出ることがあります。
このテストは、私のIPアドレスをどこかに送りますか?
テストの間、アドレスは2つのSTUNサーバーに届きます。それに応答する必要があるためです。このサーバーも、すべてのリクエストと同じくアドレスを見ますが、保存はしません。ほかに、入力やクリックした内容は送られません。
なぜ、隠された.local名は、アドレスではないと言うのですか?
ブラウザは、端末のプライベートなアドレスを、.localで終わるランダムな名前に置き換えるため、Webページはそのアドレス自体を読めません。その名前は仮のもので、テストは数えられますが、その奥は見られません。
VPNを使っていないのに、公開アドレスが違うと結果に出たら、どうなりますか?
端末が、IPv4の通信では使われないIPv6アドレスを持っていて、テストがそれを報告している可能性があります。何かが漏えいしていると結論する前に、接続のIPv6の設定を確かめてください。
このテストは、カメラやマイクの許可を求めないのはなぜですか?
必要ないからです。カメラやマイクのアクセスを許可すると、ブラウザは本当のローカルアドレスを表示するため、その選択はテストの利用者に任せています。
WebRTCを止めると言うVPNは、信頼できますか?
試してください。VPNをオンにしてこのページを実行し、結果を読みます。主張は証拠ではなく、更新やネットワークの変更のあとに漏えいが戻ることがあります。
出典
- RFC 8839(英語): SDP syntax for ICE (candidate attribute, section 5.1)
- IETF draft(英語): Using Multicast DNS to protect privacy when exposing ICE candidates (expired)
- Mozilla wiki(英語): WebRTC privacy settings
- Microsoft(英語): WebRtcLocalhostIpHandling policy for Microsoft Edge
- Cloudflare(英語): TURN and STUN servers
- RFC 5737(英語): IPv4 address blocks reserved for documentation
数値と文章の最終確認日:2026年11月10日火曜日。