Woher weiß ich, welche Prozesse das Netzwerk verwenden?

9

Manchmal kann ich in meinem Gnome-Systemmonitor eine starke Netzwerkauslastung feststellen. Ich frage mich, welcher Prozess das Herunterladen / Hochladen von Daten ist. Gibt es ein Werkzeug, das mir zeigen kann:

  1. Welche Prozesse nutzen das Internet?
  2. Eine dynamische Echtzeitansicht der Download- / Upload-Geschwindigkeit dieser Prozesse
  3. die Details der Verbindungen (z. B. die Remote-IP, die Portnummer usw.)

Mein System ist Ubuntu 10.10.

Ich habe es versucht, lsofaber die Ausgabe sieht so NICHT freundlich aus. Vielleicht gibt es einige Tricks, um es zu benutzen? Oder gibt es bessere Alternativen?

Wald
quelle

Antworten:

12

netstat --inet -apzeigt Ihnen, welche Prozesse das Internet verwenden und welchen Host / Port jeder Prozess verwendet. Wenn Sie IP-Adressen und keine Hostnamen möchten, verwenden Sie -n. ( --inetZeigt nur Internet-Sockets an, -azeigt sowohl Abhör- als auch Verbindungssockets an, -pzeigt Prozessnamen- / ID-Informationen an). Sie möchten es wahrscheinlich ausführen sudo, damit Sie Informationen zu allen Prozessen erhalten.

nethogs zeigt Ihnen, wie viel Bandbreite jeder Prozess verwendet, sagt Ihnen jedoch nicht, mit welchem ​​Host jeder Prozess eine Verbindung herstellt.

ntop ist etwas schwer, gibt Ihnen aber einen Überblick über den Netzwerkverkehr im Allgemeinen.

(netstat ist standardmäßig installiert und nethogs und ntop sind in Ubuntus Repos verfügbar.)

Soweit ich weiß, gibt es kein einziges Dienstprogramm, das 1, 2 und 3 zusammenfügt.

Miles Strombach
quelle
7

Nethogs kann Ihre ersten beiden Anfragen bearbeiten. Iftop kann mit dem dritten umgehen. Möglicherweise müssen Sie p in iftop drücken, um die Portnummer anzuzeigen.

NetHogs ist ein kleines "Net Top" -Tool. Anstatt den Datenverkehr wie bei den meisten Tools pro Protokoll oder Subnetz aufzuschlüsseln, wird die Bandbreite nach Prozessen gruppiert. NetHogs benötigt kein spezielles Kernelmodul zum Laden. Wenn plötzlich viel Netzwerkverkehr herrscht, können Sie NetHogs starten und sofort sehen, welche PID dies verursacht. Dies macht es einfach, Programme zu identifizieren, die wild geworden sind und plötzlich Ihre Bandbreite beanspruchen.

iftop macht für die Netzwerknutzung, was top (1) für die CPU-Nutzung macht. Es hört den Netzwerkverkehr auf einer benannten Schnittstelle ab und zeigt eine Tabelle der aktuellen Bandbreitennutzung durch Hostpaare an.

Sciurus
quelle
Ja, ich denke nethogs+ iftop+ lsof -ilöse mein Problem.
Forrest
5

Zur Verwendung lsof -i.

Sie können auch aktive Verbindungen für jeden Prozess abfragen, indem Sie netstat -puntaals Root ausführen, um Prozessnamen anzuzeigen oder ohne nur PIDs anzuzeigen. Um eine dynamische Echtzeitansicht zu erhalten, können Sie sich mit watch -> leicht watch -n1 netstat -puntazurechtfinden (dasselbe gilt für iftop).

Als Alternative können Sie ntop + iftop verwenden .

Shinnok
quelle
Besonders nützlich, um Dinge aufzuspüren, die wahrscheinlich Bandbreite lsof -i tcp -sTCP:ESTABLISHED
beanspruchen
netstatbietet die -cOption, die jede Sekunde kontinuierlich aktualisiert wird.
basierend auf dieser Antwort gefällt mir sudo netstat -putc(ohne root werden die Prozessinformationen für einige der Verbindungen nicht
angezeigt
netstatist seit 2001 veraltet .
Totor
1

iftopentspricht topfür Prozesse, die alles anzeigen, können Sie drücken, pum umzuschalten, um Port anzuzeigen.

myopenid
quelle
0

Schauen Sie sich netstat -p an , obwohl ich nicht weiß, ob Sie die Ausgabe viel freundlicher finden als lsof. Es wird auch Ihre zweite Anforderung nicht erfüllen.

Brian L.
quelle