Zum Inhalt springen

Wir erklären wie IT funktioniert

  • Office
  • Linux
  • Sicherheit
  • Windows
Wir erklären wie IT funktioniert

Interface Geschwindigkeit für mehrere Netzwerkkarten mit  ethtool ermitteln

Wer unter Linux an einem Server die maximale Geschwindigkeit zwischen dem Netzwerkanschluss des Servers (engl. NIC – Network Interface Card)  und dem Switch bestimmen möchte, der nutzt dafür in der Regel das Linux Programm ethtool.

Das ist für einen Host mit genau einem Netzwerk-Interface, der vielleicht sogar noch eth0 heißt, recht einfach:

root@ myhost01:~# ethtool eth0

Settings for eth0:

        Supported ports: [ TP ]

        Supported link modes:   10baseT/Half 10baseT/Full

                                100baseT/Half 100baseT/Full

                                1000baseT/Full

        Supported pause frame use: Symmetric

        Supports auto-negotiation: Yes

        Advertised link modes:  10baseT/Half 10baseT/Full

                                100baseT/Half 100baseT/Full

                                1000baseT/Full

        Advertised pause frame use: Symmetric

        Advertised auto-negotiation: Yes

        Speed: 1000Mb/s

        Duplex: Full

        Port: Twisted Pair

        PHYAD: 1

        Transceiver: internal

        Auto-negotiation: on

        MDI-X: on (auto)

        Supports Wake-on: pumbg

        Wake-on: g

        Current message level: 0x00000007 (7)

                               drv probe link

Hier im Beispiel ist der Netzwerkanschluss eth0 mit 1.000 Mbit/s angeschlossen.

Wer nun aber mehrere, vielleicht sogar sehr viele Netzwerk-Interfaces am Rechner hat, muss nun aufwändig zuerst mit ifconfig die verfügbaren Interfaces abfragen und anschließend mit den ermittelten Interface-Name das Programm ethtool aufrufen und jeweils den Interfacenamen als Argument für ethtool verwenden. Das geht dann so:

root@myhost01:~# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether a0:36:9f:96:57:28  txqueuelen 1000  (Ethernet)
        RX packets 1475347405  bytes 1520661780885 (1.3 TiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1165040539  bytes 990260588161 (922.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

… und anschließend wieder

root@ myhost01:~# ethtool eth0

Wir wollen nun aber auf einen Schlag alle Netzwerk-Interface-Namen abfragen und von allen dann genau einen Parameter mit ethtool ermitteln: Die Interface-Geschwindigkeit. Das machen wir mit folgendem Quick-Hack: Mit netstat –i ermitteln wir in einer tabellarischen Ansicht alle Netzwerk-Interfaces.

Wer netstat noch nicht auf dem Rechner hat, der installiert es sich

yum –y install net-tools # bzw.
apt-get install net-tools

Anschließend rufen wir “netstat -i” auf:

root@myhost01:~# netstat -i

Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eno1      1500 205773311      0   9362 0      148576841      0      0      0 BMRU
eno2      1500 36240434      0   9361 0      67162274      0      0      0 BMRU
ens1f0    1500 1736700782      0    428 0      2851571184      0      0      0 BMRU
ens1f1    1500 1208878992      0 198134 0      292946595      0      0      0 BMRU
(…)

Hier im Beispiel haben wir also 4 Karten, namens eno1, eno2, ens1f0 und ens1f1. Wir brauchen für unsere Ausgabe aber nur die erste Spalte. Daher reicht uns:

root@myhost01:~# netstat -i | cut -f1 -d" " | tail -n+3

eno1
eno2
ens1f0
ens1f1

 

Auch lesenswert:
Owncloud Server installieren: Schritt-für-Schritt Guide
Powered by Inline Related Posts

Diese Interface-Namen wollen wir nun in einem Ein-Zeiler an das Programm ethtool übergeben und anschließend nur die Zeile für die Geschwindigkeit angeben:

for i in $(netstat -i | cut -f1 -d" " | tail -n+3);do  echo "$i: $(ethtool "$i" | grep Speed | sed 's/Speed://g')" ; done

Im Beispiel:

root@ myhost01:~# for i in $(netstat -i | cut -f1 -d" " | tail -n+3);do  echo "$i: $(ethtool "$i" | grep Speed | sed 's/Speed://g')" ; done

eno1:    1000Mb/s
eno2:    1000Mb/s
ens1f0:          40000Mb/s
ens1f1:          40000Mb/s

Das bedeutet: Die beiden Interfaces eno1 und eno2 sind mit 1Gbit/s an einen Switch angeschlossen. Das dritte und vierte Interface ens1f0 und ens1f1 sind mit 40Gbit/s verkabelt.

  • Über den Autor
  • Aktuelle Beiträge
Matthias Böhmichen

Matthias Böhmichen ist der Gründer der Website howto-do.it . Linux nutzt er seit 1991 um kurz danach Windows zu entdecken. Er entdeckt gerne neue Technologien und verbringt seine Zeit damit, sie für Kunden nutzbar zu machen. Im Hauptberuf ist er CEO der Biteno GmbH

  • Datenbank-Grundlagen: Was ist eine Transaktion?
  • Kontakt
  • Impressum
  • Disclaimer
  • Datenschutz
  • Sitemap
  • Howto-Do.IT auf Englisch

© 2025

Nach oben scrollen
  • Office
  • Linux
  • Sicherheit
  • Windows