# net::ERR_TUNNEL_CONNECTION_FAILED com proxy: causas e soluções

> net::ERR_TUNNEL_CONNECTION_FAILED com proxy no Chrome, Playwright ou Puppeteer: o túnel CONNECT falhou. Encontre o status oculto e corrija.

- URL: https://crawlrelay.com/pt/docs/errors/err-tunnel-connection-failed/
- Última atualização: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Erro de rede Chromium: a mensagem exata em cada ferramenta, as causas prováveis em ordem, e o conserto que funciona.

**Resposta rápida — O que ERR_TUNNEL_CONNECTION_FAILED significa com um proxy?**

**net::ERR_TUNNEL_CONNECTION_FAILED** significa que o Chrome pediu ao proxy abrir um túnel para um site HTTPS, e o proxy não respondeu `200 Connection established`. O navegador esconde o status real. Com proxies residenciais CrawlRelay, a causa comum é credenciais faltando no Playwright ou Puppeteer, depois um alvo que o gateway não alcança. Reproduza com `curl -v` para ver o código real.

## ERR_TUNNEL_CONNECTION_FAILED de relance

| Atributo | Valor |
| --- | --- |
| Erro | ERR_TUNNEL_CONNECTION_FAILED |
| Tipo | Erro de rede Chromium |
| Enviado por | Seu navegador, depois que o proxy recusou ou falhou na requisição CONNECT |
| Definido em | CONNECT method: RFC 9110, section 9.3.6 |
| Tentar novamente? | Só após encontrar o status real por trás |
| Primeira verificação | Reproduza com curl -v para ver o status real do CONNECT |

## O que ERR_TUNNEL_CONNECTION_FAILED significa?

Para carregar uma página HTTPS via proxy HTTP, o navegador primeiro envia `CONNECT host:443`. Se o proxy responde 200, o navegador inicia TLS dentro do túnel. Qualquer outra resposta, como 407, 403 ou 502, termina a tentativa, e o Chromium mostra um erro genérico.

Por isso o erro aponta onde falhou, no túnel, mas não mostra o motivo. O motivo é o código que o proxy enviou, que você pode ver com curl.

## Como ERR_TUNNEL_CONNECTION_FAILED aparece em Python, curl, Node.js e navegadores?

A mesma falha aparece de forma diferente em cada ferramenta. Estas são as mensagens para buscar nos seus logs:

- **Playwright:** `page.goto: net::ERR_TUNNEL_CONNECTION_FAILED at https://...`
- **Puppeteer:** `Error: net::ERR_TUNNEL_CONNECTION_FAILED at https://...`
- **Barra de endereço do Chrome:** 'Este site não pode ser alcançado' com o código `ERR_TUNNEL_CONNECTION_FAILED`
- **Selenium com Chrome:** o mesmo código dentro de um `WebDriverException`

## O que causa ERR_TUNNEL_CONNECTION_FAILED?

Mais provável inicialmente:

- **Nenhuma credencial enviada** (407 oculta). O Chrome ignora usuário e senha dentro de `--proxy-server`.
- **Destino recusado** (403 oculta), como uma categoria bloqueada pela política de uso do proxy.
- **Destino inalcançável** (502 ou 504 ocultos): host morto, erro de digitação ou falha DNS na saída.
- **Porta errada**: apontando o navegador para a porta SOCKS5 como se fosse HTTP, ou vice-versa.

## Como diagnosticar ERR_TUNNEL_CONNECTION_FAILED passo a passo?

1. Execute a mesma URL pelo curl com `-v` (comando abaixo) e leia a linha depois de `CONNECT`.
2. Um `407` indica credenciais; um `403` indica destino recusado; um `502` ou `504` indica o destino ou a saída.
3. Confirme que o navegador usa a porta HTTP para um servidor proxy `http://`.
4. Teste uma página simples como `https://api.ipify.org` antes do seu destino real.

