[[Vorlage(Getestet, focal, noble)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen]f [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [github:raboof/nethogs:nethogs] {en} ist ein Kommandozeilenwerkzeug, das die Bandbreitennutzung nach Prozessen und Sub-Netzen gruppieren kann. Es listet die [wikipedia:Process_identifier: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]: {{{#!vorlage Paketinstallation nethogs, universe }}} = 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: {{{#!vorlage Befehl 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`): {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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 [https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ Predictable Network Interface Names] {en} 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): {{{#!vorlage Tabelle 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. {{{#!vorlage Tabelle Tastenbelegung +++ Taste Aktion +++ [[Vorlage(Tasten, m)]] Zwischen Einheiten umschalten (KB/s, KB, B, MB) +++ [[Vorlage(Tasten, b)]] Umschalten zwischen Basisnamen und vollständigem Pfad der Programme (''basename'') +++ [[Vorlage(Tasten, l)]] Umschalten der Anzeige der Kommandozeilen-Argumente der Programme (''line'') +++ [[Vorlage(Tasten, r)]] Liste wird nach empfangenen Datenvolumen sortieren (''received'') +++ [[Vorlage(Tasten, s)]] Liste wird nach gesendeten Datenvolumen sortieren (''send'') +++ [[Vorlage(Tasten, q)]] Programm wird beendet }}} = Problembehebung = == nethogs zeigt keinen Datenverkehr (UDP) von BitTorent an == Standardmäßig zeigt nethogs nur [wikipedia:TCP:]-Verbindungen an. Um auch den durch BitTorrent verwendeten [wikipedia:User_Datagram_Protocol: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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo apt-get build-dep nethogs }}} Aktuelle Version mit auschecken/klonen: {{{#!vorlage Befehl git clone https://github.com/raboof/nethogs.git }}} [[Vorlage(Fremd, Software)]] und vorzugsweise mit [:checkinstall:] installieren: {{{#!vorlage Befehl 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 [[Vorlage(Tasten, enter)]] bestätigen. = Links = * [github:raboof/nethogs:Projektseite] {en} * [:Netzwerk-Monitoring:] {Übersicht} Programmübersicht * Weitere Übersichtsseiten: [:Shell/Befehlsübersicht:] und [:Shell/Anwendungen:] #tag: Netzwerk, Internet, System