Ich kenne das mit dem Befehl:
lsof -i TCP
(oder eine Variante von Parametern mit lsof) Ich kann bestimmen, welcher Prozess an einen bestimmten Port gebunden ist. Dies ist nützlich, wenn ich versuche, etwas zu starten, das an 8080 gebunden werden soll, und ein anderer Benutzer diesen Port bereits verwendet, aber ich weiß nicht, was.
Gibt es eine einfache Möglichkeit, dies ohne Verwendung von lsof zu tun? Ich verbringe viel Zeit damit, an vielen Systemen zu arbeiten, und oftmals ist lsof nicht installiert.
networking
process
tcp
lsof
Gilles
quelle
quelle
netstat -p
oben ist meine Stimme. siehe auchlsof
.Unter AIX kann mit netstat & rmsock die Prozessbindung bestimmt werden:
quelle
Ein weiteres unter Linux verfügbares Tool ist ss . Von der SS- Manpage auf Fedora:
Beispielausgabe unten - die letzte Spalte zeigt die Prozessbindung:
quelle
Für Solaris können Sie pfiles verwenden und dann nach
sockname:
oder greifenport:
.Ein Beispiel (von hier ):
quelle
Ich war einmal mit dem Versuch konfrontiert festzustellen, welcher Prozess sich hinter einem bestimmten Port befand (diesmal waren es 8000). Ich habe eine Vielzahl von lsof und netstat ausprobiert, dann aber die Gelegenheit genutzt und versucht, den Port über einen Browser (dh http: // hostname: 8000 / ) zu erreichen. Und siehe da, ein Begrüßungsbildschirm begrüßte mich und es wurde klar, wie der Prozess ablief (für die Aufzeichnung, es war Splunk ).
Noch ein Gedanke: "ps -e -o pid, args" (YMMV) kann manchmal die Portnummer in der Argumentliste anzeigen. Grep ist dein Freund!
quelle
telnet hostname 8000
sehen, ob der Server ein Banner druckt. Dies ist jedoch vor allem dann hilfreich, wenn der Server auf einem Computer ausgeführt wird, auf dem Sie keinen Shell-Zugriff haben, und die Prozess-ID dann nicht relevant ist.