Ich benutze immer netstat auf Ubuntu, um zu überprüfen, welche Prozesse auf bestimmten Ports lauschen. Ich benutze die folgenden Schalter mit netstat, die auf Ubuntu gut funktionieren, aber auf einem Mac fehlschlagen:
sudo netstat -tulpn
netstat: n: unknown or uninstrumented protocol
man netstat
Antworten:
Die Befehlsoptionen von Linux
netstat
und OS X (/ BSD) haben fast nichts miteinander zu tun. Von den Optionen, die Sie aufrufen,-n
bedeutet dies nur für beide dasselbe, und einige der anderen (-l
und-p
) haben unter OS X keine Entsprechungnetstat
. Was ich unter OS X gewöhnlich benutze, istnetstat -an | grep LISTEN
, aber das zeigt weder UDP noch das betreffende Programm. Ich nehme an, Sie könntennetstat -an | egrep '^udp|LISTEN'
UDP einschließen, aber das ist ziemlich ausführlich (und Sie werden auch einiges an Unsinn-UDP-Zeug sehen, da es im Vergleich zu anderen Staaten kein wirkliches Konzept für UDP-Listening gibt). Wenn Sie das Programm kennen müssen, müssen Sie zumlsof
Befehl (Liste offener Dateien) wechseln. Dazu ist Root-Zugriff erforderlich, um Prozesse zu überprüfen, die Sie nicht besitzen. Versuchen Sie etwas wiesudo lsof -nPi -sTCP:LISTEN
Bearbeiten: Wie @ loic.jaouen in einer anderen Antwort hervorhob, enthält OS X
netstat
zwar keine direkte Entsprechung zur Linux--p
Option, die-v
(ausführliche) Anzeige enthält jedoch die PID des Prozesses, und Sie können den Programmnamen daraus abrufen mitps
.quelle
@ gordon-davisson ist richtig, aber Sie können das
pid
vonnetstat
auf Mac mit der verbove-Option erhalten. Ich poste eine Antwort, da mir der Ruf fehlt, seine Antwort zu kommentieren.Wenn die Frage lautet, wie
pid
undport
in einemnetstat
Befehl zu erhalten ist, können Sie dennoch Folgendes tun:netstat -anv
Die ausführliche Option gibt
pid
in Position 9 Folgendes an:Aber die Ausgabe ist plethorisch, was erträglich ist, wenn Sie wissen, wonach Sie suchen, wie:
netstat -anv | grep 3335
odernetstat -anv | grep LISTEN
Die Ausgabe von
lsof
ist noch schöner.quelle
Sie können Ihren Mac auf einer Netzwerkschnittstelle "abhören" lassen:
Geben Sie ein
sudo tcpdump -i en0
(gefolgt von Ihrem Administratorkennwort).quelle