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ącerx_errorsto 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.