# ethtool — Netzwerkkarten auf Linux konfigurieren und analysieren

> Praxis-Guide zu ethtool — Linkgeschwindigkeit, Duplex, Offload-Features und Ringpuffer unter Linux abfragen und konfigurieren, mit Diagnose-Beispielen.

Source: https://www.jpkc.com/db/cheatsheets/networking/ethtool/

<!-- PROSE:intro -->
ethtool gibt dir direkten Zugriff auf die Treiber- und Hardware-Ebene von Linux-Netzwerkinterfaces: Linkgeschwindigkeit, Duplex-Modus, Auto-Negotiation, Treiber-Version, Ringpuffer-Größen und Offload-Features – alles ohne Neustart abfragbar und konfigurierbar. Ob du Paketverluste diagnostizierst, Wake-on-LAN aktivierst oder Queue-Tiefen für maximalen Durchsatz anpasst, ethtool gibt dir die direkte Kontrolle über deine Netzwerkkarte.
<!-- PROSE:intro:end -->

## Grundlegende Informationen

`ethtool DEVICE` — Zeigt Interface-Einstellungen: Geschwindigkeit, Duplex, Linkstatus, Auto-Negotiation.

```bash
ethtool eth0
```

`ethtool -i DEVICE` — Zeigt Treiber- und Firmware-Informationen.

```bash
ethtool -i eth0
```

`ethtool -d DEVICE` — Gibt die Hardware-Register-Werte aus.

```bash
sudo ethtool -d eth0
```

`ethtool -P DEVICE` — Zeigt die permanente (Werks-)MAC-Adresse.

```bash
ethtool -P eth0
```

## Link & Geschwindigkeit

`ethtool DEVICE | grep 'Link detected'` — Prüft, ob ein Kabel eingesteckt und der Link aktiv ist.

```bash
ethtool eth0 | grep 'Link detected'
```

`ethtool DEVICE | grep 'Speed'` — Zeigt die aktuelle Linkgeschwindigkeit.

```bash
ethtool eth0 | grep 'Speed'
```

`ethtool -s DEVICE speed SPEED duplex full autoneg off` — Setzt Linkgeschwindigkeit und Duplex manuell. Deaktiviert die Auto-Negotiation.

```bash
sudo ethtool -s eth0 speed 1000 duplex full autoneg off
```

`ethtool -s DEVICE autoneg on` — Aktiviert die Auto-Negotiation.

```bash
sudo ethtool -s eth0 autoneg on
```

`ethtool -s DEVICE speed SPEED duplex full autoneg on` — Bewirbt eine bestimmte Geschwindigkeit mit Auto-Negotiation.

```bash
sudo ethtool -s eth0 speed 1000 duplex full autoneg on
```

`ethtool -s DEVICE wol g` — Aktiviert Wake-on-LAN (Magic Packet).

```bash
sudo ethtool -s eth0 wol g
```

`ethtool -s DEVICE wol d` — Deaktiviert Wake-on-LAN.

```bash
sudo ethtool -s eth0 wol d
```

## Statistiken

`ethtool -S DEVICE` — Zeigt detaillierte NIC-Statistiken (rx/tx-Pakete, Fehler, Drops usw.).

```bash
ethtool -S eth0
```

`ethtool -S DEVICE | grep -i error` — Zeigt nur die Fehlerzähler.

```bash
ethtool -S eth0 | grep -i error
```

`ethtool -S DEVICE | grep -i drop` — Zeigt nur die Drop-Zähler.

```bash
ethtool -S eth0 | grep -i drop
```

`ethtool --phy-statistics DEVICE` — Zeigt PHY-Statistiken (Physical Layer).

```bash
ethtool --phy-statistics eth0
```

## Offload-Features

`ethtool -k DEVICE` — Zeigt alle Offload- und Feature-Einstellungen.

```bash
ethtool -k eth0
```

`ethtool -K DEVICE FEATURE on|off` — Aktiviert oder deaktiviert ein bestimmtes Offload-Feature.

```bash
sudo ethtool -K eth0 tso off
```

`ethtool -K DEVICE tx-checksum-ipv4 off` — Deaktiviert das TX-IPv4-Checksum-Offload.

```bash
sudo ethtool -K eth0 tx-checksum-ipv4 off
```

