nethogs
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 24.04 Noble Numbat
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
nethogs 🇬🇧 ist ein Kommandozeilenwerkzeug, das die Bandbreitennutzung nach Prozessen und Sub-Netzen gruppieren kann. Es listet die PID, den Prozessnamen und den ausführenden Benutzer auf.
Möchte man den Netzwerkverkehr nach Verbindungen aufgeschlüsselt bekommen, kann man die Anwendung iftop verwenden. Eine Übersicht zu weiteren Programmen findet sich im Artikel Netzwerk-Monitoring.
Installation¶
Da das Programm nicht Teil der Standardinstallation ist, muss zunächst das gleichnamige Paket installiert werden[1]:
nethogs (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install nethogs
Verwendung¶
nethogs wird im Terminal[2] über den gleichnamigen Befehl aufgerufen. Da das Programm auf eine Netzwerkschnittstelle und auf alle TCP-Verbindungen zugreift, muss die Anwendung mit Root-Rechten[3] ausführt werden. Übergibt man dem Befehl nethogs keine Parameter, dann lauscht das Programm auf allen aktiven Schnittstellen. Möchte man gezielt den Netzwerkverkehr einer Schnittstelle bekommen, muss man diese dem Programm als Parameter übergeben.
Beispiele¶
Ohne weitere Argumente lauscht das Programm auf allen Netzwerkschnittstellen des Computers:
sudo nethogs
Mit dem folgenden Befehl lauscht das Programm nur auf der WLAN-Schnittstelle wlp1s0 (die Namen der Schnittstellen findet man beispielsweise über den Befehl ifconfig):
sudo nethogs wlp1s0
Möchte man mehrere Netzwerkschnittstellen gezielt überwachen, dann kann man dem Programm mehrere Schnittstellen übergeben. In dem Beispiel handelt es sich um eine Ethernet- und zwei WLAN-Schnittstellen. Zudem aktualisiert sich nethogs nur alle drei Sekunden, was etwa bei einer großen Anzahl von Verbindungen sinnvoll sein kann.
sudo nethogs enp2s0 wlp1s0 wlp3s0 -d 3
(Seit dem Wechlsel von upstart zu systemd in Ubuntu 15.04 werden anstelle der früheren Nummerierung eth0, eth1, wlan0, etc. sogenannte Predictable Network Interface Names 🇬🇧 verwendet, die sich reproduzierbar aus Eigenschaften der Netzwerkschnittstellen ergeben.)
Parameter und Tastenkombinationen¶
Über die folgenden Parameter kann man nethogs steuern (für eine vollständige Liste führe man man nethogs aus):
Optionen von nethogs | |
| Parameter | Bedeutung |
-d ZAHL | Aktualisierungsrate in Sekunden |
-t | Tracemode |
-V | Zeigt die Versionsnummer an |
-C | TCP und UDP erfassen (standardmäßig wird nur TCP erfasst) |
Die folgende kurze Liste mit der Tastenbelegung innerhalb des Programms ist vollständig. Es gibt keine weiteren dokumentierten Aktionen, die durch einen Tastendruck ausgelöst werden können.
| Tastenbelegung | |
| Taste | Aktion |
| M | Zwischen Einheiten umschalten (KB/s, KB, B, MB) |
| B | Umschalten zwischen Basisnamen und vollständigem Pfad der Programme (basename) |
| L | Umschalten der Anzeige der Kommandozeilen-Argumente der Programme (line) |
| R | Liste wird nach empfangenen Datenvolumen sortieren (received) |
| S | Liste wird nach gesendeten Datenvolumen sortieren (send) |
| Q | Programm wird beendet |
Problembehebung¶
nethogs zeigt keinen Datenverkehr (UDP) von BitTorent an¶
Standardmäßig zeigt nethogs nur TCP-Verbindungen an. Um auch den durch BitTorrent verwendeten UDP-Datenverkehr anzuzeigen, muss mit der Option -C der "catch all"-Modus aktiviert werden.
Fehlermeldung (Stand: 23.2.2016, Ubuntu 14.04, LTS)¶
Nach Update startet nethogs mit Fehlermeldung:
sudo nethogs
[sudo] password for <$USER>: creating socket failed while establishing local IP - are you root?
Kann durch Aktualisierung behoben werden, dafür ist Git zu installieren:
Abhängige Entwicklungspakete installieren:
sudo apt-get build-dep nethogs
Aktuelle Version mit auschecken/klonen:
git clone https://github.com/raboof/nethogs.git
Hinweis!
Fremdsoftware kann das System gefährden.
und vorzugsweise mit checkinstall installieren:
cd nethogs && make && sudo -k checkinstall --pkgsource="https://github.com/raboof/nethogs/" --pkglicense="GPL2" --deldesc=no --nodoc --maintainer="$USER\\<$USER@$HOSTNAME\\>" --pkgarch=$(dpkg --print-architecture) --pkgversion="0.8.2" --pkgrelease="SNAPSHOT" --pkgname=nethogs make install
Die Nachfragen von Checkinstall mit ⏎ bestätigen.
Links¶
Projektseite 🇬🇧
Netzwerk-Monitoring Programmübersicht
Weitere Übersichtsseiten: Shell/Befehlsübersicht und Shell/Anwendungen