Você está no meio de um pedido. Clica no botão, a aba gira por um segundo e o Chrome mostra "Não é possível acessar esse site", com "A conexão foi redefinida." logo abaixo e ERR_CONNECTION_RESET no final. O Firefox diz isso em uma linha: "A conexão foi reiniciada". Os outros sites abrem normalmente, e daqui a um minuto este talvez abra também.
A seguir: o que é uma redefinição, quem pode enviá-la, como descobrir de onde vem a sua, as soluções no computador e no celular, o que verificar se o site é seu e o mesmo erro no código, onde ele se chama "connection reset by peer", ECONNRESET ou WinError 10054.
O que significa ERR_CONNECTION_RESET?
Antes de uma página carregar, o seu navegador e o servidor do site abrem uma conexão, uma linha de mão dupla que fica aberta enquanto os dados vão e voltam. Uma redefinição encerra essa linha no meio do caminho. A lista de erros de rede do Chromium descreve o código -101 como uma conexão que "foi redefinida (correspondendo a um TCP RST)". Chrome, Edge, Brave e Opera compartilham essa lista e, por isso, mostram o mesmo código.
A diferença em relação aos vizinhos é o momento. Com ERR_CONNECTION_REFUSED, a linha nunca foi aberta; com ERR_CONNECTION_TIMED_OUT, nada respondeu. Uma redefinição chega depois que a linha já estava funcionando. Os outros códigos dessa tela cinza são comparados em Não é possível acessar esse site: o que é e por que acontece.
Como uma conexão é redefinida?
O TCP, o protocolo que transporta as páginas da web, pode encerrar uma conexão de duas formas: com um fechamento educado, que primeiro termina de enviar, ou com uma redefinição, que para tudo na hora. A RFC 9293, seção 3.5.2 permite que um programa emita uma redefinição a qualquer momento, e o próprio TCP envia uma quando chega um pacote de uma conexão que a máquina já não conhece.
- O seu navegador abre uma conexão e, em sites
https://, configura a criptografia (TLS). - Ele envia a requisição e começa a ler a resposta.
- Em algum ponto do caminho, um programa decide que a conexão precisa terminar, ou uma máquina recebe um pacote de uma conexão que ela esqueceu. Ela envia uma redefinição.
- O seu computador descarta a conexão no instante em que a redefinição chega, e o Chrome mostra o erro.
Uma redefinição não traz nenhum motivo e parece ter sido enviada pelo site, mas um dispositivo no meio do caminho pode enviá-la em nome do site. Pesquisadores do ICSI e da UC Berkeley documentaram redefinições TCP forjadas vindas de produtos de controle de tráfego usados por provedores de internet, sistemas antivírus e filtros nacionais. O navegador consegue dizer "redefinida", nunca "redefinida por quem".
Quem pode enviar a redefinição?
| Quem | Por quê | Sinal típico | Primeiro passo |
|---|---|---|---|
| O servidor do site | Reinício, falha, limite de conexões | Falha para todos, vai e volta | Recarregue mais tarde |
| Software de segurança | "Proteção da web" ou "verificação de HTTPS" | Todos os navegadores de um computador | Pause a proteção da web para um teste |
| Uma extensão do navegador | Complemento de VPN, proxy ou bloqueio de anúncios | Um navegador; a janela anônima funciona | Desative as extensões |
| Uma VPN ou um proxy | Túnel caiu, conexões ociosas fechadas | Só enquanto está ligado | Desligue |
| Um filtro de rede | Uma regra do trabalho, da escola ou do provedor | Um site, todos os dispositivos de uma rede | Pergunte ao administrador |
| Roteador ou linha | Falha breve | Vários sites por alguns minutos | Reinicie o roteador |
| Balanceador de carga na frente do site | Tempo limite de inatividade, regra de proteção | Páginas abertas por muito tempo, uploads grandes | As configurações do responsável pelo site |
Uma configuração errada de MTU, o maior tamanho de pacote que um enlace transporta, também costuma levar a culpa, mas normalmente ela faz as páginas travarem em vez de serem redefinidas: pacotes grandes demais somem sem nenhum sinal.
O problema é do site, do seu dispositivo ou da rede?
Cinco verificações, da mais rápida para a mais lenta. Pare na primeira que mudar o resultado.
- Recarregue uma vez. Uma redefinição isolada depois de um reinício do servidor ou de uma troca de Wi-Fi se resolve sozinha.
- Tente outro navegador. Se o Firefox abre o que o Chrome não consegue, a causa está dentro do Chrome: uma extensão ou uma configuração. Uma redefinição em todos os navegadores aponta para algo que o computador inteiro compartilha.
- Abra o site no celular com o Wi-Fi desligado. Se ele carregar pelos dados móveis, o site está no ar e o problema é a sua rede ou o seu computador. Se não, o problema é do site.
- Tente outro dispositivo no mesmo Wi-Fi. Se funcionar nele, olhe para o primeiro computador: software de segurança, uma VPN, uma configuração de proxy.
- Todos os dispositivos deste Wi-Fi falham neste site. O corte acontece no caminho: o roteador, o provedor ou um filtro.
Como resolver ERR_CONNECTION_RESET no computador?
Recarregue depois de cada passo.
- Descarte as extensões. No Chrome, selecione Mais > Nova janela anônima. As extensões só funcionam ali se você ativou Permitir em navegação anônima para elas, então uma página que abre nessa janela aponta para uma extensão. Vá em Mais > Extensões > Gerenciar extensões e desative uma de cada vez, começando pelos complementos de VPN e proxy. No Firefox, Ajuda > Modo de solução de problemas… abre o navegador com os complementos desativados.
- Desligue o aplicativo de VPN ou de proxy. Depois procure um proxy que você nunca configurou: no Windows 11, abra Configurações > Rede e Internet > Proxy e, em Configuração manual de proxy, selecione Configurar ao lado de Usar um servidor proxy. Se ele estiver ativado e não foi você quem ativou, desative e selecione Salvar. O Chrome abre a mesma página em Configurações > Sistema > Abre as configurações de proxy do computador. A configuração do próprio Firefox deve estar em Sem proxy ou Usar as configurações de proxy do sistema, a não ser que você tenha escolhido um proxy de propósito.
- Teste o seu software de segurança. Pause só a "proteção da web" ou a "verificação de HTTPS" por um minuto. Se o site abrir, ative a proteção de novo, atualize o programa e adicione o site às exceções dele. Não desligue o firewall.
- Reinicie o roteador. Tire-o da tomada por 30 segundos; não aperte o botão de reset do furinho, que restaura as configurações de fábrica.
- Redefina as configurações de rede, por último. Só quando todos os sites são redefinidos neste computador e os outros dispositivos do Wi-Fi funcionam: Configurações > Rede e Internet > Configurações de rede avançadas > Redefinição de rede, depois Redefinir agora e Sim. Talvez seja preciso configurar o software de VPN de novo depois disso.
A lista Tente: da tela de erro do Chrome aponta na mesma direção: "Verificar o proxy e o firewall" e "Executar o Diagnóstico de Rede do Windows".
No Android e no iPhone
- Troca de rede. Um celular que passa do Wi-Fi para os dados móveis derruba as conexões abertas; recarregue depois de alguns segundos.
- Apps de VPN e de bloqueio de anúncios. Muitos passam o tráfego por um perfil de VPN e redefinem as conexões quando falham. No Android, abra Configurações > Rede e Internet > VPN e desligue a VPN; VPN sempre ativa mantém uma rodando em segundo plano. No iPhone, os perfis instalados ficam em Ajustes > Geral > Gerenciamento de VPN e Dispositivos; não mexa nos perfis do trabalho ou da escola.
- Wi-Fi de cafés e hotéis. Essas redes podem cortar conexões até você entrar na página de login delas.
Por que só um site redefine a conexão?
Se um site falha em todos os dispositivos da sua rede, mas abre pelos dados móveis, o remetente provável é um filtro na rede. Em sites https://, o conteúdo é criptografado, mas o nome do site viaja legível no início da conexão. Um filtro que inspeciona o tráfego, um método chamado inspeção profunda de pacotes (DPI), pode comparar esse nome com uma lista e enviar uma redefinição em nome do site. O que é inspeção profunda de pacotes (DPI) e como funciona? explica como essa inspeção funciona.
Esses filtros rodam em redes de empresas e escolas, em roteadores com controle parental e em provedores de internet quando um bloqueio é determinado por lei. Em uma rede de trabalho ou de escola, pergunte ao administrador. Se o bloqueio está no seu provedor, nada no seu dispositivo resolve, e este guia não trata de formas de contorná-lo.
O outro caso de um só site é o próprio site, cuja proteção pode redefinir um endereço que abre conexões demais ao mesmo tempo. Espere alguns minutos ou envie ao suporte do site o horário e o código exato.
Avançado: teste a conexão fora do navegador
Você pode pular esta seção. Um comando no PowerShell, no Windows 10 ou 11, mostra se a redefinição depende do navegador:
curl.exe -sS -o NUL https://example.com/Coloque o endereço que está falhando no lugar de example.com. O curl não usa extensões nem configurações do navegador. Contra um servidor de teste local que envia uma redefinição, uma vez durante a configuração da conexão segura e outra depois da requisição, o curl 8.21.0 no Windows 11 mostrou:
curl: (35) Recv failure: Connection was reset
curl: (56) Recv failure: Connection was resetNenhuma saída significa que o curl carregou a página, então a causa está dentro do navegador. Uma linha Connection was reset significa que algo fora dele cortou a conexão: software de segurança, uma VPN, a rede ou o site.
Se o site é seu: de onde vêm as redefinições?
Os visitantes podem ver redefinições que nunca aparecem nos logs da sua aplicação. Olhe para as camadas em volta dela:
- Reinícios sem drenar as conexões. Um deploy que mata o processo do servidor redefine todas as conexões abertas. Pare de aceitar conexões novas primeiro e deixe as requisições em andamento terminarem.
- Tempos limite de inatividade que não batem. A AWS documenta que o Network Load Balancer dela descarta fluxos TCP ociosos depois de 350 segundos por padrão e responde com uma redefinição aos dados que chegarem depois. Para o Application Load Balancer, ela recomenda que a aplicação tenha um tempo limite de inatividade maior que o do balanceador.
- Regras de proteção. Firewalls, filtros de DDoS e limites de conexão muitas vezes redefinem em vez de responder. Procure nos logs deles o endereço do visitante e o horário.
Se você vê "connection reset by peer" no código
"Peer" é a outra ponta da conexão e, como no navegador, pode ser um dispositivo no caminho. Cada ferramenta dá um nome diferente ao evento. Provocamos os casos do Windows e do Node.js no Windows 11, contra um servidor local que envia uma redefinição:
| Onde | O que você vê |
|---|---|
| Python no Linux | ConnectionResetError: [Errno 104] Connection reset by peer |
| Python no Windows | ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host |
| Python Requests | requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, ...)) |
| Requests, cortado no meio do download | requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(10054, ...)", ...) |
Node.js http | Error: read ECONNRESET |
| Node.js, fechado antes de uma resposta | Error: socket hang up (código ECONNRESET) |
Node.js fetch | TypeError: fetch failed, cause.code é ECONNRESET |
O Windows imprime a parte dele no idioma de exibição do sistema; o texto em inglês vem da lista de erros do Winsock da Microsoft, que aponta as causas do 10054: o programa remoto parou, o host foi reiniciado ou o outro lado usou um fechamento forçado ("hard close"). A linha do Linux é o texto padrão desse sistema para o erro 104.
As causas comuns no código:
- Uma conexão reutilizada que o servidor acabou de fechar. Os clientes mantêm conexões abertas entre requisições (keep-alive). Se o servidor fecha uma conexão ociosa no momento em que você envia por ela, você recebe uma redefinição. A documentação do Node sobre
request.reusedSocketdescreve essa condição de corrida e sugere tentar de novo exatamente nesse caso. - Conexões demais ao mesmo tempo. Um servidor ou o firewall dele pode cortar um cliente que abre dezenas em paralelo. Reduza a concorrência, respeite
429eRetry-Aftere use a API do site, quando houver. Trocar de endereço IP para passar por cima de um limite não é solução. - O handshake TLS. Uma redefinição nesse ponto pode significar que o servidor ou um filtro recusou o que o cliente ofereceu, como uma versão antiga de TLS; atualize primeiro a biblioteca do cliente.
- Um proxy no meio. Um proxy fecha túneis ociosos e repassa as redefinições do site. Nos nossos testes, o Requests rotulou uma dessas redefinições como
ProxyError('Unable to connect to proxy', ConnectionResetError(...)), embora quem a enviou tenha sido o site; quando o proxy fechou o nosso lado de forma normal, o Python informouRemoteDisconnectedou, durante o handshake,SSLEOFError. Envie a requisição uma vez com e uma vez sem o proxy para ver qual trecho corta. Max Retries Exceeded With URL: o que é e como resolver mostra como ler a cadeia de erros inteira.
Tentar de novo com espera crescente, só quando é seguro
Uma redefinição não diz se o servidor já executou a sua requisição. Repita automaticamente só as requisições que podem ser repetidas com segurança, como GET, espere mais a cada vez e pare depois de poucas tentativas:
"""Faz GET em uma URL por um proxy e repete as redefinições de conexão com espera exponencial."""
import random
import time
import requests
PROXY = "http://user:pass@pr.proxynet.io:8000"
PROXIES = {"http": PROXY, "https": PROXY}
def was_reset(exc):
"""True se houver um ConnectionResetError em qualquer camada da exceção."""
stack, seen = [exc], set()
while stack:
e = stack.pop()
if id(e) in seen:
continue
seen.add(id(e))
if isinstance(e, ConnectionResetError): # RemoteDisconnected é uma subclasse
return True
inner = (*e.args, e.__cause__, e.__context__, getattr(e, "reason", None))
stack.extend(x for x in inner if isinstance(x, BaseException))
return False
def get_with_retry(session, url, attempts=4, base=1.0, cap=30.0):
"""GET pode ser repetido com segurança; espera cerca de 1, 2, 4 s (mais jitter) entre as tentativas."""
for attempt in range(1, attempts + 1):
try:
return session.get(url, proxies=PROXIES, timeout=(5, 30))
except (requests.exceptions.ConnectionError, requests.exceptions.ChunkedEncodingError) as exc:
if not was_reset(exc) or attempt == attempts:
raise
delay = min(cap, base * 2 ** (attempt - 1)) + random.uniform(0, base / 2)
print(f"attempt {attempt}: connection reset, retrying in {delay:.1f} s")
time.sleep(delay)
if __name__ == "__main__":
with requests.Session() as s:
s.headers["User-Agent"] = "example-crawler/1.0 (+https://example.com/bot)"
r = get_with_retry(s, "https://example.com/")
print(r.status_code, len(r.content), "bytes")- O script só repete redefinições; uma senha errada, uma porta recusada ou um erro de certificado é lançado na hora. O Requests esconde a redefinição duas ou três camadas abaixo, daí a busca.
RemoteDisconnected("Remote end closed connection without response") é uma subclasse deConnectionResetError, então também conta. - A espera dobra a cada vez, mais uma parte aleatória (jitter) para que processos em paralelo não repitam no mesmo ritmo, e cada tentativa abre uma conexão nova.
Rodamos o script com Python 3.13 e Requests 2.34.2 por um proxy de teste local com autenticação user:pass, contra um servidor de teste que redefine as duas primeiras conexões:
attempt 1: connection reset, retrying in 1.2 s
attempt 2: connection reset, retrying in 2.3 s
200 3 bytesContra um servidor que redefine sempre, ele desistiu depois de quatro tentativas com o ProxyError acima. Com os Proxies residenciais no modo rotativo, cada nova tentativa abre uma conexão nova e pode sair por um endereço IP novo. Para uma sessão logada que precisa manter um único endereço, use uma sessão fixa (de 1 a 60 minutos) e mantenha as tentativas dentro dela.
Onde as pessoas encontram esse erro
- Páginas de lojas e bancos que param na etapa de pagamento em uma rede de empresa ou escola.
- Uploads grandes que param no mesmo ponto toda vez.
- Tarefas de scraping, monitoramento e API que rodam por horas atrás de proxies e balanceadores de carga.
Erros comuns
- Limpar o cache e os cookies. A página nunca chegou, então nada antigo causou o erro.
- Desligar o firewall ou o antivírus de vez. Pause um recurso para um teste.
- Repetir um pagamento ou o envio de um formulário no código. O servidor pode ter processado o pedido antes da redefinição.
- Subir o número de tentativas para 20. Uma redefinição que acontece toda vez é uma decisão, não azar.
Guia de decisão
| Situação | O que fazer |
|---|---|
| Uma redefinição, depois a página funciona | Nada; foi algo passageiro |
| Só o Chrome falha, a janela anônima funciona | Desative as extensões uma de cada vez |
| Todos os navegadores de um computador falham | Verifique a VPN, a configuração de proxy e a proteção da web |
| Todos os dispositivos do seu Wi-Fi falham em um site | Um filtro ou o provedor; pergunte ao administrador |
| Todas as redes falham nesse site | O problema é do site; espere ou entre em contato com ele |
| O seu próprio site redefine visitantes | Verifique reinícios, tempos limite de inatividade e logs do firewall |
O seu script recebe Errno 104, 10054 ou ECONNRESET de vez em quando | Repita requisições seguras com espera crescente e reduza a concorrência |
Perguntas frequentes
O ERR_CONNECTION_RESET é problema meu ou do site?
Pode ser dos dois. Abra o site no celular pelos dados móveis: se carregar, o problema é a sua rede ou o seu computador; se falhar em todo lugar, é do site.
Por que o ERR_CONNECTION_RESET aparece em todos os navegadores?
A causa é algo que todos compartilham: software de segurança, uma VPN, a configuração de proxy do sistema, o roteador ou um filtro de rede. Extensões e configurações do navegador estão descartadas.
Limpar o cache resolve o ERR_CONNECTION_RESET?
Raramente. A conexão foi cortada antes de a página chegar, então o cache não guarda nada que tenha causado o erro.
Qual é a diferença entre uma redefinição e "encerrou a conexão inesperadamente"?
Uma redefinição (ERR_CONNECTION_RESET) encerra a conexão na hora. "Encerrou a conexão inesperadamente" (ERR_CONNECTION_CLOSED) significa que o outro lado fechou a conexão do jeito normal, mas antes de a página estar completa. Os dois são verificados do mesmo jeito.
O que significa "connection reset by peer"?
A outra ponta da conexão, o peer, enviou uma redefinição. O Linux informa isso como erro 104, o Windows como 10054 e o Node.js como ECONNRESET. O peer pode ser o servidor ou qualquer dispositivo no meio do caminho.
Como resolver ECONNRESET ou "socket hang up" no Node.js?
Os dois significam que a conexão foi cortada; "socket hang up", além disso, antes de qualquer resposta chegar. Repita requisições idempotentes, ou seja, as que podem ser repetidas sem efeito colateral, em uma conexão nova, principalmente quando req.reusedSocket for true, e reduza a concorrência.
Em resumo
ERR_CONNECTION_RESET e "connection reset by peer" dão nome ao mesmo evento: uma conexão aberta encerrada por um sinal de redefinição vindo do site, do seu computador, de uma VPN ou de um proxy, ou da rede no meio do caminho. Encontre o remetente mudando uma coisa de cada vez: navegador, janela anônima, dispositivo, rede. Um bloqueio na rede não é algo que o seu dispositivo possa mudar. No código, repita só requisições seguras, com pausas crescentes e uma conexão nova. Se você usa proxies para esse tipo de trabalho, nossa página de proxies explica quais tipos existem e para que serve cada um.




