Prędkość transferu ograniczona do około 90 Mb/s na gigabitowej karcie sieciowej niekoniecznie wynika z działania serwera, Samby ani zapory sieciowej. Łącze Ethernet mogło po prostu wynegocjować połączenie o przepustowości 100 Mb/s. Wadliwy kabel, ograniczony port przełącznika lub niespójna konfiguracja dupleksu wystarczą, aby ograniczyć przepustowość całego połączenia.
ettool Odczytuje parametry udostępniane przez sterownik sieciowy: prędkość, dupleks, autonegocjację, obecność łącza i liczniki sprzętowe. Zaczynam od tych informacji przed modyfikacją konfiguracji IP lub uruchomieniem testu prędkości. Większość poniższych kontrolek jest tylko do odczytu.

Zidentyfikuj interfejs Ethernet faktycznie używany
Nie zakładaj, że interfejs nazywa się eth0Nowoczesna maszyna często używa nazwy takiej jak enp1s0, eno1 Lub en18
ip - krótki link
trasa IP pobierz 1.1.1.1
Drugie polecenie wskazuje w szczególności rozw I źródłoW tym przykładzie programista enp1s0 oznacza interfejs, który ma być kontrolowany ettoolPoradnik na adres IP w systemie Linux szczegółowo opisuje stany W GÓRĘ, LOWER_UP i powiązane adresy.
Wyklucz interfejsy pętli zwrotnej, mosty Docker, tunele VPN i interfejsy wirtualne, jeśli awaria dotyczy kabla fizycznego. W maszynie wirtualnej ettool Czasami opisuje tylko kartę wirtualną. Właściwa negocjacja odbywa się wówczas na hoście lub przełączniku.
Zainstaluj ethtool bez dotykania sieci
Pakiet zazwyczaj ma taką samą nazwę jak polecenie. Jego instalacja nie zmienia ustawień karty.
sudo apt update
sudo apt install ethtool
sudo dnf install ethtool
sudo pacman -S ethtool
Następnie sprawdź wersję i pomoc dostępną w Twojej dystrybucji:
ethtool --wersja
ethtool --pomoc
ettool Zależy od sterownika i sprzętu. Opcja dostępna w pomocy może pozostać niedostępna na karcie wirtualnej, adapterze USB lub sterowniku, który nie udostępnia tej funkcji.
Prędkość odczytu, dupleks, autonegocjacja i stan łącza
Uruchom polecenie na zidentyfikowanym interfejsie. Podwyższone uprawnienia umożliwiają uzyskanie wszystkich informacji dostarczonych przez sterownik:
sudo ethtool enp1s0
Aby postawić wstępną diagnozę, należy skupić się na czterech liniach:
- Prędkość :prędkość aktualnie negocjowana, na przykład
1000 Mb/s. - Dupleks :
Pełnyjest wartością oczekiwaną w nowoczesnym łączu Ethernet. - Samonegocjacja : wskazuje, czy karta negocjuje możliwości ze zdalnym portem.
- Wykryto łącze : potwierdza obecność fizycznego nośnika.
Aby szybko przeczytać, możesz wyodrębnić następujące wiersze:
sudo ethtool enp1s0 | grep -E 'Prędkość|Dupleks|Autonegocjacja|Wykryto połączenie'
Także obejrzyj Obsługiwane tryby łącza, Reklamowane tryby łącza I Reklamowane przez partnera linkowego tryby łączaKarta sieciowa, jej konfiguracja i port zdalny muszą współdzielić co najmniej jeden tryb. Jeśli karta reklamuje prędkości gigabitowe, a partner oferuje tylko 100 Mb/s, wynegocjowana prędkość pozostanie na poziomie 100 Mb/s.
Co należy sprawdzić, gdy wykryto łącze i wyświetla się komunikat „nie”?
Wykryto łącze: nie Priorytetem problemu powinien być adres IP, DNS i porty TCP. Najpierw sprawdź stan widziany przez jądro i operatora:
łącze IP pokazuje dev enp1s0
cat /sys/class/net/enp1s0/operstate
kot /sys/class/net/enp1s0/carrier
Wartość zero W przewoźnik Oznacza to, że jądro nie widzi fizycznego połączenia. Przetestuj inny kabel, o którym wiesz, że działa, a następnie inny port przełącznika. Sprawdź również, czy port nie jest wyłączony administracyjnie i czy adapter USB lub karta sieciowa są zasilane.
W przypadku komputera z kilkoma identycznymi portami opcja identyfikacji może spowodować miganie diody LED portu przez dziesięć sekund, jeśli sterownik ją obsługuje:
sudo ethtool -p enp1s0 10
sudo dmesg -T | grep -Ei 'enp1s0|link|oprogramowanie|przekroczenie limitu czasu'
sudo dziennikctl -k -b | grep -Ei 'enp1s0|link|oprogramowanie|przekroczenie limitu czasu'
Przewodnik po dmesg i komunikaty jądra pomaga przywrócić kolejność uruchamiania tych błędów.
Zrozumienie połączenia zablokowanego na 100 Mb/s lub w trybie półdupleksowym
Karta gigabitowa wynegocjowana w 100Mb/s Przed jakąkolwiek optymalizacją oprogramowania należy przeprowadzić kontrolę fizyczną. Gigabit Ethernet wykorzystuje wszystkie cztery pary kabla. Uszkodzona lub źle zaciśnięta para może umożliwić działanie łącza, ale tylko z prędkością 100 Mb/s. Port przełącznika Fast Ethernet daje ten sam rezultat.
Dwupoziomowy Połowa To również jest podejrzane w nowoczesnej sieci. Porównaj konfigurację obu końców. Wymuszona autonegocjacja na jednym końcu i pozostawienie drugiego w trybie autonegocjacji może powodować błędy, retransmisje i niespójną przepustowość.
Zidentyfikuj sterownik, a następnie porównaj liczniki interfejsu ze statystykami sprzętu:
sudo ethtool -i enp1s0
ip -s link pokaż dev enp1s0
sudo ethtool -S enp1s0 | grep -Ei 'err|drop|crc|miss|fault|timeout'
Imiona zwrócone przez narzędzie ethtool -S Te błędy różnią się w zależności od sterownika. Ciągły wzrost liczby błędów CRC podczas transferu wskazuje na kabel, złącze, moduł lub port. Pojedynczy licznik, który przestaje się poruszać, nie dowodzi faktycznego błędu: należy wykonać odczyt, wygenerować ruch, a następnie ponownie porównać.
Nie wymuszaj prędkości podczas sesji SSH
Kształt ethtool -s Modyfikuje ustawienia łącza. Ponowna negocjacja może natychmiast rozłączyć sesję SSH. Używaj tej funkcji zdalnie tylko wtedy, gdy masz dostęp do konsoli KVM, IPMI lub innego dostępu do kopii zapasowej.
Jeśli potwierdziłeś, że autonegocjacja została wyłączona przez pomyłkę, to polecenie ponownie ją włączy w interfejsie:
Następujące polecenie wymaga nowej negocjacji i może również spowodować zerwanie łącza:
sudo ethtool -r enp1s0
Nie wymuszaj tego na ślepo prędkość 1000, pełny dupleks I automatyczne negowanie wyłączoneZdalny port musi być skonfigurowany kompatybilnie, a niektóre standardy wymagają automatycznej negocjacji. Zanotuj początkowy wynik, zmodyfikuj jeden parametr, a następnie zweryfikuj połączenie z poziomu konsoli.
Ustawienie stosowane z ethtool -s Zmiana może zniknąć po ponownym uruchomieniu lub zresetowaniu interfejsu. Trwałość zależy od NetworkManager, systemd-networkd lub konfiguracji dystrybucji. Zmiana powinna być trwała dopiero po zidentyfikowaniu przyczyny i sprawdzeniu poprawności testu. W systemie Ubuntu zapoznaj się z artykułem poświęconym… Netplan wyjaśnia, jak przygotować wycofanie przed kontaktem z siecią.
Przeprowadź test prędkości tylko wtedy, gdy połączenie jest czyste.
ettool Wyświetla prędkość łącza, a nie użyteczną przepustowość aplikacji. Negocjacja 1 Gb/s w trybie pełnego dupleksu nie gwarantuje, że Samba, NFS lub pobieranie danych osiągną tę prędkość. Pozwala ona jedynie ominąć oczywiste ograniczenie fizyczne.
Po dokonaniu korekty sprawdź, czy liczniki błędów pozostają stabilne i czy trasa nadal używa prawidłowego interfejsu:
sudo ethtool enp1s0
ip -s link pokaż dev enp1s0
trasa IP pobierz 1.1.1.1
Następnie możesz zmierzyć sieć lokalną za pomocą iperf3 między dwiema kontrolowanymi przez Ciebie maszynami. Uruchom serwer na jednej maszynie, a następnie klienta na drugiej:
iperf3 -s
iperf3 -c 192.0.2.50
Jeśli połączenie jest stabilne, negocjowane z oczekiwaną prędkością i bez wzrostu liczby błędów, przejdź do usługi routingu, zapory sieciowej, pamięci masowej i aplikacji. Aby sprawdzić, co faktycznie nasłuchuje na komputerze, skorzystaj z przewodnika. ss i otwarte porty w systemie Linux.
Tam strona podręcznika ethtool szczegółowo opisuje wszystkie opcje. oficjalna strona projektu Należy jednak pamiętać, że ich obsługa zawsze zależy od pilota i sprzętu.