*Teste a URL com erro usando curl (porta HTTP, modo verbose)*

```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
```

## Como corrigir ERR_TUNNEL_CONNECTION_FAILED?

- **Playwright:** passe `server`, `username` e `password` na opção `proxy`, por navegador ou contexto. Veja o [Guia do Playwright](https://crawlrelay.com/pt/docs/playwright/).
- **Puppeteer:** inicie com `--proxy-server=http://host:port` e chame `page.authenticate()` antes da primeira `goto`. Veja o [Guia do Puppeteer](https://crawlrelay.com/pt/docs/puppeteer/).
- **Selenium:** rode um pequeno encaminhador local que adiciona as credenciais. Veja o [Guia do Selenium](https://crawlrelay.com/pt/docs/selenium/).
- **Verifique o destino** conforme nossa [Política de Uso Aceitável](https://crawlrelay.com/pt/acceptable-use/).

*Playwright (Python): credenciais 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()
```

## Devo tentar novamente após ERR_TUNNEL_CONNECTION_FAILED?

Tente novamente apenas quando souber o status oculto. Um 407 ou 403 oculto se repetirá para sempre; corrija a configuração. Um 502 ou 504 oculto pode ser tentado novamente em uma nova saída, como qualquer erro de gateway.

## Como ERR_TUNNEL_CONNECTION_FAILED se aplica ao CrawlRelay?

A porta HTTP da CrawlRelay carrega HTTPS por túneis `CONNECT`, que todo recurso baseado em Chromium suporta. Use a porta HTTP para navegadores: Chromium não suporta SOCKS5 com usuário e senha.

Gateway: `gw.crawlrelay.com`, porta 7777 (HTTP, HTTPS via CONNECT) e porta 7778 (SOCKS5). Formato do usuário: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Relacionado: [407 Proxy Authentication Required](https://crawlrelay.com/pt/docs/errors/407-proxy-authentication-required/) · [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/pt/docs/errors/err-proxy-connection-failed/) · [Guia do Playwright](https://crawlrelay.com/pt/docs/playwright/).

## ERR_TUNNEL_CONNECTION_FAILED: perguntas que desenvolvedores fazem

### Por que o curl funciona mas o Playwright mostra ERR_TUNNEL_CONNECTION_FAILED?

Porque o curl envia credenciais pela URL do proxy, enquanto o Chromium ignora credenciais escritas no endereço do servidor proxy. No Playwright, passe `username` e `password` como campos separados da opção `proxy`. No Puppeteer, chame `page.authenticate()` antes de navegar.

### Posso usar proxies SOCKS5 com autenticação no Chrome?

Não diretamente. Chromium suporta proxies SOCKS5, mas não autenticação por usuário e senha em SOCKS5. Use a porta HTTP do gateway, que trata sites HTTPS via túneis CONNECT, ou rode um encaminhador local que autentica para o navegador.

### O ERR_TUNNEL_CONNECTION_FAILED é causado pelo site?

Raramente diretamente. O túnel é entre o navegador e o proxy, então o erro ocorre antes do site ver o handshake TLS. O site pode ser causa indireta quando está inacessível e o proxy responde 502 ou 504 à requisição CONNECT.

## Outros erros de proxy nesta referência

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

**Proxies residenciais com documentação que cobre os casos de falha** CrawlRelay proxies residenciais a partir de US$ 0,50/GB, tráfego que nunca expira. [Veja os preços](https://crawlrelay.com/pt/pricing/) · [Início rápido](https://crawlrelay.com/pt/docs/)

---

CrawlRelay: CrawlRelay é um serviço proxy residencial rotativo e proxies móveis 4G/5G para desenvolvedores, para scrapers e pipelines de dados de IA: tráfego pay-as-you-go que não expira a partir de US$ 0,50/GB, pago com cripto, sem upload de documento. Sem KYC — sem ID, sem selfie, sem documentos. Pague com cripto.
