# net::ERR_TUNNEL_CONNECTION_FAILED con proxy: causas y soluciones

> net::ERR_TUNNEL_CONNECTION_FAILED con proxy en Chrome, Playwright o Puppeteer: el túnel CONNECT falló. Encuentra el estado oculto y arréglalo.

- URL: https://crawlrelay.com/es/docs/errors/err-tunnel-connection-failed/
- Última actualización: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Error de red en Chromium: el mensaje exacto en cada herramienta, las causas probables en orden y la solución que funciona.

**Respuesta rápida — ¿Qué significa ERR_TUNNEL_CONNECTION_FAILED con un proxy?**

**net::ERR_TUNNEL_CONNECTION_FAILED** significa que Chrome pidió al proxy abrir un túnel a un sitio HTTPS y el proxy no respondió `200 Connection established`. El navegador oculta el estado real. Con proxies residenciales CrawlRelay, la causa suele ser credenciales faltantes en Playwright o Puppeteer, y luego un objetivo que el gateway no puede alcanzar. Reprodúcelo con `curl -v` para ver el código real.

## ERR_TUNNEL_CONNECTION_FAILED en pocas palabras

| Atributo | Valor |
| --- | --- |
| Error | ERR_TUNNEL_CONNECTION_FAILED |
| Tipo | Error de red en Chromium |
| Enviado por | Tu navegador, después de que el proxy rehusó o falló la solicitud CONNECT |
| Definido en | CONNECT method: RFC 9110, section 9.3.6 |
| ¿Reintentar? | Solo después de que conozcas el estado real |
| Primera comprobación | Reprodúcelo con curl -v para ver el estado real del CONNECT |

## ¿Qué significa ERR_TUNNEL_CONNECTION_FAILED?

Para cargar una página HTTPS vía proxy HTTP, el navegador envía primero `CONNECT host:443`. Si el proxy responde 200, el navegador inicia TLS dentro del túnel. Cualquier otra respuesta, como 407, 403 o 502, termina el intento, y Chromium reporta un error genérico.

Por eso este error te dice dónde falló (el túnel), pero no por qué. El por qué es el código que envió el proxy, que puedes ver con curl.

## ¿Cómo se ve ERR_TUNNEL_CONNECTION_FAILED en Python, curl, Node.js y navegadores?

El mismo fallo se muestra de forma diferente en cada herramienta. Estos son los mensajes que debes buscar en tus registros:

- **Playwright:** `page.goto: net::ERR_TUNNEL_CONNECTION_FAILED at https://...`
- **Puppeteer:** `Error: net::ERR_TUNNEL_CONNECTION_FAILED at https://...`
- **Barra de direcciones de Chrome:** 'No se puede acceder a este sitio' con el código `ERR_TUNNEL_CONNECTION_FAILED`
- **Selenium con Chrome:** el mismo código dentro de un `WebDriverException`

## ¿Qué causa ERR_TUNNEL_CONNECTION_FAILED?

Lo más probable al principio:

- **No se enviaron credenciales** (407 oculto). Chrome ignora un usuario y contraseña dentro de `--proxy-server`.
- **Un destino rechazado** (403 oculto), como una categoría bloqueada por la política de uso del proxy.
- **Un objetivo inalcanzable** (502 o 504 ocultos): un host muerto, una falta de ortografía o un fallo DNS en la salida.
- **Un puerto erróneo**: apuntar el navegador al puerto SOCKS5 como si fuera HTTP, o al revés.

## ¿Cómo diagnostico ERR_TUNNEL_CONNECTION_FAILED paso a paso?

1. Ejecuta la misma URL con curl usando `-v` (comando abajo) y lee la línea después de `CONNECT`.
2. Un `407` significa credenciales; un `403` significa un destino rechazado; un `502` o `504` el objetivo o la salida.
3. Confirma que el navegador usa el puerto HTTP para un servidor proxy `http://`.
4. Prueba una página simple como `https://api.ipify.org` antes de tu destino real.

*Prueba la URL que falla con curl (puerto HTTP, modo detallado)*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## ¿Cómo soluciono ERR_TUNNEL_CONNECTION_FAILED?

