ethtool

Wyświetla i zmienia ustawienia kart sieciowych (prędkość, duplex, status linku).

ethtool to narzędzie do podglądania i zmiany ustawień kart sieciowych w Linuksie. Pozwala sprawdzić, czy kabel w ogóle jest wpięty (link), z jaką prędkością negocjuje połączenie, w jakim trybie duplex pracuje, jaki sterownik obsługuje kartę, a także wymusić konkretne parametry, gdy autonegocjacja robi głupoty. To pierwsze narzędzie, po które sięgasz, gdy serwer wisi na 100 Mb/s, a powinien na 1 Gb/s.

Składnia i najważniejsze opcje

Podstawowe wywołanie wygląda tak: ethtool [opcja] interfejs, np. ethtool eth0. Samo podanie interfejsu bez opcji pokazuje obsługiwane i aktualne prędkości, duplex oraz status linku.

  • -i — informacje o sterowniku: nazwa, wersja, firmware i magistrala (bus-info).
  • -S — statystyki karty i sterownika: liczniki pakietów, błędów, dropów, kolizji.
  • -s — zmiana ustawień (uwaga: mała litera), np. prędkości czy duplexu.
  • speed N — ustawia prędkość w Mb/s (używane razem z -s).
  • duplex half|full — wymusza tryb half lub full duplex.
  • autoneg on|off — włącza lub wyłącza autonegocjację.
  • -p — miga diodą portu, żeby fizycznie zlokalizować kartę w serwerowni.
  • -k / -K — pokazuje (-k) i zmienia (-K) offloady, np. TSO czy GRO.

Przykłady użycia

  • ethtool eth0 — pokazuje prędkość, duplex i czy link jest aktywny (Link detected: yes).
  • ethtool -i eth0 — sprawdzasz, jaki sterownik i firmware obsługuje kartę (przydatne przy zgłoszeniu buga).
  • ethtool -S eth0 — wyświetla liczniki błędów; rosnące rx_errors to sygnał problemu z kablem lub portem.
  • ethtool -s eth0 speed 1000 duplex full autoneg off — wymusza 1 Gb/s, full duplex, bez autonegocjacji.
  • ethtool -p eth0 10 — miga diodą portu eth0 przez 10 sekund.

Częste błędy i pułapki

Najczęstsza wpadka to mylenie -s (set, zmiana) z -S (statystyki). Wielkość litery ma tu kluczowe znaczenie. Druga pułapka: zmiany przez ethtool nie przeżywają restartu ani reinicjalizacji interfejsu. Żeby były trwałe, dodaj je do konfiguracji sieci (np. NetworkManager, /etc/network/interfaces albo plik systemd-networkd) — sam ethtool z palca to ustawienie na teraz.

Wymuszanie autoneg off bywa kuszące, ale jeśli wymusisz parametry tylko po jednej stronie linku, a switch zostanie na autonegocjacji, dostaniesz duplex mismatch i połączenie będzie rwało. Ustawiaj zgodnie po obu stronach. Pamiętaj też, że nie każda karta wspiera każdą opcję — przy braku wsparcia ethtool zwróci błąd typu Operation not supported, i to nie jest twoja wina, tylko sterownika. Komendę uruchamiasz z uprawnieniami roota (sudo) dla zmian.

Powiązane komendy: ip, mii-tool, nmcli, ifconfig, dmesg.