Suchen des Prozesses, der unter Linux einen bestimmten Port verwendet

139

Ich möchte in der Lage sein, herauszufinden, welcher Prozess derzeit einen bestimmten Port in Linux verwendet. Gibt es eine Möglichkeit, dies zu tun?

Evan Fosmark
quelle
3
Unter Windows lautet der Befehl: netstat -anb
djangofan

Antworten:

144

Sie haben mehrere Möglichkeiten:

lsof -i tcp:80

Zeigt die Liste der Prozesse an, die TCP-Port 80 verwenden.

Alternative,

sudo netstat -nlp

gibt Ihnen alle offenen Netzwerkverbindungen.

Nagul
quelle
2
lsof -i | grep {username}ist auch sehr nützlich, dhlsof -i | grep apache
LawrenceC
1
Für alle, die sich fragen -n: Namen nicht auflösen -l,: Listening-Server-Sockets -panzeigen,: PID- / Programmnamen für Sockets anzeigen.
Yellavon
Normalerweise füge ich hinzu -P, lsof -i tcp:$PORTNUMBERdamit der Port als Nummer an mich zurückgedruckt wird.
js.
9
netstat -lp
Nick
quelle
4
Auf Mac muss -p um eine Protokolloption erweitert werden. also so etwas wie: netstat -lp tcp.
Vrish88
8

Ich verwende "CentOS 7 minimal", was netstatweder noch hat lsof. Viele Linux-Distributionen haben jedoch den Befehl socket statistics (dh ss).

Hier ist ein Beispiel für die Ausführung:

# ss -tanp | grep 6379
LISTEN   0    128  127.0.0.1:6379   *:*   users:(("redis-server",pid=2531,fd=4))
Alexandr
quelle
2

Gehen Sie unter Linux wie folgt vor, um einen Prozess zu finden, der auf einem Port ausgeführt wird:

lsof -i :<port_number>

Beispiel:

lsof -i :8080
Anamika
quelle
Danke, dass du versucht hast zu helfen. Dieser Befehl wurde in der akzeptierten Antwort erwähnt. Wenn Sie etwas Neues haben, bearbeiten Sie bitte Ihren Beitrag.
Ben N