- **Playwright:** pasa `server`, `username` y `password` en la opción `proxy`, por navegador o por contexto. Ver la [guía de Playwright](https://crawlrelay.com/es/docs/playwright/).
- **Puppeteer:** lanza con `--proxy-server=http://host:port` y llama a `page.authenticate()` antes del primer `goto`. Ver la [guía de Puppeteer](https://crawlrelay.com/es/docs/puppeteer/).
- **Selenium:** ejecuta un pequeño reenviador local que añade las credenciales. Ver la [guía de Selenium](https://crawlrelay.com/es/docs/selenium/).
- **Verifica el destino** con nuestra [Política de Uso Aceptable](https://crawlrelay.com/es/acceptable-use/).

*Playwright (Python): credenciales como campos separados*

```python
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://gw.crawlrelay.com:7777",
        "username": "USERNAME-country-us",
        "password": "PASSWORD",
    })
    page = browser.new_page()
    response = page.goto("https://api.ipify.org")
    print(response.status, page.inner_text("body"))
    browser.close()
```

## ¿Debo reintentar después de ERR_TUNNEL_CONNECTION_FAILED?

Reintenta solo cuando conozcas el estado oculto. Un 407 o 403 ocultos se repetirán para siempre; corrige la configuración. Un 502 o 504 ocultos pueden reintentarse en una nueva salida, como cualquier error de gateway.

## ¿Cómo se aplica ERR_TUNNEL_CONNECTION_FAILED a CrawlRelay?

El puerto HTTP de CrawlRelay transporta HTTPS a través de túneles `CONNECT`, que todas las herramientas basadas en Chromium soportan. Usa el puerto HTTP para navegadores: Chromium no soporta SOCKS5 con usuario y contraseña.

Gateway: `gw.crawlrelay.com`, puerto 7777 (HTTP, HTTPS a través de CONNECT) y puerto 7778 (SOCKS5). Formato de usuario: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Relacionado: [407 Proxy Authentication Required](https://crawlrelay.com/es/docs/errors/407-proxy-authentication-required/) · [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-proxy-connection-failed/) · [Guía de Playwright](https://crawlrelay.com/es/docs/playwright/).

## ERR_TUNNEL_CONNECTION_FAILED: preguntas que hacen los desarrolladores

### ¿Por qué curl funciona pero Playwright muestra ERR_TUNNEL_CONNECTION_FAILED?

Porque curl envía las credenciales desde la URL del proxy, mientras Chromium ignora las credenciales escritas en la dirección del servidor proxy. En Playwright, pasa `username` y `password` como campos separados de la opción `proxy`. En Puppeteer, llama a `page.authenticate()` antes de navegar.

### ¿Puedo usar proxies SOCKS5 con autenticación en Chrome?

No directamente. Chromium soporta proxies SOCKS5 pero no autenticación con usuario y contraseña para SOCKS5. Usa en su lugar el puerto HTTP del gateway, que maneja sitios HTTPS mediante túneles CONNECT, o ejecuta un reenviador local que autentique para el navegador.

### ¿Es ERR_TUNNEL_CONNECTION_FAILED culpa del sitio web?

Rara vez directamente. El túnel es entre el navegador y el proxy, por lo que el error sucede antes de que el sitio web vea un handshake TLS. El sitio puede ser la causa indirecta cuando es inalcanzable y el proxy responde 502 o 504 a la petición CONNECT.

## Otros errores de proxy en esta referencia

- [401 Unauthorized vs 407](https://crawlrelay.com/es/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/es/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/es/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/es/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/es/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/es/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/es/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/es/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/es/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/es/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/es/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/es/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/es/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/es/docs/errors/ssl-wrong-version-number/)

**Proxies residenciales con documentación que cubre los casos de fallo** CrawlRelay proxies residenciales de 0,50 US$/GB, tráfico que nunca expira. [Ver precios](https://crawlrelay.com/es/pricing/) · [Inicio rápido](https://crawlrelay.com/es/docs/)

---

CrawlRelay: CrawlRelay es un servicio de proxies residenciales rotativos y proxies móviles 4G/5G para desarrolladores, ideal para scrapers y pipelines de datos de IA: tráfico prepago sin vencimiento desde 0,50 US$/GB, pagado con criptomonedas, sin subir documentos de identidad. Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas.
