ERR_CONNECTION_REFUSED: Qué Significa y Cómo Solucionarlo

Advertisement
¿Qué Es ERR_CONNECTION_REFUSED?
ERR_CONNECTION_REFUSED es un error de Chrome que aparece cuando tu navegador llega al servidor del sitio web pero el servidor rechaza activamente la conexión. A nivel de red, tu ordenador envió una solicitud de conexión TCP (SYN) a la dirección IP y al puerto del servidor, y en lugar de aceptarla, el servidor — o un firewall delante de él — respondió con un paquete de reinicio (RST) que dice "aquí nada va a hablar contigo".
Esto hace que ERR_CONNECTION_REFUSED sea fundamentalmente diferente de los errores DNS como DNS_PROBE_FINISHED_NXDOMAIN. Con un error DNS, el nombre de dominio nunca llegó a resolverse en una dirección IP. Con ERR_CONNECTION_REFUSED, el DNS funcionó perfectamente — tu navegador sabe exactamente dónde está el servidor — pero la máquina en esa dirección se negó a abrir la puerta.
El rechazo suele significar una de tres cosas: ningún servicio está escuchando en ese puerto (el servidor web está caído o se bloqueó), un firewall está rechazando el tráfico hacia ese puerto, o tu dispositivo se está conectando a una dirección IP equivocada — por ejemplo, a través de una caché DNS obsoleta o un proxy roto.
Cómo Se Ve Este Error en Otros Navegadores
Cada navegador informa de una conexión rechazada de forma diferente, pero el rechazo TCP subyacente es idéntico.
| Navegador | Mensaje de Error |
|---|---|
| Google Chrome | No se puede acceder a este sitio — [sitio] rechazó la conexión. ERR_CONNECTION_REFUSED |
| Microsoft Edge | Mmm… no se puede acceder a esta página — [sitio] rechazó la conexión. |
| Mozilla Firefox | No se puede conectar — Firefox no puede establecer una conexión con el servidor. |
| Safari | Safari no puede conectarse al servidor |
| Brave / Opera | No se puede acceder a este sitio — ERR_CONNECTION_REFUSED |
Los navegadores basados en Chromium (Chrome, Edge, Brave, Opera) muestran todos el código ERR_CONNECTION_REFUSED sin procesar. Firefox y Safari lo expresan en lenguaje llano, pero la causa y las soluciones son exactamente las mismas.
Causas Comunes de ERR_CONNECTION_REFUSED
Aproximadamente la mitad de las veces el problema está en el lado del servidor, y la otra mitad algo en tu dispositivo o red está interfiriendo. Estas son las causas más comunes, de más a menos frecuente.
El servidor del sitio web está caído — El servicio web (nginx, Apache, Node.js) se bloqueó, se está reiniciando o fue detenido. La máquina está en línea pero nada responde en el puerto 80/443.
Firewall bloqueando el puerto — Un firewall en el servidor, en tu red o en tu dispositivo rechaza las conexiones a ese puerto.
Configuración de proxy incorrecta — Tu sistema enruta el tráfico a través de un servidor proxy que está fuera de línea o es inalcanzable. Esta es una de las causas más comunes del lado del cliente.
Caché DNS obsoleta — El sitio se mudó a un servidor nuevo, pero tu entrada DNS en caché sigue apuntando a la antigua dirección IP donde ya nada está escuchando.
Interferencia de VPN o antivirus — El software de seguridad intercepta la conexión y la rechaza, o el servidor de salida de la VPN no puede alcanzar el sitio.
Interferencia de extensiones del navegador — Los bloqueadores de anuncios, las extensiones de privacidad o las extensiones infectadas con malware pueden bloquear conexiones a hosts específicos.
Anulación en el archivo hosts — El dominio está mapeado a una IP incorrecta (a menudo 127.0.0.1) en tu archivo hosts, así que tu navegador se conecta a tu propia máquina, que rechaza la conexión.
Nada escuchando en localhost — Para desarrolladores: el servidor de desarrollo local no está en ejecución, se bloqueó o está vinculado a un puerto diferente del que abriste.
Problema del router — Un router o módem con fallos estropea las conexiones hasta que se reinicia.
Solución 1: Comprueba Si el Sitio Está Caído para Todos
Antes de cambiar nada en tu dispositivo, averigua si el problema está en el lado del servidor — si el sitio está caído para todos, ninguna solución local ayudará.
La forma más limpia de probarlo es desde una ruta de red diferente. Abre el sitio en tu teléfono usando datos móviles (con el Wi-Fi apagado). Si también falla ahí, el propio servidor está rechazando conexiones y simplemente tendrás que esperar a que el propietario del sitio lo arregle.
También puedes probar el servidor directamente con estas herramientas de DNS Robot:
[Port Checker](/port-checker) — Introduce el dominio del sitio y prueba el puerto 443 (HTTPS) y el puerto 80 (HTTP). Si ambos aparecen cerrados, el servidor web está caído o bloqueado por firewall para todos, no solo para ti.
[Ping](/ping) — Comprueba si la máquina del servidor responde en absoluto. Si el ping funciona pero los puertos están cerrados, la máquina está encendida pero el servicio web está muerto.
[HTTP Headers Checker](/http-headers) — Envía una petición HTTP real desde los servidores de DNS Robot. Si obtiene respuesta mientras tu navegador no, el problema es local de tu dispositivo o red.
Advertisement
Solución 2: Reinicia Tu Router y Tu Dispositivo
El clásico primer movimiento tiene su razón de ser: un reinicio limpia la tabla de conexiones del router, la caché DNS y cualquier estado NAT defectuoso que pueda causar conexiones rechazadas.
Desconecta tu router (y el módem, si es aparte) de la corriente, espera 30 segundos, vuelve a conectarlo y dale 2–3 minutos para que se reconecte por completo. Reinicia también tu ordenador o teléfono para restablecer su pila de red, y luego prueba el sitio de nuevo.
Solución 3: Borra la Caché y las Cookies del Navegador
Chrome puede haber almacenado en caché una redirección rota, una entrada HSTS antigua o cookies que te dirigen a un servidor muerto. Borrarlas fuerza una conexión completamente nueva.
Abre Chrome → haz clic en el menú de tres puntos → Eliminar datos de navegación
Intervalo de tiempo → selecciona Desde siempre
Marca "Cookies y otros datos de sitios" e "Imágenes y archivos almacenados en caché"
Haz clic en Eliminar datos, reinicia Chrome y prueba el sitio de nuevo
Solución 4: Desactiva la Configuración de Proxy
Un proxy mal configurado o muerto es una de las causas más comunes de ERR_CONNECTION_REFUSED en todos los sitios web a la vez. Cuando tu sistema está configurado para enrutar el tráfico a través de un proxy que ya no existe — a menudo dejado atrás por una VPN antigua, una configuración de la escuela o el trabajo, o malware — todas las conexiones son rechazadas.
Windows: Abre Configuración → Red e Internet → Proxy. Desactiva "Usar un servidor proxy" en Configuración manual del proxy, y desactiva "Detectar la configuración automáticamente" si no usas un proxy corporativo.
macOS: Abre Ajustes del Sistema → Red → Wi-Fi → Detalles → Proxies. Desmarca todos los protocolos de la lista (Proxy web HTTP, Proxy web seguro HTTPS, Proxy SOCKS) a menos que tu organización requiera alguno, y luego haz clic en OK.
Chrome usa la configuración de proxy del sistema operativo, así que después de cambiarla, reinicia el navegador y prueba de nuevo.
Solución 5: Vacía Tu Caché DNS
Si el sitio web se mudó recientemente a un servidor nuevo, tu entrada DNS en caché puede seguir apuntando a la antigua dirección IP — donde ya nada está escuchando, así que la conexión es rechazada. Vaciar la caché fuerza a tu dispositivo a buscar la dirección actual.
# Windows (Command Prompt as Administrator)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux (systemd-resolved)
sudo resolvectl flush-caches
# Also clear Chrome's internal DNS cache:
# chrome://net-internals/#dns → Clear host cacheDespués de vaciarla, borra también la caché DNS propia de Chrome en chrome://net-internals/#dns y vacía los grupos de sockets en chrome://net-internals/#sockets — Chrome mantiene ambos por separado del sistema operativo. Para el tutorial completo, consulta nuestra guía sobre cómo vaciar la caché DNS en cada sistema operativo.
Puedes confirmar a qué IP resuelve actualmente el dominio con el DNS Lookup de DNS Robot — si el nslookup de tu terminal muestra una IP diferente al resultado global, tu caché era el problema.
Advertisement
Solución 6: Cambia a un Servidor DNS Público
Si el servidor DNS de tu proveedor de internet está devolviendo registros desactualizados, vaciar la caché no ayudará — simplemente volverás a obtener la misma IP obsoleta. Cambiar a un resolver público rápido te da registros actualizados y a menudo acelera la navegación en general.
| Proveedor | DNS Primario | DNS Secundario | Ideal para |
|---|---|---|---|
| Cloudflare | 1.1.1.1 | 1.0.0.1 | Velocidad y privacidad |
| Google Public DNS | 8.8.8.8 | 8.8.4.4 | Fiabilidad |
| Quad9 | 9.9.9.9 | 149.112.112.112 | Bloqueo de malware |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | Filtrado de contenido |
Windows: Configuración → Red e Internet → tu conexión → Editar la asignación de servidor DNS → Manual → activa IPv4 → introduce 1.1.1.1 y 1.0.0.1 → Guardar.
macOS: Ajustes del Sistema → Red → Wi-Fi → Detalles → DNS → añade 1.1.1.1 y 1.0.0.1, elimina las entradas antiguas → OK.
¿No sabes qué resolver es el más rápido desde tu ubicación? Ejecuta el DNS Speed Test de DNS Robot — compara Cloudflare, Google, Quad9 y otros desde tu propia conexión en segundos.
Solución 7: Desactiva Temporalmente VPN, Antivirus y Firewall
Las VPN, los escudos web del antivirus y los firewalls se sitúan todos entre tu navegador e internet, y cada uno puede rechazar conexiones. Las funciones de escaneo HTTPS del antivirus son un culpable frecuente: pasan tu tráfico seguro por un servicio local, y cuando ese servicio se rompe, todos los sitios HTTPS son rechazados.
Prueba en este orden: desconecta la VPN y recarga. Luego desactiva el módulo de protección web del antivirus durante un minuto y recarga. Finalmente, apaga brevemente el firewall (Firewall de Windows Defender, o el Firewall de macOS) y recarga.
Si el sitio carga después de desactivar uno de ellos, vuelve a activarlo y añade una excepción para el sitio — o cambia a otra ubicación de servidor VPN — en lugar de dejar la protección desactivada.
Solución 8: Prueba las Extensiones en Modo Incógnito
Los bloqueadores de anuncios, las herramientas de privacidad y las extensiones VPN pueden bloquear silenciosamente las conexiones a hosts específicos. La prueba rápida: abre el sitio en una ventana de incógnito (Ctrl+Shift+N / Cmd+Shift+N), donde la mayoría de las extensiones están desactivadas por defecto.
Si el sitio carga en incógnito, una extensión es la causa. Ve a chrome://extensions, desactívalas todas y luego reactívalas una por una hasta que el error vuelva — esa es la culpable. Elimínala o excluye el sitio de sus filtros.
Solución 9: Revisa Tu Archivo Hosts
Tu archivo hosts anula el DNS para dominios específicos. Si el sitio está mapeado ahí a 127.0.0.1, 0.0.0.0 o a una IP de servidor antigua, tu navegador se conecta a esa dirección en su lugar — y es rechazado. Las entradas de desarrollo olvidadas y las listas hosts de bloqueo de anuncios son los sospechosos habituales.
# Windows — open as Administrator:
notepad C:\Windows\System32\drivers\etc\hosts
# macOS / Linux:
sudo nano /etc/hosts
# Look for lines containing the domain, e.g.:
# 127.0.0.1 example.com ← forces the connection to your own PC
# 203.0.113.7 example.com ← forces an old server IP
# Delete the offending line, save, then flush DNS.Advertisement
Localhost Rechazó la Conexión (Para Desarrolladores)
Ver localhost rechazó la conexión o ERR_CONNECTION_REFUSED en 127.0.0.1 es un rito de iniciación para todo desarrollador. Significa que nada en tu máquina está aceptando conexiones en el puerto que solicitaste. Las razones habituales:
El servidor de desarrollo no está en ejecución — Nunca lo iniciaste, o se bloqueó. Revisa la terminal donde debería estar corriendo
npm run dev,rails sopython manage.py runserver.Puerto equivocado — El servidor arrancó en un puerto diferente (p. ej., 3001 porque el 3000 estaba ocupado) y estás abriendo el antiguo. Lee la línea del log de arranque que indica a qué puerto se vinculó.
Vinculado a una interfaz diferente — El servidor se vinculó a
0.0.0.0o a la IP interna de un contenedor, pero tú estás accediendo alocalhost— o viceversa. Los mapeos de puertos de Docker (-p 3000:3000) deben coincidir con el puerto en el que la app escucha dentro del contenedor.Firewall o software de seguridad — Los firewalls locales pueden bloquear incluso los puertos de loopback; esto es común en máquinas corporativas.
HTTPS vs HTTP — Estás abriendo https://localhost:3000 pero el servidor de desarrollo solo habla HTTP plano. Prueba con http:// explícitamente.
# Which process is listening on port 3000?
# macOS / Linux:
lsof -i :3000
# Windows (PowerShell):
netstat -ano | findstr :3000
# No output = nothing is listening = connection refused.
# Start your dev server, or kill the stale process and restart it.Si necesitas comprobar si un puerto de tu servidor público es alcanzable desde internet (no solo desde la propia máquina), usa el Port Checker de DNS Robot — prueba la conexión desde fuera de tu red, que es lo que tus visitantes experimentan realmente.
Para Propietarios de Sitios Web: Tu Sitio Rechaza Conexiones
Si los visitantes reportan ERR_CONNECTION_REFUSED en tu propio sitio web, el servidor está encendido (el DNS resuelve, la máquina probablemente responde al ping) pero el servicio web no está aceptando conexiones. Repasa esta lista de comprobación:
¿Está el proceso del servidor web en ejecución? Entra por SSH y comprueba:
systemctl status nginx(o apache2, caddy). Un proceso bloqueado tras una recarga fallida o un kill por falta de memoria es la causa #1. Reinícialo:sudo systemctl restart nginx.¿Está escuchando en los puertos correctos? Ejecuta
ss -tlnp | grep -E ':80|:443'. Si nada escucha en el 443, tu configuración TLS no cargó — revisanginx -ten busca de errores de configuración.¿Está el firewall abierto? Comprueba
ufw statuso el grupo de seguridad de tu proveedor cloud. Los puertos 80 y 443 deben permitir TCP entrante desde 0.0.0.0/0.¿Cambió la IP de tu servidor? Compara tu registro DNS A con la IP real del servidor usando el DNS Lookup. Tras una migración, un registro A antiguo envía a los visitantes a la máquina anterior.
Prueba desde fuera — Usa el Port Checker en los puertos 80 y 443, y el HTTP Headers Checker para confirmar que tu servidor responde a peticiones reales desde la internet pública.
Cómo Verificar Que la Solución Funcionó
Después de cada solución, confirma la conexión a nivel de red en lugar de solo recargar la página — esto te dice si el puerto realmente se abrió.
# Test the TCP connection directly (Mac/Linux):
nc -zv example.com 443
# "succeeded" = port open, "refused" = still rejected
# Windows (PowerShell):
Test-NetConnection example.com -Port 443
# TcpTestSucceeded : True = fixed
# Then confirm what IP you're actually connecting to:
nslookup example.comO sáltate la terminal: introduce el dominio y el puerto en el Port Checker de DNS Robot para obtener una respuesta instantánea de abierto/cerrado desde una red externa. Si el puerto está abierto externamente pero tu navegador sigue mostrando ERR_CONNECTION_REFUSED, el bloqueo está en tu dispositivo — vuelve a revisar las soluciones de proxy, VPN, antivirus y archivo hosts de arriba.
¿Está el puerto abierto — o el servidor realmente rechaza la conexión?
El Port Checker gratuito de DNS Robot prueba cualquier dominio y puerto desde una red externa en segundos. Comprueba al instante si los puertos 80/443 de un sitio están abiertos, cerrados o filtrados — la respuesta definitiva a "¿está caído para todos o solo para mí?"
Probar Port CheckerAdvertisement
Preguntas frecuentes
Significa que tu navegador llegó al servidor del sitio web pero el servidor rechazó activamente la conexión TCP en ese puerto. La resolución DNS funcionó — el navegador conoce la IP del servidor — pero nada aceptó la conexión: el servicio web está caído, un firewall la rechazó, o tu dispositivo se conectó a una dirección equivocada por una caché obsoleta o un proxy.