`ethtool -K DEVICE gro off gso off tso off` — Deaktiviert mehrere Offload-Features gleichzeitig.

```bash
sudo ethtool -K eth0 gro off gso off tso off
```

`ethtool -K DEVICE rx-checksumming on tx-checksumming on` — Aktiviert das Hardware-Checksum-Offload.

```bash
sudo ethtool -K eth0 rx-checksumming on tx-checksumming on
```

## Ringpuffer & Coalescing

`ethtool -g DEVICE` — Zeigt die Ringpuffer-Größen (aktuell und maximal).

```bash
ethtool -g eth0
```

`ethtool -G DEVICE rx SIZE tx SIZE` — Setzt die Ringpuffer-Größen. Größere Puffer verringern Drops unter Last.

```bash
sudo ethtool -G eth0 rx 4096 tx 4096
```

`ethtool -c DEVICE` — Zeigt die Interrupt-Coalescing-Einstellungen.

```bash
ethtool -c eth0
```

`ethtool -C DEVICE rx-usecs USECS` — Setzt die RX-Interrupt-Coalescing-Verzögerung in Mikrosekunden.

```bash
sudo ethtool -C eth0 rx-usecs 100
```

`ethtool -C DEVICE adaptive-rx on` — Aktiviert adaptives RX-Coalescing.

```bash
sudo ethtool -C eth0 adaptive-rx on
```

## Queues & Kanäle

`ethtool -l DEVICE` — Zeigt die Anzahl der RX/TX-Queues (Kanäle).

```bash
ethtool -l eth0
```

`ethtool -L DEVICE combined N` — Setzt die Anzahl der kombinierten RX/TX-Queues.

```bash
sudo ethtool -L eth0 combined 4
```

`ethtool -x DEVICE` — Zeigt die RX-Flow-Hash-Indirektionstabelle (RSS).

```bash
ethtool -x eth0
```

`ethtool -n DEVICE` — Zeigt Flow-Klassifizierungsregeln (Ntuple-Filter).

```bash
ethtool -n eth0
```

## Diagnose

`ethtool -t DEVICE` — Führt den NIC-Selbsttest aus (falls vom Treiber unterstützt).

```bash
sudo ethtool -t eth0
```

`ethtool -t DEVICE online` — Führt den Online-Selbsttest aus (ohne Traffic-Unterbrechung).

```bash
sudo ethtool -t eth0 online
```

`ethtool -p DEVICE SECONDS` — Lässt die NIC-LED zur physischen Identifizierung blinken.

```bash
sudo ethtool -p eth0 10
```

`ethtool --show-eee DEVICE` — Zeigt die Energy-Efficient-Ethernet-(EEE)-Einstellungen.

```bash
ethtool --show-eee eth0
```

`ethtool -m DEVICE` — Zeigt Transceiver-Modul-(SFP/SFP+)-Informationen.

```bash
ethtool -m eth0
```

<!-- PROSE:outro -->
## Fazit

ethtool ist das unverzichtbare Diagnosewerkzeug für Linux-Netzwerkkarten: Mit wenigen Befehlen erkennst du Linkprobleme, passt Puffer und Queues für maximalen Durchsatz an und aktivierst Hardware-Features wie TSO oder Checksum-Offloading. Für dauerhaft persistente Einstellungen empfiehlt sich die Konfiguration über `udev`-Regeln oder `NetworkManager`.

## Weiterführende Links

- [ethtool(8) – Manpage](https://man7.org/linux/man-pages/man8/ethtool.8.html) – alle Optionen im Überblick (englisch)
- [ethtool – Wikipedia](https://en.wikipedia.org/wiki/Ethtool) – Hintergrund und Geschichte (englisch)
- [ethtool – Kernel-Dokumentation](https://www.kernel.org/doc/html/latest/networking/ethtool-netlink.html) – Netlink-API-Referenz (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [ip](https://www.jpkc.com/db/cheatsheets/networking/ip/) – Netzwerkinterfaces und Routen verwalten
- [ss](https://www.jpkc.com/db/cheatsheets/networking/ss/) – Socket-Statistiken anzeigen
- [netstat](https://www.jpkc.com/db/cheatsheets/networking/netstat/) – Netzwerkverbindungen und Statistiken anzeigen

