Hace poco me llamaron diciendo que una determinada página web no funcionaba. Efectivamente así era. Entramos en el servidor web en cuestión (Windows con IIS) y probamos de ver la página de bienvenida del IIS, que tampoco funcionaba. Después de algunas comprobaciones, vimos que teniendo el servicio IIS parado (y por tanto sin tener la web publicada), el puerto 80 estaba ocupado por otra aplicación. ¿Pero, por cual? Lo único que sabía, gracias a netstat -an era que efectivamente nuestro puerto 80 estaba escuchando.
Para descubrir qué aplicación nos estaba fastidiando el puerto 80, bajé una aplicación de Microsoft, llamada TCPView , que no nos sirvió para nada. La verdad es que es una herramienta gráfica, que refresca en tiempo real las conexiones de la máquina, pero que no nos mostraba nada sobre determinados puertos, entre ellos, el puerto 80.
Navegando llegué a esta página, donde explicaban como usar netstat para sacar el identificador del proceso (pid) correspondiente a cada conexión. Si lo juntamos con el comando "find", podemos sacar únicamente por pantalla las conexiones que están en estado "escuchando".
netstat -ano | find /i "listening"
Una vez hemos identificado el pid del proceso que nos tiene el puerto 80 ocupado, podemos utilizar una pequeña herramienta llamada PUList , que viene con el Windows 2000 Resource Kit, pero que podemos bajar de forma totalmente independiente (aunque atención, nos pedirá validar Windows). En el ejemplo (sacado directamente de la página del autor del post original), querremos buscar el nombre del proceso (que es lo que devuelve pulist) con pid "6372"
pulist |find /I "6372"
He de decir que el comando find, solo nos ayudará a acotar las salidas de los comandos que realmente necesitamos, que son "netstat -ano" y "pulist".
Con esto podremos identificar el proceso, y hacer una búsqueda en google para saber más sobre él, o directamente, abrir el administrador de tareas para finalizar dicho proceso.
Foto por Alaskan Dude