Unter Linux müssen Sie root oder Eigentümer des Prozesses sein, um die gewünschten Informationen zu erhalten. Daher wird für Prozesse, die als ein anderer Benutzer ausgeführt werden, sudo
vorangestellt ist das meiste, was Sie brauchen. Darüber hinaus auf modernen Linux-Systemen ss
ist ein Werkzeug, um dies zu tun:
$ 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))
Sie können auch denselben Aufruf verwenden, den Sie gerade verwenden, aber denken Sie an sudo
:
$ sudo netstat -nlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 125004/nginx
Sie können auch lsof:
verwenden$ sudo lsof -n -i :80 | grep LISTEN
nginx 125004 nginx 3u IPv4 6645 0t0 TCP 0.0.0.0:80 (LISTEN)
Sie können auch lsof
verwenden Dienstprogramm. Muss root sein.
# 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)
Ich verwende "CentOS 7 minimal", das noch netstat
hat weder lsof
. Aber viele Linux-Distributionen haben den Socket-Statistikbefehl (d.h. ss
).
Hier ist ein Ausführungsbeispiel:
# ss -tanp | grep 6379
LISTEN 0 128 127.0.0.1:6379 *:* users:(("redis-server",pid=2531,fd=4))