The strongest defense isn't a single layer โ it's layered hardening. (1) Chrome/Edge: the engine has no about:config, so the reliable route is a reputable WebRTC-control extension (setting WebRtcIPHandling to disable_non_proxied_udp, i.e. WebRTC only over the proxy tunnel), or the equivalent browser policy in a managed environment. (2) Firefox: go to about:config; setting media.peerconnection.enabled to false fully disables WebRTC; if you want to keep calls but stop leaks, set media.peerconnection.ice.proxy_only to true to force ICE through the proxy and kill bare UDP. (3) Safari (macOS) ships mDNS for partial LAN protection, and Brave blocks WebRTC leaks by default, so both are lower-maintenance.
Mind one trade-off: fully disabling WebRTC breaks anything that depends on it โ Google Meet, web-based Tencent Meeting, Discord voice, and similar. If you live in web meetings, prefer 'proxy-only' (proxy_only / disable_non_proxied_udp) over a blanket kill: you keep the feature and still plug the hole.
After any change, re-test โ don't go by feel. The WebRTC detector at the top of this page runs RTCPeerConnection entirely in your local browser, gathers ICE candidates, and compares them against your current exit IP. Unlike tools such as ping0, IPOK does not POST the captured candidates back to a server, keeps no IPv4โIPv6 cross-referencing logs, and tests only when you click. We also don't log the IP you query. Change a setting, re-test, and repeat until the result shows only .local or an srflx that exactly matches your proxy exit โ that's when you're genuinely covered.