ERR_CONNECTION_REFUSED en localhost (XAMPP, Laragon, MAMP)

RESPUESTA DIRECTA
`ERR_CONNECTION_REFUSED` en localhost significa que el navegador no puede conectarse a un servidor web local que esté escuchando. En XAMPP, Laragon o MAMP, confirma primero que Apache o Nginx esté en ejecución; si no se inicia, comprueba si hay un conflicto en los puertos 80 o 443 y consulta el registro de errores del servidor. Si el servidor usa un puerto personalizado, como 8080, incluye ese puerto en la dirección de localhost.
Puntos clave
- Confirma que Apache o Nginx esté en ejecución antes de modificar los archivos del proyecto.
- Un servidor que se inicia y se detiene de inmediato suele tener un conflicto de puertos o un error de configuración.
- Comprueba los puertos 80 y 443 solo cuando esos sean los puertos configurados para usar en tu stack local.
- Usa el registro de errores para distinguir un problema de enlace o de puerto de una configuración de servidor no válida.
- Si el stack usa un puerto personalizado, prueba
localhostcon ese puerto, por ejemplo,localhost:8080. - Una página predeterminada cargada confirma que la conexión funciona; los problemas de enrutamiento del proyecto deben investigarse por separado.
Site Administrator
Qué significa este error y cómo reconocerlo
- El navegador muestra inmediatamente
ERR_CONNECTION_REFUSEDparalocalhosto un nombre de host local. - XAMPP, Laragon o MAMP muestra Apache o Nginx como detenido, con errores o ya no en ejecución.
- El servidor se inicia y luego se detiene, a veces con un mensaje sobre un puerto, un archivo de configuración o un error de sintaxis.
- El problema aparece después de un reinicio, un cambio en el sistema operativo, la instalación de un servidor local o una modificación de configuración.
- Los archivos del proyecto existen en el equipo, pero el navegador no puede conectarse al servidor local.
- Un servidor configurado con un puerto personalizado puede funcionar en una dirección mientras que
localhostsin puerto falla porque el navegador usa el puerto HTTP predeterminado.
Causas principales, ordenadas por probabilidad
- Apache o Nginx no está en ejecución — Es posible que el servicio local no se haya iniciado o haya fallado durante el arranque.
- Otro proceso está usando el puerto configurado — IIS, otra instalación de XAMPP/Laragon/MAMP, Apache o Nginx independiente, software de virtualización u otra aplicación pueden estar escuchando ya en el puerto 80 o 443.
- La configuración del servidor no es válida — Un error de sintaxis en
httpd.conf, en un archivo de configuración de Nginx, en un archivo de virtual host o en otro archivo del servidor editado recientemente puede hacer que el servicio se detenga de inmediato. - El navegador usa el puerto incorrecto — Un stack configurado para el puerto 8080 u otro puerto personalizado normalmente no responderá a
localhostsin puerto en el puerto HTTP predeterminado. - El firewall o el antivirus interfiere — Un cambio reciente en el software de seguridad puede bloquear el servidor local o su enlace de red, aunque esto es menos habitual que un servicio detenido o un conflicto de puertos.
Cómo solucionarlo
1. Confirma el servidor local y la dirección
Abre el Panel de control de XAMPP, la aplicación Laragon o MAMP y comprueba si Apache o Nginx aparece como Running. Si está detenido, selecciona Start y anota el mensaje exacto si el inicio falla.
Comprueba qué puerto HTTP o HTTPS tiene configurado el stack. Si usa un puerto personalizado, prueba la dirección correspondiente —por ejemplo, localhost:8080— en lugar de asumir que localhost sin puerto es correcto.
2. Identifica un conflicto de puertos
Si el mensaje de inicio indica que un puerto ya está en uso, comprueba el puerto correspondiente. En Windows, abre el Símbolo del sistema con permisos de administrador si el entorno lo requiere y ejecuta estos comandos de solo lectura:
netstat -ano | findstr :80
netstat -ano | findstr :443Usa el identificador de proceso mostrado para identificar al propietario en el Administrador de tareas. No finalices un proceso desconocido. Si IIS es el propietario del puerto y tienes autorización para cambiar el equipo, deshabilita o detén el servicio de IIS correspondiente solo cuando no necesites IIS. De lo contrario, configura el stack local para usar un puerto disponible y utiliza ese puerto en el navegador.
Los comandos anteriores son específicos de Windows. En otro sistema operativo, usa sus herramientas integradas de red o procesos, o la información de puertos proporcionada por el panel de control del stack.
3. Comprueba el registro de errores del servidor
Si ningún proceso evidente es propietario del puerto configurado, abre el registro de errores de Apache o Nginx desde el stack local o desde su directorio de registros configurado. Busca el primer error específico, especialmente una ruta de archivo, una directiva de configuración y un número de línea.
Si el fallo comenzó después de modificar la configuración, corrige o revierte ese cambio. Comprueba httpd.conf, los archivos de configuración de Nginx, las definiciones de virtual hosts y los archivos incluidos. Cambia un archivo a la vez para que la causa siga siendo identificable.
4. Comprueba si hay servidores locales duplicados
Busca una segunda instalación de XAMPP, Laragon, MAMP, WAMP, Apache o Nginx independiente. Normalmente, dos servicios no pueden escuchar en la misma dirección y puerto. Detén un servicio que no uses solo si sabes que es seguro y tienes autorización, o asigna puertos distintos a los stacks que necesites mantener.
5. Revisa los cambios del software de seguridad
Si la configuración del servidor es válida y ningún proceso en conflicto es propietario del puerto, revisa los cambios recientes del firewall o antivirus. Usa la configuración normal del producto de seguridad y crea una excepción solo cuando entiendas el acceso que permite. Evita desactivar ampliamente la protección como primer paso de diagnóstico.
6. Verifica la solución
Espera hasta que Apache o Nginx permanezca en estado Running y vuelve a abrir la dirección de localhost configurada. Debería cargarse una página predeterminada del servidor o el proyecto en lugar de ERR_CONNECTION_REFUSED.
Si se carga la página predeterminada pero no el proyecto, el problema de conexión está resuelto. Continúa con el diagnóstico de la raíz de documentos, el enrutamiento, el virtual host o la aplicación, en lugar de volver a modificar la configuración de puertos.
Prevención y cómo verificar la solución
- Anota los puertos HTTP y HTTPS que usa cada stack local, especialmente si hay más de un stack instalado.
- Evita ejecutar varios servidores locales en la misma dirección y puerto; asigna puertos distintos cuando necesites ambos.
- Lleva un registro de los cambios realizados en los archivos de configuración de Apache, Nginx y los virtual hosts.
- Después de editar la configuración del servidor, inicia el servicio y revisa su registro de errores antes de asumir que el código del proyecto está dañado.
- Usa el panel de control del stack para confirmar que el servicio permanece en ejecución, no solo que se inicia una vez.
- Antes de detener un proceso o servicio, verifica que no sea necesario para IIS, otra herramienta de desarrollo u otra aplicación no relacionada.
Cuándo pedir ayuda externa
Consulta la documentación o el soporte de la comunidad de XAMPP, Laragon o MAMP correspondiente cuando el servicio siga deteniéndose después de reparar la configuración, el registro de errores identifique una directiva que no puedas interpretar o no sea seguro detener el proceso que usa el puerto. Incluye el nombre del stack, el sistema operativo, los puertos HTTP/HTTPS configurados, el mensaje de inicio exacto y las líneas relevantes del registro de errores. Si se carga la página predeterminada pero la aplicación falla, busca ayuda para la configuración del proyecto o del virtual host. Este error suele ser un problema del equipo local, no una interrupción del sitio en producción o del proveedor de alojamiento.
Preguntas frecuentes
¿Por qué localhost muestra ERR_CONNECTION_REFUSED?
El navegador no pudo conectarse a un servidor web local que estuviera escuchando. Apache o Nginx puede estar detenido, haber fallado al iniciarse o estar escuchando en un puerto distinto del que usa el navegador.
¿Cómo puedo saber si un conflicto de puertos causó el error?
Intenta iniciar Apache o Nginx y lee el mensaje de inicio. Si indica que el puerto 80, 443 u otro puerto configurado está en uso, identifica el proceso propietario antes de detenerlo o reconfigurar cualquier cosa.
¿Otra instalación de XAMPP, Laragon o MAMP puede causar este error?
Sí. Varias instalaciones de servidores locales pueden competir por la misma dirección y puerto. Mantén en ejecución solo el servicio necesario o asigna puertos diferentes, siempre que el cambio sea seguro y esté autorizado.
¿Qué debo hacer si Apache se inicia y luego se detiene?
Abre el registro de errores del servidor y busca el primer error específico. Un archivo de configuración y un número de línea identificados apuntan a un problema de configuración; un mensaje de enlace o de puerto apunta a un conflicto.
¿ERR_CONNECTION_REFUSED significa que el código de mi proyecto está dañado?
Por lo general, no. El error ocurre antes de que el navegador pueda recibir una respuesta de la aplicación. Primero confirma que se cargue la página predeterminada del stack y, si es necesario, investiga la raíz de documentos, el enrutamiento o el virtual host del proyecto.
¿Qué ocurre si mi servidor local usa el puerto 8080?
Abre la dirección de localhost con el puerto configurado, como localhost:8080, y asegúrate de que el servidor, la dirección del navegador y cualquier configuración de virtual host coincidan. Normalmente, localhost sin puerto apunta al puerto HTTP predeterminado.
Documentación adicional
Para consultar procedimientos específicos del stack, revisa la documentación oficial del producto local que utilices —XAMPP, Laragon o MAMP—, especialmente sus controles de inicio de Apache/Nginx, la configuración de puertos y las ubicaciones de los registros de errores. Para identificar procesos, administrar servicios, configurar reglas del firewall e inspeccionar puertos, utiliza la documentación oficial del sistema operativo. El mensaje de estado del panel de control y el propio registro de errores del servidor son las referencias más útiles para obtener información específica del equipo.