V systému Linux musíte být root nebo vlastník procesu, abyste získali požadované informace. Jako takové pro procesy běžící jako jiný uživatel přidejte před sudo
je většina toho, co potřebujete. Kromě toho na moderních systémech Linux ss
je nástroj, který se k tomu používá:
$ 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))
Můžete také použít stejné vyvolání, jaké právě používáte, ale nezapomeňte na sudo
:
$ sudo netstat -nlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 125004/nginx
Můžete také použít lsof:
$ sudo lsof -n -i :80 | grep LISTEN
nginx 125004 nginx 3u IPv4 6645 0t0 TCP 0.0.0.0:80 (LISTEN)
Můžete také použít lsof
utility. Musíte být 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)
Používám "CentOS 7 minimal", který nemá ani netstat
ani lsof
. Ale mnoho linuxových distribucí má příkaz socket statistics (tj. ss
).
Zde je příklad provedení:
# ss -tanp | grep 6379
LISTEN 0 128 127.0.0.1:6379 *:* users:(("redis-server",pid=2531,fd=4))