Me gustaría saber qué proceso (en particular, la identificación del proceso) está utilizando un puerto determinado. El único inconveniente es que no quiero usar sudo, ni estoy conectado como root. Los procesos para los que quiero que esto funcione son ejecutados por el mismo usuario para el que quiero encontrar la identificación del proceso, por lo que habría pensado que esto era simple.
Ambos lsof
y netstat
no me dirán la identificación del proceso a menos que los ejecute usando sudo; sin embargo, me dirán que el puerto se está utilizando.
Como contexto adicional: tengo varias aplicaciones que se conectan a través de SSH a un servidor que administro y que crean reenvío de puerto inverso. Una vez que están configurados, mi servidor procesa un poco utilizando el puerto reenviado, y luego se puede cortar la conexión. Si puedo asignar puertos específicos (cada aplicación tiene su propio) a los procesos, este es un script simple. ¿Alguna sugerencia?
Esto está en una caja de Ubuntu, por cierto, pero supongo que cualquier solución será estándar en la mayoría de las distribuciones de Linux.
-an
.netstat -pant
También funciona y es más fácil de recordar.La sugerencia de Pawel parece funcionar bien para mí, pero como alternativa, aquí estoy escuchando desde shell1:
y aquí estoy yo viéndolo
lsof
desde shell2:Editar : escribe en un comentario que
Pero esto no es así para mí. Habiendo usado ssh para reenviar el puerto local 8001, con
ssh vpn.example.com -L 8001:rt.int:80
, entonces encuentro:¿Podría quizás mostrarnos parte de su salida de muestra, preferiblemente no demasiado redactada?
fuente
lsof
salida a menos que lo ejecute como root / sudo.