Comprobar qué puertos están siendo usados y por quién
Transcripción
Comprobar qué puertos están siendo usados y por quién
ADMINISTRACIÓN DE SERVICIOS DE INTERNET (IFCT0509) Puertos MOD 1 Comprobar qué puertos están siendo usados y por quién 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 ADMINISTRACIÓN DE SERVICIOS DE INTERNET / Ezequiel Llarena Borges 1 ADMINISTRACIÓN DE SERVICIOS DE INTERNET (IFCT0509) Podemos crear un archivo (en el escritorio o donde queramos) que ejecute el comando netstat y que redirija la salida a un archivo plano cada vez que necesitemos comprobar los puertos abiertos. Lo único que tendremos que hacer es crear un documento de texto plano, escribir el comando y guardarlo con la extensión .cmd De esta forma tendremos un ejecutable (en el escritorio por ejemplo) que nos ahorra el estar abriendo la consola (cmd) y escribir el comando en cuestión. Con el 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: ADMINISTRACIÓN DE SERVICIOS DE INTERNET / Ezequiel Llarena Borges 2 ADMINISTRACIÓN DE SERVICIOS DE INTERNET (IFCT0509) Puertos MOD 1 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": ADMINISTRACIÓN DE SERVICIOS DE INTERNET / Ezequiel Llarena Borges 3 ADMINISTRACIÓN DE SERVICIOS DE INTERNET (IFCT0509) Pulsaremos en "Herramientas avanzadas": Pulsaremos en "Abrir el Administrador de tareas": ADMINISTRACIÓN DE SERVICIOS DE INTERNET / Ezequiel Llarena Borges 4 ADMINISTRACIÓN DE SERVICIOS DE INTERNET (IFCT0509) Puertos MOD 1 Ahora mostraremos la columna "PID", para ello pulsaremos en el menú "Ver" - "Seleccionar columnas": Marcaremos "Identificador de proceso (PID)": ADMINISTRACIÓN DE SERVICIOS DE INTERNET / Ezequiel Llarena Borges 5 ADMINISTRACIÓN DE SERVICIOS DE INTERNET (IFCT0509) 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: ADMINISTRACIÓN DE SERVICIOS DE INTERNET / Ezequiel Llarena Borges 6 ADMINISTRACIÓN DE SERVICIOS DE INTERNET (IFCT0509) Puertos MOD 1 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 ADMINISTRACIÓN DE SERVICIOS DE INTERNET / Ezequiel Llarena Borges 7