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?

Evan Fosmark
fuente
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.

nagul
fuente
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
Mella
fuente
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))
Alexandr
fuente
2

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

lsof -i :<port_number>

ejemplo:

lsof -i :8080
Anamika
fuente
Gracias por intentar ayudar. Este comando fue mencionado en la respuesta aceptada. Si tienes algo nuevo, edita tu publicación.
Ben N