Explicamos en este tutorial cómo averiguar qué aplicación o servicio está usando un determinado puerto de comunicaciones en el equipo. Mostramos cómo saberlo en sistemas operativos Windows y Linux sin usar software adicional de terceros, con las propias herramientas que incluye el sistema operativo.
Averiguar qué aplicación está usando un puerto de comunicaciones en Windows.
Averiguar qué aplicación está usando un puerto de comunicaciones en Linux.
Averiguar qué aplicación está usando un puerto de comunicaciones en Windows
A continuación explicaremos cómo saber qué aplicación o servicio de Windows está usando un puerto determinado, para ello usaremos el comando Windows: netstat. Para ello abriremos una ventana de MS-DOS (consola de comandos o shell), desde el botón "Inicio", escribimos "cmd", pulsamos con el botón derecho del ratón sobre "cmd.exe" y seleccionamos "Ejecutar como administrador":
Ejecutaremos el siguiente comando Windows:
netstat -naob
Nos devolverá un listado de todos los puertos de comunicaciones que están siendo usados actualmente con el protocolo (TCP, UDP, TCPv6 y UDPv6), dirección IP local, dirección IP remota, estado y PID (número que identifica el proceso en las tareas que se están ejecutando):
Si queremos guardar el resultado en un fichero ejecutaremos el comando Windows:
netstat -naob > aplicaciones_puertos.txt
Con el comando comando Windows:
notepad aplicaciones_puertos.txt
Abriremos el Bloc de notas con el resultado del comando anterior, desde aquí podremos consultar, buscar y guardar todas las aplicaciones que abren puertos de comunicaciones en nuestro equipo:
Un ejemplo del resultado de este comando:
Conexiones activas
Proto Dirección local Dirección remota Estado PID
TCP 0.0.0.0:21 0.0.0.0:0 LISTENING 2068
ftpsvc
[svchost.exe]
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
No se puede obtener informaci¢n de propiedad
TCP 0.0.0.0:111 0.0.0.0:0 LISTENING 3848
[VeeamNFSSvc.exe]
TCP 127.0.0.1:63924 127.0.0.1:63925 ESTABLISHED 7216
[firefox.exe]
TCP 127.0.0.1:63925 127.0.0.1:63924 ESTABLISHED 7216
[firefox.exe]
TCP 127.0.0.1:63926 127.0.0.1:63927 ESTABLISHED 7216
[firefox.exe]
TCP 127.0.0.1:63927 127.0.0.1:63926 ESTABLISHED 7216
[firefox.exe]
TCP 127.0.0.1:64151 127.0.0.1:64152 ESTABLISHED 5436
[vmware-vmrc.exe]
TCP 127.0.0.1:64152 127.0.0.1:64151 ESTABLISHED 5436
[vmware-vmrc.exe]
En el caso en que no aparezca el ejecutable de la aplicación que está usando el puerto podremos consultarlo de la siguiente forma:
1. Ejecutaremos el comando anterior con el parámetro "o" que nos mostrará el PID del proceso que está abriendo el puerto, buscaremos el puerto del que queramos averiguar la aplicación o servicio que lo está usando. En en el ejemplo buscamos qué aplicación está usando el puerto "3306", anotaremos el PID de la aplicación que aparece al final de la línea (en el ejemplo "1320"):
2. Abriremos el Administrador de tareas desde el botón "Inicio" - "Panel de control" "Información y herramientas de rendimiento":
Pulsaremos en "Herramientas avanzadas":
Pulsaremos en "Abrir el Administrador de tareas":
Ahora mostraremos la columna "PID", para ello pulsaremos en el menú "Ver" - "Seleccionar columnas":
Marcaremos "Identificador de proceso (PID)":
Si queremos que nos muestre la ubicación del fichero ejecutable del proceso que usa el puerto marcaremos también "Nombre de ruta de la imagen":
Buscaremos el PID consultado anteriormente correspondiente al ejecutable que está abriendo el puerto, en nuestro caso "1320", así podremos consultar la ruta (carpeta) y ejecutable que lo está usando:
Averiguar qué aplicación está usando un puerto de comunicaciones en Linux
En el caso de sistemas operativos Linux podremos usar el siguiente comando Linux para obtener los procesos y el puerto de comunicaciones que usan:
lsof -w -n -i
El comando Linux nos mostrará el proceso, el PID, el usuario, tipo, dispositivo, protocolo y estado de la conexión:
Para obtener la aplicación que tiene un puerto abierto en Linux usaremos el comando Linux:
ls -l /proc/XXX/exe
Donde XXX será el PID del proceso a consultar.
Existen otros comandos Linux para obtener datos de los procesos que usan puertos de comunicaciones como:
netstat -panut | grep LISTEN
O también:
ss -a | grep LISTEN
No hay comentarios:
Publicar un comentario