Ich habe einen Dienst, der einen bestimmten Hafen offen hält.
Ich erhalte Daten, die ich weder erwarten noch erhalten möchte, und ich versuche, die Quelle dieser Daten genau zu bestimmen. Wie kann ich also herausfinden, welcher Prozess Daten an einen bestimmten Port sendet und welcher nicht.
quelle
Versuchen Sie Folgendes:
Oder:
So vermeiden Sie localhost-Ergebnisse:
So listen Sie nur HERGESTELLTE Verbindungen auf:
quelle
Abhängig von der Art der Verbindung, die zum Senden von Daten hergestellt wird, bringt Sie einer dieser Ansätze an einen bestimmten Ort.
Hiermit
tcpdump port 1234
erfassen Sie die Daten, die an diesen Port gesendet werden. Sie können ein Programm wie Wireshark verwenden, um es auf einem anderen Computer zu analysieren (mit der-w
Option in einer Datei erfasst ). Alternativ können Sie Wireshark auch direkt verwenden.Falls eine TCP / UDP-Verbindung hergestellt und geöffnet bleibt
netstat
, können Sie die Remote-IP- Adresse der Verbindung ermitteln.Listen Sie die offenen Sockets eines Prozesses wie in der Antwort von @StephaneChazelas angegeben auf.
quelle
Sie können den
sockstat
Befehl verwenden, um den Prozess zu finden, der die Verbindung zu Ihrem Dienst auf dem lokalen Host initiiert hat.Ordnen Sie einfach alle Quellverbindungen Ihrem Ziel zu. Dies funktioniert gut für TCP / UDP / UNIX-Sockets.
quelle
Unter Solaris sollte durch Ausführen von pfiles auf allen Prozessen angezeigt werden, welche Prozesse welche Verbindungen geöffnet haben. Es erfordert einige sorgfältige Bearbeitung, wahrscheinlich unter Verwendung der Optionen -A, -B von ggrep ...
Unter Linux
netstat -anp --inet
funktioniert es auch ohne lsof. (Lassen Sie das fallen--inet
, um auch Unix-Domain-Sockets zu erhalten.)quelle