En Linux, debe ser root o el propietario del proceso para obtener la información que desea. Como tal, para los procesos que se ejecutan como otro usuario, se antepone sudo
es la mayor parte de lo que necesitas. Además de eso, en los sistemas Linux modernos, ss
es una herramienta para usar para hacer esto:
$ sudo ss -lptn 'sport = :80'
State Local Address:Port Peer Address:Port
LISTEN 127.0.0.1:80 *:* users:(("nginx",pid=125004,fd=12))
LISTEN ::1:80 :::* users:(("nginx",pid=125004,fd=11))
También puedes usar la misma invocación que estás usando actualmente, pero recuerda sudo
:
$ sudo netstat -nlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 125004/nginx
También puede usar lsof:
$ sudo lsof -n -i :80 | grep LISTEN
nginx 125004 nginx 3u IPv4 6645 0t0 TCP 0.0.0.0:80 (LISTEN)
También puedes usar lsof
utilidad. Necesita ser root.
# lsof -i :25
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
exim4 2799 Debian-exim 3u IPv4 6645 0t0 TCP localhost:smtp (LISTEN)
exim4 2799 Debian-exim 4u IPv6 6646 0t0 TCP localhost:smtp (LISTEN)
Estoy usando "CentOS 7 mínimo" que no tiene netstat
ni 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))