Frage Wie erkenne ich unter Linux, welcher Prozess Ethernet-Pakete sendet?


Ich liefere gkrellm, was zeigt, dass ein Prozess auf meinem Debian-Linux-System ca. 500KB / s nach eth0 schreibt. Ich würde gerne herausfinden, welcher Prozess es ist. Ich weiß ein wenig über netstat, aber es zeigt eine gazillion offene TCP-Verbindungen und ich kann nicht scheinen, dass es irgendwelche Informationen über den Verkehr produziert.

Weiß jemand, wie ich eine Liste von Prozessen bekommen kann, die tatsächlich sind? verwenden die eth0-Schnittstelle, damit ich den Täter ausfindig machen kann?


NACHVERFOLGEN: Die Debian-Linux-Distribution enthält a nethogs Paket, das dieses Problem endgültig löst. Verwandte Tools, die nicht ganz auf der Spur sind, sind iftop, netstat, und lsof.


18
2017-09-29 02:26


Ursprung


iptraf ist gut - Luv33preet
Das funktionierte für mich bei sehr kurzlebigen UDP-Austauschen: serverfault.com/a/683327/119360 - Luc


Antworten:


ich bevorzuge Nethogs. Es ist ein kleines ncurses-basiertes Konsolenprogramm, das den Netzwerkverkehrsstatus pro Prozess auf bequeme Weise anzeigt.


16
2017-10-19 09:20





netstat -ptu gibt Ihnen die eigenen Prozess-IDs (zusammen mit Standard-Netstat-Informationen) für alle TCP- und UDP-Verbindungen. (Normale Benutzer können nicht alle Prozesse identifizieren.)

Wenn etwas ziemlich viel konstanten Verkehr aussendet, sollten Sie es sehen Recv-Q oder Send-Q Spalten 2 und 3 jeweils.

Beispiele:
Recv-Q
sudo watch -n .1 'netstat -tup | grep -E "^[t,u]cp[6]{0,1}" | sort -nr -k2'

Send-Q
sudo watch -n .1 'netstat -tup | grep -E "^[t,u]cp[6]{0,1}" | sort -nr -k3'

Wenn Sie vermuten, dass dieser Prozess von einem anderen Prozess ausgelöst wird ps axf.


18
2017-09-29 06:10



(Nicht, dass das Flag -u erforderlich ist, wenn Sie wissen, dass Sie nach TCP-Verbindungen suchen.) - andol


Eine eher manuelle Operation, wenn Sie nur nach einem Prozess suchen, der Daten sendet / empfängt, wäre der lsof Befehl. Dies listet alle offenen Dateien für jeden Prozess auf, die Netzwerkverbindungen enthalten, da sie Dateideskriptoren für den o.s.

Nicht sicher, ob Sie das suchen.


5
2017-09-29 04:28





Installieren iftop (einfach textbasiert) oder ntop (grafisch).


4
2017-09-29 02:34



iftop Zeigt nur die Bandbreitennutzung an einer Schnittstelle an. - quanta
Es zeigt viel mehr als das. Standardmäßig wird es vom Host getrennt. - David Schwartz
Kann es alle Prozesse auflisten, die eine Schnittstelle verwenden? Wenn ja, könnten Sie uns bitte den Befehl und die Optionen zeigen? - quanta
Nicht direkt. Aber sobald Sie den Host gefunden haben, können Sie den Prozess zum Beispiel mit finden netstat -pn. - David Schwartz


Benutzen tcpdump einige Pakete auf dieser Schnittstelle zu schnüffeln:

# tcpdump -vv -s0 -i eth0 -c 100 -w /tmp/eth0.pcap

In den Client kopieren und mit Wireshark öffnen, um zu sehen, was passiert.


3
2017-09-29 02:30



Nicht der einfachste Weg, um einfache Statistiken zu erhalten, aber alles, was noch etwas komplizierter ist, und wireshark wird glänzen! - Silverfire