El puerto 80 es uno de los puertos estándar más utilizados. Ya que sirve para publicar cualquier servicio web estándar que no sea por protocolo seguro HTTPS. Es decir, el puerto 80 es el puerto por defecto de los sistemas para publicar un servicio web por el protocolo no seguro HTTP.
Cuando utilizamos por ejemplo Xampp en Windows, en este caso este tutorial es sobre Windows 10, puede darse el caso de que no podamos levantar el Apache por el puerto 80 porque esté ocupado. Veamos qué errores podemos obtener y cómo liberar ese puerto 80 de nuestro sistema para que podamos utilizar Xampp sin problemas.
Otros tutoriales de Xampp que te pueden interesar:
Liberar puerto 80 Windows 7
Actualizar phpMyAdmin de Xampp
Actualizar PHP en Xampp
Instalar Ruby on Rails en Xampp
Tabla de contenidos
¿Qué es el puerto 80?
El puerto 80 es el puerto por defecto de cualquier petición web HTTP. Cuando entramos en una web con la dirección http:// esa web accederá al servidor por el puerto 80. El puerto 80 se asocia al protocolo de acceso HTTP.
Al ser un puerto por defecto asociado al protocolo HTTP no es necesario indicarlo en las urls cuando queremos acceder a una web. Ejemplo:
http://www.miweb.com:80
En el ejemplo anterior he indicado el puerto 80, funciona, pero no sería necesario ya que estamos indicando en la url HTTP://. Entonces, podríamos acceder directamente así sin problema:
http://www.miweb.com
Hay que tener en cuenta que el puerto 80 es puerto no seguro. Si vas a montar una web lo suyo es que la publiques por el puerto 443 a través del protocolo HTTPS. Así, de esa manera, la comunicación entre tu navegador y el servidor irá cifrada y será más segura la navegación para quien quiera conseguir tus contraseñas o datos sensibles que envíes al servidor.
Xampp Port 80 in use
En el caso de estemos utilizando un servidor local y tengamos una herramienta como Xampp, si abrimos nuestro panel de control de Xampp puede darse la situación de que obtengamos el mensaje de error de que el puerto 80 está en uso y concretamente por el proceso con PID 4.
Este mensaje es muy explícito. Nos dice claramente que el puerto 80 está en uso y que está bloqueado por el proceso con PID número 4. Ahora solo tenemos que averiguar qué proceso es el que está ocupando el puerto 80 para detenerlo y así poder arrancar Xampp y hacer uso del puerto 80 para nuestras webs.
¿Qué aplicación está usando el puerto 80 en Windows 10?
Para saber qué aplicación está usando el puerto 80 tenemos dos opciones:
- Pulsar sobre el botón Netstat del Panel de Control de Xampp
- O lanzar el siguiente comando por consola de MS-DOS:
netstat -ano
Las dos opciones nos muestran la misma información. Un listado con todos los procesos del sistema y en qué puerto están levantados. Solo tendremos que buscar los que usan el puerto 80 para identificar el proceso que lo usa y así poder detenerlo.
Puede darse el caso de que el proceso que esté usando el puerto 80 sea el system.exe. En ese caso es más complicado, ya que no podemos detenerlo tal cual. Tenemos que irnos a la ventana de servicios de windows y localizar el Servicio que haga uso del puerto 80 y detenerlo.
Para abrir la ventana de Servicios de Windows 10, desde Xampp, pulsando el botón Services.
Otra opción, es desde Este equipo (del explorador de archivos), botón derecho del ratón, y pulsamos en Administrar. Ahí podemos ver la lista de servicios del sistema (siguiente imagen).
Solución 1 para liberar puerto 80 en Windows 10
Esta es la solución que a mí me funcionó. En mi caso el servicio que me estaba ocupando el puerto 80 era el servicio BranchCache. Supongo que este servicio es el que utiliza SVN Tortoise para poder consultar repositorios SVN y descargar el código fuente de las aplicaciones de nuestro repositorio. Como yo ya sabía que tenía instalado SVN Tortoise, sabía que este proceso es el típico que genera este problema.
Solo tuve que ponerlo en modo Manual y detenerlo y volver a intentar arrancar Apache desde Xampp Control Panel, y funcionó a la primera. Problema resuelto 😃.
Solución 2 para liberar puerto 80 en Windows 10
Otra solución es la que se comenta en multitud de foros, que es la de parar o detener el Servicio de Publicación World Wide Web. Este servicio en teoría solo os aparecerá si tenéis instalado el IIS en vuestro sistema y estáis publicando alguna web por este servidor web. Así, que si no tenéis instalado SVN Tortoise es muy posible que os aparezca este otro. Lo ponéis en modo manual y lo detenéis y ya debería dejaros levantar el Apache.
Aplicaciones que ocupan el puerto 80
Aquí el listado de aplicaciones que hasta ahora sé que pueden ocupar el puerto 80 y hacer que nuestro Apache no se levante.
- BranchCache: Este servicio es del Tortoise, el cliente de Windows para acceder repositorios software de subversion SVN.
- SQL Reporting Services o SQL Server Reporting: Este puedes tenerlo si usas SQL Server.
- VMware Workstation Server: Si tienes instalado VMware Workstation de las últimas versiones, puede que tengas este servicio levantado y sea la causa de que te esté ocupando el puerto 80.
Iré ampliando el listado según me vaya encontrando con alguna más 😉.
Hola a todos, por si a alguien le sirve de ayuda. En mi caso el servicio que usaba el puerto 80 era el SQL Reporting Services. Desactivando el inicio automático ya me funciona el apache en el puerto 80.
Genial...!! gracias, ese era mi problema.
Me alegro que se haya resuelto. Saludos!
Ese mismo es, SQL Server Reporting usa el puerto 80. Listo!!! Graciaaaaas!!!!
Muchas gracias Alexander era ese mismo error que no me permitia
trabajar
Muchas gracias, llevaba medio día buscando cual era el servicio y resultó ser lo que tu mencionas
Me alegro que te haya servido. Saludos!
Hola Alexander Arregui!
Tremenda solución... muchas gracias, casi sale a volar mi computadora del genio.
Te agradezco el tomarse el tiempo de compartir, tu soluciona.
Alex
Buenas tardes
En mi caso, tengo instalado Windows 10, el problema era el iisstart.htm, al escribir en la barra de direcciones localhost desplegaba la ventana de IIS Windows y esta ocupando el puerto 80.
Lo primero que me aprecia, era un servicio del kernel que estaba ocupando el puerto, desinstale XAMPP y lo reinstale, al buscar de nuevo vi que era la pagina iisstart.htm, deshabilite el servicio y le asigne el 8081 y Apache el puerto 80 e hice la prueba localhost mostro la pagina de XAMPP.
ya esta funcionando XAMPP bien.
Espero sea de utilidad para otros usuarios.
Muchas gracias Mario. Saludos!
Hola. Estoy usando Xampp en los puertos 80 y 443. Cree una cuenta en NO-IP e instalé el duc en la computadora que hace de servidor. El proveedor de Internet a puesto mi ip detrás de un CG-NAT y sólo a abierto en puerto efímero 49152. ¿Cómo puedo configurar Xampp para verlo en Internet?
Tienes que configurar una redirección en el router al pc donde tienes publicado el Xampp.
La solucion 2 me funciono correctamente. Gracias!!!!
Gracias a ti por decirnos que te ha funcionado 😉
Hola, muchas gracias por brindar estas soluciones... Muy buena la idea de agrupar todos los servicios que pueden estar ocupando el puerto 80....
En mi caso era el SQL Reporting Services
Me alegro que te haya servido para localizar el que te daba problemas en tu caso. Saludos 😉
Gracias! me funcionó a mi deshabilitando el servicio Branch......
En mi caso me indica que está ocupado por java.exe, lo detengo de manera manual y después abro xampp y al ejecutar MySQL me registra el mismo error, el toomcat lo corre sin problema. Alguna solución
El MySQL va por el puerto 3306, no debería darte problemas. Y lo de Java me extraña. Java como tal no ocupa ningún puerto, será alguna aplicación que tengas abierta hecha en Java la que ocupa el puerto 80. Un saludo.
Proto Dirección local Dirección remota Estado PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:81 0.0.0.0:0 LISTENING 4
Tengo esto que puede ser
Con eso es difícil saberlo. Abre la ventana de los servicios y ve deteniendo los que creas que pueden ser, e ir probando hasta que des con él. Un saludo.
TE AMO MUY FUERTE
Mi problema fue IIS en un equipo con Windows 7. Me ayudó mucho el artículo que publicó Juan Carlos Nieto para detener y desactivar la operación automática de IIS. Les dejo la página del artículo:https://juancarlosnieto.com/2016/desactivar-el-inicio-automatico-de-iis-en-windows-para-liberar-el-puerto-80/
SI mi puerto 80 esta siendo usado por services.exe, como resuelvo el problema?
Eso es que alguna aplicación del sistema operativo lo tiene en uso. Suele ser el IIS, sino tendrás que averiguar cuál podrá ser. Un saludo.
en mi caso pensaba que era lo del sistema, pero era el sql service, lo cambie a manual y se soluciono.
Hola si no encuentran el proceso que deben matar hice una herramienta grafica para matar procesos que ocupen un puerto dado el código fuente está en Github https://github.com/ilichnoise/killports
Hola Armando. Parece muy interesante. Ya la probaré cuando vuelva a tener problemas con algún puerto. Gracias por el aporte. Saludos!.
World wide publishing service también pasa por el 80
yo he cambiado el servicio de "VMware Workstation Server" a manual y ahora esta bien
fantástico, en mi caso era el branchCache
muchas gracis
Excelente aporte! Pase horas tratando de repararlo viendo videos en youtube. Me alegra haber podido encontrar esta página.
En mi caso tuve que detener los servicios de SQL
Muchas gracias!
Hola! Tengo el puerto 80 ocupado por "system". He seguido el tutorial pero no tengo forma de saber quien está ocupando el puerto en la lista de servicios. Muchas gracias.
Si es del sistema operativo, puede ser el IIS, o algún servidor de impresión. Revisa todos los servicios y ve desactivando todos los que creas que tienen un servicio web por el puerto 80 y ve probando hasta que lo localices. Un saludo.