Muchas veces nos encontramos con que en nuestra máquina tenemos escuchando un puerto y no sabemos que proceso o programa lo ha abierto. Aunque existen varias maneras sencillas saber que proceso utiliza un puerto, aquí voy a proponer 2 distintas:
netstat -punlt |grep ':X'
donde XX es el número de puerto que buscamos. Probemos con el 22, para el servidor de SSH:
root@hostname:~# netstat -puntl |grep ':22' tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1265/sshd
Podemos ver que el proceso sshd, con PID 1265 es el que tiene abierto el puerto tcp/22
Si bien esta forma es perfectamente válida, podemos optar por hacerlo de esta otra:
lsof -i:22
Obteniendo:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1265 usuario 3u IPv4 9592 0t0 TCP *:22 (LISTEN) sshd 5980 usuario 3u IPv4 26729 0t0 TCP ip_del_servidor:22->ip_del_cliente:54764 (ESTABLISHED) sshd 5981 usuario 3u IPv4 26735 0t0 TCP ip_del_servidor:22->ip_del_cliente:54763 (ESTABLISHED) sshd 5982 usuario 3u IPv4 26761 0t0 TCP ip_del_servidor:22->ip_del_cliente:54765 (ESTABLISHED)
lsof nos permite acotar en función del protocolo y especificarle TCP:X o UDP:X como puerto a buscar.
Ahora ya has aprendido como saber que proceso utiliza un puerto en linux