Puertos y conflictos comunes

Puertos clave utilizados por servicios comunes.

Puerto Servicio típico Descripción
80 HTTP Sitios web sin HTTPS
443 HTTPS Sitios web cifrados
3306 MySQL/MariaDB Base de datos

¿Qué es un conflicto de puertos?

  • Un conflicto ocurre cuando dos aplicaciones intentan usar el mismo puerto al mismo tiempo, lo que impide iniciar uno de los servicios.

Causas típicas:

  • Programas que bloquean el puerto 80:
    • Skype
    • IIS (World Wide Web Publishing Service)
    • VMware / Hyper-V services
    • TeamViewer
    • etc.
  • Múltiples entornos instalados (XAMPP, WAMP, Docker, Node).

Verificación mediante navegador

Pasos:

  1. Iniciar servicio (Apache, Nginx, Node).
  2. Abrir navegador → escribir:
    • http://localhost
    • https://localhost
    • http://localhost:puerto
  3. Validar:
    • Página correcta
    • Sin errores de certificado
    • No aparece página de otro servicio (indicio de conflicto)

1. Simular el conflicto

  1. Abrir un servidor funcional, por ejemplo:
python -m http.server 80
  1. Sin detenerlo, intentar iniciar Apache o Nginx.
  2. Observar el error:
OSError: [Errno 98] Address already in use

2. Identificar el proceso que ocupa el puerto**

netstat -ano | findstr :80
tasklist /FI "PID eq <PID>"

3. Liberar el puerto

  • Matar el proceso.
  • O cambiar el puerto de servicio (ej. en Apache httpd.conf, en Node server.listen(3000)).

Apache

Apache en XAMPP usa estos archivos:

  • C:\xampp\apache\conf\httpd.conf → Puerto HTTP (80)
  • C:\xampp\apache\conf\extra\httpd-ssl.conf → Puerto HTTPS (443)

1. Cambiar el puerto HTTP (80 → 8080, por ejemplo)

Paso 1: Abrir httpd.conf

En XAMPP Control Panel → Apache → Confighttpd.conf

Busca esta línea:

Listen 80

Cámbiala por:

Listen 8080

Luego busca:

ServerName localhost:80

Cámbiala por:

ServerName localhost:8080

Guarda y cierra.


2. Cambiar el puerto HTTPS (443 → 8443, por ejemplo)

Paso 1: Abrir httpd-ssl.conf

XAMPP Control Panel → Apache → ConfigApache (httpd-ssl.conf)

Busca:

Listen 443

Cámbiala por:

Listen 8443

Luego busca:

<VirtualHost _default_:443>

Cámbiala por:

<VirtualHost _default_:8443>

Busca también:

ServerName www.example.com:443

Cámbiala por:

ServerName www.example.com:8443

Guarda y cierra.


🔁 3. Reiniciar Apache

En XAMPP Control Panel:

  • Haz clic en Stop en Apache
  • Luego Start

Debe iniciar sin errores.


🌐 4. Probar en navegador

Según los nuevos puertos:

HTTP:

http://localhost:8080/

HTTPS:

https://localhost:8443/

🛑 5. Si Apache sigue sin iniciar (error de puerto ocupado)

Identifica qué programa usa el puerto.

En PowerShell:

netstat -ano | findstr :80

Luego ver qué proceso es:

tasklist /FI "PID eq <PID>"

Para cerrar:

taskkill /PID <PID> /F

Programas más comunes que bloquean el puerto 80:

  • Skype
  • IIS (World Wide Web Publishing Service)
  • VMware / Hyper-V services
  • TeamViewer
  • Microsoft SQL Reporting Services

📌 6. Consejo importante

En XAMPP, si cambias el puerto HTTP, el acceso al panel debe ser así:

http://localhost:8080/dashboard/