Encontrar el proceso que usa un determinado puerto en Linux


139

Me gustaría poder averiguar qué proceso está utilizando actualmente un determinado puerto en Linux. ¿Hay alguna forma de hacer esto?


3
En Windows, el comando es: netstat -anb
djangofan

Respuestas:


144

Tienes unas cuantas opciones:

lsof -i tcp:80

le dará la lista de procesos usando el puerto tcp 80.

Alternativamente,

sudo netstat -nlp

le dará todas las conexiones de red abiertas.


2
lsof -i | grep {username}también es muy útil, es decirlsof -i | grep apache
LawrenceC

1
Para cualquiera que se pregunte -n: no resuelva los nombres -l: muestre los sockets del servidor de escucha,: -pmuestre el PID / nombre del programa para los sockets.
yellavon

Por lo general, agrego -Ppara lsof -i tcp:$PORTNUMBERque el puerto me vuelva a imprimir como un número.
js.

9
netstat -lp

44
en mac tienes que agregar una opción de protocolo a -p. entonces algo como: netstat -lp tcp.
vrish88

8

Estoy usando "CentOS 7 minimal" que no tiene ni netstatninguno lsof. Pero muchas distribuciones de Linux tienen el comando de estadísticas de socket (es decir ss).

Aquí hay un ejemplo de ejecución:

# ss -tanp | grep 6379
LISTEN   0    128  127.0.0.1:6379   *:*   users:(("redis-server",pid=2531,fd=4))

2

En Linux, para encontrar un proceso que se ejecute en un puerto, haga lo siguiente:

lsof -i :<port_number>

ejemplo:

lsof -i :8080

Gracias por intentar ayudar. Este comando fue mencionado en la respuesta aceptada. Si tienes algo nuevo, edita tu publicación.
Ben N
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.