Eine Übertragungsrate von maximal 90 Mbit/s über eine Gigabit-Netzwerkkarte liegt nicht zwangsläufig am Server, Samba oder der Firewall. Möglicherweise wurde über die Ethernet-Verbindung einfach eine 100-Mbit/s-Verbindung ausgehandelt. Ein defektes Kabel, ein Switch-Port mit begrenzter Bandbreite oder eine inkonsistente Duplex-Konfiguration können die gesamte Verbindung jedoch stark einschränken.
ethtool Es liest die vom Netzwerktreiber bereitgestellten Parameter aus: Geschwindigkeit, Duplexmodus, automatische Aushandlung, Verbindungsstatus und Hardware-Zähler. Diese Informationen verwende ich, bevor ich die IP-Konfiguration ändere oder einen Geschwindigkeitstest durchführe. Die meisten der unten aufgeführten Steuerelemente sind schreibgeschützt.

Ermitteln Sie die tatsächlich verwendete Ethernet-Schnittstelle.
Gehen Sie nicht davon aus, dass die Schnittstelle so heißt. eth0Eine moderne Maschine verwendet oft einen Namen wie enp1s0, eno1 Oder ens18Beginnen Sie mit der Anzeige der Schnittstellen und des zum Beenden verwendeten Pfades:
ip -brief link
Der zweite Befehl zeigt insbesondere an, dass Entwickler Und srcIn diesem Beispiel, dev enp1s0 bezeichnet die zu steuernde Schnittstelle mit ethtoolDas Tutorial zu IP-Adresse unter Linux Einzelheiten zu den Bundesstaaten HOCH, LOWER_UP und die zugehörigen Adressen.
Schließen Sie Loopback-Schnittstellen, Docker-Bridges, VPN-Tunnel und virtuelle Schnittstellen aus, wenn der Fehler ein physisches Kabel betrifft. In einer virtuellen Maschine ethtool Manchmal beschreibt sie nur die virtuelle Karte. Die eigentliche Aushandlung findet dann auf dem Host oder dem Switch statt.
Installieren Sie ethtool, ohne das Netzwerk zu berühren.
Das Paket hat üblicherweise denselben Namen wie der Befehl. Seine Installation ändert die Karteneinstellungen nicht.
sudo apt update
sudo apt install ethtool
sudo dnf install ethtool
sudo pacman -S ethtool
Prüfen Sie als Nächstes die Version und die in Ihrer Distribution verfügbare Hilfe:
ethtool --version
ethtool --help
ethtool Das hängt vom Treiber und der Hardware ab. Eine in der Hilfe aufgeführte Option ist möglicherweise auf einer virtuellen Grafikkarte, einem USB-Adapter oder einem Treiber, der die Funktion nicht bereitstellt, nicht verfügbar.
Lesegeschwindigkeit, Duplex, automatische Aushandlung und Verbindungsstatus
Führen Sie den Befehl auf der identifizierten Schnittstelle aus. Mit erhöhten Berechtigungen erhalten Sie alle vom Treiber bereitgestellten Informationen:
sudo ethtool enp1s0
Für eine erste Diagnose sollten Sie sich auf vier Linien konzentrieren:
- Geschwindigkeit : aktuell ausgehandelte Geschwindigkeit, zum Beispiel
1000 Mbit/s. - Duplex :
Vollist der erwartete Wert bei einer modernen Ethernet-Verbindung. - Selbstverhandlung : zeigt an, ob die Karte mit dem entfernten Port über die entsprechenden Fähigkeiten verhandelt.
- Link erkannt : bestätigt das Vorhandensein des physischen Trägers.
Diese Zeilen können Sie zum schnelleren Lesen extrahieren:
sudo ethtool enp1s0 | grep -E 'Speed|Duplex|Auto-negotiation|Link detected'
Schauen Sie auch zu Unterstützte Verbindungsmodi, Beworbene Linkmodi Und Linkpartner-beworbene LinkmodiDie Netzwerkkarte, ihre Konfiguration und der Remote-Port müssen mindestens einen gemeinsamen Modus verwenden. Wenn die Karte Gigabit-Geschwindigkeiten anpreist, der Partner aber nur 100 Mbit/s anbietet, bleibt die ausgehandelte Geschwindigkeit bei 100 Mbit/s.
Was sollten Sie überprüfen, wenn „Link erkannt“ die Meldung „Nein“ anzeigt?
Link erkannt: Nein
ip link show dev enp1s0
cat /sys/class/net/enp1s0/operstate
cat /sys/class/net/enp1s0/carrier
Ein Wert null In Träger Das bedeutet, dass der Kernel keine physische Verbindung erkennt. Testen Sie ein anderes, nachweislich funktionierendes Kabel und anschließend einen anderen Switch-Port. Überprüfen Sie außerdem, ob der Port nicht administrativ deaktiviert ist und ob der USB-Adapter bzw. die Netzwerkkarte mit Strom versorgt wird.
Bei einem Rechner mit mehreren identischen Ports kann die Identifizierungsoption dazu führen, dass die LED des Ports zehn Sekunden lang blinkt, sofern der Treiber dies unterstützt:
sudo ethtool -p enp1s0 10
Prüfen Sie abschließend die Kernel-Meldungen, die sich auf die Schnittstelle beziehen. Diese können auf wiederholte Verbindungsabbrüche, fehlende Firmware oder einen Treiberreset hinweisen:
sudo dmesg -T | grep -Ei 'enp1s0|link|firmware|timeout'
sudo journalctl -k -b | grep -Ei 'enp1s0|link|firmware|timeout'
Der Leitfaden zu dmesg- und Kernelmeldungen hilft dabei, diese Fehler wieder in die Reihenfolge des Systemstarts zu bringen.
Verständnis einer Verbindung, die bei 100 Mbit/s oder im Halbduplex-Modus blockiert ist
Eine ausgehandelte Gigabit-Karte 100 Mbit/s Vor jeder Softwareoptimierung sollte eine physische Überprüfung durchgeführt werden. Gigabit-Ethernet nutzt alle vier Adernpaare des Kabels. Ein beschädigtes oder schlecht gecrimptes Adernpaar kann die Verbindung zwar ermöglichen, jedoch nur mit einer Geschwindigkeit von 100 Mbit/s. Ein Fast-Ethernet-Switch-Port führt zum gleichen Ergebnis.
Eine Maisonette Hälfte Auch in einem modernen Netzwerk ist dies verdächtig. Vergleichen Sie die Konfiguration der beiden Enden. Wenn ein Ende erzwungen und das andere im Auto-Negotiation-Modus belassen wird, kann dies zu Fehlern, erneuten Übertragungen und inkonsistentem Durchsatz führen.
Identifizieren Sie den Treiber und vergleichen Sie anschließend die Schnittstellenzähler mit den Hardwarestatistiken:
sudo ethtool -i enp1s0
ip -s link show dev enp1s0
sudo ethtool -S enp1s0 | grep -Ei 'err|drop|crc|miss|fault|timeout'
Die von zurückgegebenen Namen ethtool -S Diese Fehler variieren je nach Treiber. Ein kontinuierlicher Anstieg der CRC-Fehler während einer Übertragung deutet auf ein Problem mit dem Kabel, dem Stecker, dem Modul oder dem Port hin. Ein einzelner Zähler, der sich nicht mehr bewegt, beweist keinen tatsächlichen Fehler: Lesen Sie einen Messwert aus, erzeugen Sie etwas Datenverkehr und vergleichen Sie dann erneut.
Die Geschwindigkeit sollte während einer SSH-Sitzung nicht erzwungen werden.
Die Form ethtool -s Die Verbindungseinstellungen werden geändert. Eine Neuverhandlung kann Ihre SSH-Sitzung sofort trennen. Verwenden Sie diese Funktion nur remote, wenn Sie über eine KVM-Konsole, IPMI oder einen anderen Backup-Zugriff verfügen.
Wenn Sie bestätigt haben, dass die automatische Aushandlung irrtümlich deaktiviert wurde, aktiviert dieser Befehl sie auf der Schnittstelle wieder:
sudo ethtool -s enp1s0 autoneg on
Der folgende Befehl erfordert eine neue Aushandlung und kann die Verbindung unterbrechen:
sudo ethtool -r enp1s0
Erzwinge es nicht blindlings Geschwindigkeit 1000, Vollduplex Und Autoneg. ausDer Remote-Port muss kompatibel konfiguriert sein, und einige Standards erfordern eine automatische Aushandlung. Notieren Sie sich die erste Ausgabe, ändern Sie einen einzelnen Parameter und überprüfen Sie anschließend die Verbindung über die Konsole.
Eine Einstellung, die mit angewendet wird ethtool -s Die Änderung kann nach einem Neustart oder einer Zurücksetzung der Schnittstelle verloren gehen. Ob sie dauerhaft gespeichert wird, hängt von NetworkManager, systemd-networkd oder der Konfiguration der Distribution ab. Speichern Sie die Änderung erst dauerhaft, nachdem Sie die Ursache ermittelt und den Test erfolgreich durchgeführt haben. Informationen zu Ubuntu finden Sie im entsprechenden Artikel… Netzplan erklärt, wie man einen Rollback vorbereitet, bevor man das Netzwerk berührt.
Testen Sie die Geschwindigkeit nur, wenn die Verbindung einwandfrei ist.
ethtool Es zeigt die Verbindungsgeschwindigkeit an, nicht die nutzbare Bandbreite einer Anwendung. Eine Vollduplex-Aushandlung von 1 Gbit/s garantiert nicht, dass Samba, NFS oder ein Download diese Geschwindigkeit erreichen. Sie ermöglicht lediglich die Überwindung einer offensichtlichen physikalischen Beschränkung.
Überprüfen Sie nach der Korrektur, ob die Fehlerzähler stabil bleiben und ob die Route weiterhin die richtige Schnittstelle verwendet:
sudo ethtool enp1s0
ip -s link show dev enp1s0
ip route get 1.1.1.1
Anschließend können Sie das lokale Netzwerk messen mit iperf3 zwischen zwei von Ihnen kontrollierten Rechnern. Starten Sie den Server auf dem einen Rechner und anschließend den Client auf dem anderen:
iperf3 -s
iperf3 -c 192.0.2.50
Wenn die Verbindung stabil ist, die erwartete Geschwindigkeit erreicht wird und keine vermehrten Fehler auftreten, fahren Sie mit der Überprüfung von Route, Firewall, Speicher und Anwendungsdiensten fort. Um festzustellen, welche Dienste auf dem Rechner tatsächlich aktiv sind, verwenden Sie die Anleitung unter [Link einfügen]. ss und offene Ports unter Linux.
Dort ethtool-Manpage Alle Optionen werden detailliert beschrieben. offizielle Projektwebsite Es ist jedoch zu beachten, dass ihre Handhabung stets vom Piloten und der Ausrüstung abhängt.