Fugas de WebRTC
Test de fugas WebRTC: qué revela de tu dirección IP una llamada desde el navegador
Forma parte de: ¿Es seguro hacer llamadas VoIP? Lo que protege una llamada desde el navegador y lo que deja al descubierto
En resumen
Un test de fugas WebRTC muestra todas las direcciones IP que tu navegador entrega a una página web a través de WebRTC, para que detectes alguna que querías ocultar, normalmente la de tu proveedor de internet mientras tienes la VPN activada[1]. Una llamada desde el navegador a un número de teléfono muestra tu IP al servicio de llamadas, no a la persona a la que llamas, que recibe un identificador de llamada[2]. El test es una de las comprobaciones de privacidad y seguridad que recomiendo antes de llamar desde el navegador.
Datos clave
- Las normas de WebRTC del IETF dicen que una VPN con túnel dividido puede dejar que WebRTC descubra la dirección pública de tu proveedor de internet además de la de la VPN[1]. Comprobado el .
- En mi prueba local con Chrome 156, una página sin permiso de micrófono solo veía mi ordenador como un nombre .local aleatorio; con el micrófono permitido, obtuvo mi dirección local real[3][1]. Comprobado el .
- Messenger dice que las llamadas individuales comparten tu dirección IP con el dispositivo de la otra persona[4]; el ajuste de WhatsApp Proteger la dirección IP en las llamadas, en cambio, retransmite las llamadas a través de sus servidores[5]. Comprobado el .
¿Qué es una fuga de WebRTC?
Antes de una llamada WebRTC, el navegador recopila las posibles rutas de red, llamadas candidatos ICE, y se las entrega a la página web para que las pase al otro extremo. Cada una lleva una dirección IP, o un nombre .local aleatorio en lugar de una dirección local oculta. Un sitio web normal solo ve la dirección pública desde la que llega tu petición; a través de WebRTC, una página puede saber más[1]. Una fuga es cualquier dirección de esa lista que no querías compartir.
Cómo viaja el resto de la llamada lo explico en WebRTC, SIP y la red telefónica; para las fugas, solo importa la lista de candidatos. MDN señala que sus direcciones siempre quedan expuestas a la página[6].
| Tipo de candidato | Dirección que muestra | Riesgo para la privacidad |
|---|---|---|
| host | La dirección de tu dispositivo en la red local, o un nombre aleatorio terminado en .local si el navegador la oculta[7][3] | Menor que el de una dirección pública, pero el IETF considera las direcciones IPv4 privadas una superficie de fingerprinting bastante significativa[1] |
| srflx (server reflexive) | La dirección pública que tu router o tu VPN muestran a un servidor STUN[7] | Alto si es la dirección de tu proveedor mientras tienes la VPN activada[1] |
| relay | Una dirección en un servidor TURN que reenvía el tráfico multimedia[7] | Bajo: el otro extremo ve la dirección del servidor de retransmisión, no la tuya[6]; quien gestiona ese servidor sí te ve |
El IETF considera el caso de la VPN el más grave, porque hay quien usa una VPN para mantenerse en el anonimato[1]. Los otros dos casos son tu dirección privada y un proxy que las comprobaciones de WebRTC se saltan, con lo que queda a la vista tu dirección pública real[1].
¿Una llamada desde el navegador expone tu dirección IP?
Al servicio de llamadas, sí: cualquier sitio web ve tu dirección pública[1], y una llamada añade una conexión multimedia con los servidores del servicio. A la persona a la que llamas a un fijo o a un móvil, no: la llamada sale de internet en la pasarela del proveedor[8], y la red telefónica transmite un número de llamante, no una dirección IP[2]. Las llamadas de app a app pueden conectar dos dispositivos directamente.
| Tipo de llamada | El servicio | La persona a la que llamas |
|---|---|---|
| Del navegador a un número de teléfono (Google Voice, TwinPhone, Yolla) | Sí: gestiona la conexión multimedia | No: ve un identificador de llamada[2] |
| Marcadores web gratuitos (Call2Friends, Globfone) | Sí: Call2Friends limita las llamadas gratis por dirección IP, y la política de privacidad de Globfone incluye las direcciones IP entre los datos técnicos y registros que trata[9][10] | No: ve un identificador de llamada |
| Messenger, llamada individual | Sí | Sí: Meta dice que tu IP se comparte con el otro dispositivo[4] |
| Sí | Puede verla, salvo que actives Proteger la dirección IP en las llamadas; las llamadas en grupo siempre se retransmiten[5] | |
| Telegram | Sí | Puede verla: el anuncio de Telegram de 2017 dice que las llamadas van directamente de un dispositivo a otro (peer-to-peer) siempre que es posible[11] |
En las llamadas a números reales, la cuestión es qué averigua y qué guarda el servicio; lo que ve la persona a la que llamas lo explico en qué número aparece cuando llamas desde el navegador.
Cómo hacer un test de fugas WebRTC
Una página de test de fugas hace lo mismo que un marcador antes de una llamada: abre una conexión WebRTC, pregunta a un servidor STUN qué dirección pública ve y muestra cada candidato junto a la dirección que la página ve por HTTP normal. Hazlo en cada navegador desde el que llames, primero con la VPN desactivada y luego con la VPN activada.
- VPN desactivada: abre una página de test de fugas, como el WebRTC Leak Test de BrowserLeaks. «Your Remote IP», arriba, y «Public IP Address», bajo «Your WebRTC IP», deberían coincidir.
- VPN activada: recarga la página. «Your Remote IP» debería mostrar ahora la dirección de la VPN.
- Si la sección de WebRTC sigue mostrando la dirección de tu proveedor, WebRTC está saliendo por fuera del túnel[1].
- Una entrada local terminada en .local significa que la dirección está oculta[3]; una que aparece tal cual y empieza por 192.168. o 10. no lo está.
- Si la página ofrece una prueba de micrófono, permítela y repite el test: un marcador necesita acceso al micrófono, y ese permiso puede desbloquear más direcciones[1]. Después, retira el permiso en la configuración del sitio[12].
Qué cambió en Chrome al permitir el micrófono
El cargué una página de prueba local en Chrome 156 en un Mac, sin servidor STUN, así que ninguna dirección salió hacia un servidor externo. Sin permiso de micrófono, la página vio un único candidato host con un nombre aleatorio terminado en .local[3]. Con el micrófono permitido, recibió mi dirección IPv4 local real.
Eso es lo que marca el estándar, que solo permite la lista completa de direcciones con consentimiento, como el permiso de micrófono[1]; WebKit, el motor de Safari, describió la misma regla en 2017[13]. Así que un marcador al que das permiso puede ver tu dirección local: un riesgo menor que el de tu dirección pública[1].
Ajustes del navegador que limitan las fugas de WebRTC
Brave documenta un ajuste de IP de WebRTC para los usuarios. Google documenta los controles de Chrome para extensiones y administradores, y Microsoft documenta los de Edge como directiva de administrador. Firefox oculta las direcciones locales por defecto y mantiene un interruptor para desactivarlo en about:config. Hay una regla que vale para todos: desactivar WebRTC también inutiliza los marcadores web, porque es WebRTC lo que transporta la llamada[14].
| Navegador | Control | Qué cambia | Efecto en las llamadas desde el navegador |
|---|---|---|---|
| Brave | Política de gestión de IP de WebRTC en los ajustes de privacidad, según la wiki de Brave (editada por última vez en 2018)[15] | Con Default Public Interface Only no se expone ninguna dirección local[15] | El tráfico multimedia puede pasar por un servidor de retransmisión[1] |
| Chrome | Las extensiones pueden fijar una política de gestión de IP de WebRTC[16]; los administradores pueden fijar la directiva WebRtcIPHandling[17] | Según el valor, deja de usar las direcciones privadas o envía el tráfico multimedia solo a través de un proxy[17] | Los valores de solo proxy pueden llevar el audio a TCP, lo que según el IETF reduce la calidad[1] |
| Edge | Directiva de administrador WebRtcLocalhostIpHandling[18] | Dos de sus valores dejan de exponer la dirección IP local[18] | Igual que en Chrome |
| Firefox | Direcciones locales ocultas por defecto[19]; media.peerconnection.enabled en about:config[20] | Poner esa preferencia en false desactiva WebRTC | Los marcadores web dejan de funcionar |
| Safari | Regla integrada | Las páginas sin acceso al micrófono o a la cámara no reciben direcciones host, según lo describió WebKit en 2017[13] | Ninguno |
Qué cambia una VPN en las llamadas desde el navegador
Una VPN que envía todo el tráfico por su túnel, WebRTC incluido, muestra al servicio de llamadas la dirección de la VPN en lugar de la tuya. Una VPN con túnel dividido puede dejar además que WebRTC encuentre la dirección de tu proveedor[1]; de ahí el test de fugas con la VPN activada. Una VPN también tiene efectos secundarios en las llamadas.
- Algunos servicios restringen las VPN: las condiciones de TextNow dicen que puede limitar o restringir su uso[21].
- Algunos marcadores gratuitos racionan las llamadas gratis por dirección IP, como hace Call2Friends[9], así que con una VPN puedes acabar compartiendo ese cupo con otros usuarios de la misma dirección de salida.
- Forzar el tráfico multimedia a través de un proxy que no admite UDP pasa el audio a TCP, lo que según el IETF reduce la calidad[1].
- El servicio sigue viendo tu cuenta y tu registro de llamadas; Google, por ejemplo, puede registrar los números, la hora y la duración de las llamadas[22].
Cómo mantener tu dirección IP en privado al llamar
Adapta la solución al tipo de llamada. En las llamadas a números de teléfono, la persona a la que llamas no recibe tu IP, así que elige un servicio al que confiarías ese dato y revisa tu VPN. En las llamadas de app a app, el otro dispositivo puede conectarse directamente con el tuyo, así que usa el ajuste de retransmisión de la app si lo tiene.
- Llamadas desde el navegador: haz el test de fugas con la VPN activada; en Brave, elige Default Public Interface Only[15].
- Micrófono: en los marcadores que uses una sola vez, concédelo con «Permitir esta vez»[12]; en mi prueba con Chrome, una página con ese permiso podía ver la dirección local.
- WhatsApp: activa Proteger la dirección IP en las llamadas. La página de ayuda cubre Android, iOS y Mac, no la versión web, y advierte de que las llamadas retransmitidas pueden perder algo de calidad[5].
Preguntas frecuentes
¿Qué es un test de fugas WebRTC?
Es una página web que ejecuta el mismo establecimiento de conexión que usa una llamada desde el navegador y muestra todas las direcciones IP que ofrece tu navegador, junto a la dirección que la página ve por HTTP normal. Si en esa lista aparece la dirección de tu proveedor mientras tienes la VPN activada, WebRTC está saliendo por fuera del túnel[1]; un nombre .local aleatorio significa que tu dirección local está oculta[3].
¿La persona a la que llamo desde el navegador puede ver mi dirección IP?
No, si llamas a un fijo o a un móvil. El proveedor convierte el audio de tu navegador en una llamada telefónica en su pasarela[23], y la red telefónica transmite un número de llamante, no una dirección IP[2]. Las llamadas de app a app son distintas: Messenger dice que las llamadas individuales comparten tu IP con el dispositivo de la otra persona[4].
¿Una VPN evita las fugas de WebRTC?
Una VPN que enruta todo el tráfico por su túnel, WebRTC incluido, sí. Una VPN con túnel dividido puede que no, porque WebRTC puede descubrir la dirección pública de tu proveedor además de la de la VPN[1]. La única forma de saberlo es hacer un test de fugas con la VPN conectada, en cada navegador que uses, y repetirlo después de cada actualización.
¿Es peligrosa una fuga de la dirección IP local?
Menos que una fuga de la dirección pública. Una dirección privada como 192.168.1.20 no dice dónde estás, pero el IETF considera las direcciones IPv4 privadas una superficie de fingerprinting bastante significativa, capaz de vincular las sesiones normales y las de navegación privada en un mismo dispositivo[1]. Firefox oculta las direcciones locales por defecto[19], Safari las oculta a las páginas sin acceso al micrófono o a la cámara[13], y Chrome también lo hizo en mi prueba.
¿El modo incógnito o la navegación privada evitan las fugas de WebRTC?
No. El IETF señala que una dirección privada revelada a través de WebRTC puede funcionar como identificador y decirle a un sitio que una ventana normal y una de navegación privada están en el mismo dispositivo[1], así que el modo privado por sí solo no la oculta. Usa los ajustes del navegador que explico arriba y haz también un test de fugas en una ventana privada.
¿Funcionan las extensiones contra las fugas de WebRTC?
En parte. En Chrome, una extensión puede fijar la política de gestión de IP de WebRTC del navegador, que Google describe como un equilibrio entre el rendimiento multimedia y la cantidad de información sobre direcciones locales que se expone[16]. Según el valor, eso oculta las direcciones locales o fuerza el tráfico multimedia a través de un proxy, lo que puede pasar el audio a TCP y reducir la calidad[1]. Haz un test de fugas después de instalar una para confirmar el cambio.
¿Cómo desactivo WebRTC en Firefox?
Escribe about:config en la barra de direcciones, busca media.peerconnection.enabled y ponlo en false. El código fuente de Mozilla describe esa preferencia como el interruptor de RTCPeerConnection, y desactivarla también quita a las páginas el acceso a la API del micrófono[20]. A partir de ahí, ningún marcador web funciona, así que a la mayoría le conviene más la configuración por defecto de Firefox, que ya oculta las direcciones locales[19].
¿Cómo evito las fugas de WebRTC en Chrome?
Con una extensión o una política, porque Google documenta los controles de direcciones de WebRTC de Chrome para esas dos vías. Una extensión puede fijar la política de gestión de IP de WebRTC[16], y los administradores pueden configurar WebRtcIPHandling, cuyo valor default_public_interface_only impide que WebRTC use direcciones privadas[17]. En mi comprobación en Chrome, una página sin permiso de micrófono ya solo veía un nombre .local aleatorio[3]. Detrás de una VPN, la solución real es un túnel que lleve todo el tráfico[1]. Cualquier cosa que bloquee WebRTC por completo también impide las llamadas desde el navegador[14].
¿Puede una web ver mi IP a través de WebRTC sin pedir permiso?
Tu dirección pública, sí, pero las webs ya la ven de todos modos: Safari, por ejemplo, solo da a las páginas sin acceso al micrófono direcciones que una web ya podría obtener[13]. El problema es un proxy en el navegador. Si se permite el acceso directo a internet, las comprobaciones STUN de WebRTC pueden saltarse el proxy y revelar tu dirección pública real[1]. Las direcciones locales están mejor protegidas: el estándar vincula la lista completa a un consentimiento como el permiso del micrófono[1], y en mi comprobación en Chrome una página sin ese permiso solo veía un nombre .local aleatorio[3].
Pregunta a una IA sobre este análisis
Cada botón abre el asistente en una pestaña nueva y le pide que resuma esta página citándola como fuente.
Fuentes
- RFC 8828: WebRTC IP Address Handling Requirements · IETF (RFC Editor) · comprobado el 1 de noviembre de 2026
- 47 CFR 64.1601 -- Delivery requirements and privacy restrictions | eCFR · US Code of Federal Regulations (eCFR) · comprobado el 1 de noviembre de 2026
- Using Multicast DNS to protect privacy when exposing ICE candidates (draft-ietf-mmusic-mdns-ice-candidates) · IETF (Internet-Draft, work in progress) · comprobado el 1 de noviembre de 2026
- Voice call someone or a group on Messenger - Messenger Help Center (Computer) · comprobado el 1 de noviembre de 2026
- How to protect your IP address on WhatsApp calls | WhatsApp Help Center · WhatsApp · comprobado el 1 de noviembre de 2026
- RTCIceCandidate: address property - Web APIs | MDN · MDN Web Docs (Mozilla) · comprobado el 1 de noviembre de 2026
- RTCIceCandidate: type property - Web APIs | MDN · MDN Web Docs (Mozilla) · comprobado el 1 de noviembre de 2026
- Make calls | Sonetel help · comprobado el 1 de noviembre de 2026
- Free call | Call2Friends - Online call · comprobado el 1 de noviembre de 2026
- Privacy Policy | Globfone · comprobado el 1 de noviembre de 2026
- Voice Calls: Secure, Crystal-Clear, AI-Powered | Telegram Blog (30 March 2017) · Telegram · comprobado el 1 de noviembre de 2026
- Use your camera and microphone in Chrome - Computer - Google Chrome Help · Google · comprobado el 1 de noviembre de 2026
- A Closer Look Into WebRTC | WebKit (3 July 2017) · WebKit (Apple) · comprobado el 1 de noviembre de 2026
- WebRTC API - Web APIs | MDN · MDN Web Docs (Mozilla) · comprobado el 1 de noviembre de 2026
- WebRTC Custom Settings · brave/brave-browser Wiki · Brave Software (official GitHub wiki) · comprobado el 1 de noviembre de 2026
- chrome.privacy | API | Chrome for Developers · Google (Chrome for Developers) · comprobado el 1 de noviembre de 2026
- Chrome Enterprise policy list: WebRtcIPHandling (WebRTC IP handling) · Google (Chrome Enterprise) · comprobado el 1 de noviembre de 2026
- Microsoft Edge Browser Policy Documentation WebRtcLocalhostIpHandling | Microsoft Learn · Microsoft · comprobado el 1 de noviembre de 2026
- Firefox source: modules/libpref/init/all.js (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · comprobado el 1 de noviembre de 2026
- Firefox source: modules/libpref/init/StaticPrefList.yaml (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · comprobado el 1 de noviembre de 2026
- Terms of Use – TextNow · comprobado el 1 de noviembre de 2026
- Privacy Policy – Privacy & Terms – Google · Google · comprobado el 1 de noviembre de 2026
- Call From Your Browser Without a SIM Card - TwinPhone · comprobado el 1 de noviembre de 2026