Ich habe gerade eine neue Gigabit-Netzwerkkarte (NIC) unter Linux installiert. Wie kann ich feststellen, ob es wirklich auf Gigabit-Geschwindigkeiten eingestellt ist? Ich sehe, dass ethtool
es eine Option zum Einstellen der Geschwindigkeit gibt, aber ich kann nicht herausfinden, wie ich die aktuelle Geschwindigkeit melden soll.
linux
gigabit-ethernet
ethtool
User1
quelle
quelle
Antworten:
Verwenden Sie einfach einen Befehl wie
ethtool eth0
:, um die erforderlichen Informationen abzurufen. Ex:$ sudo ethtool eth0 | grep Speed
quelle
for i in $(netstat -i | cut -f1 -d" " | tail -n+3) ; do echo "$i: $(ethtool "$i" | grep Speed | sed 's/Speed://g')" ; done
Es ist möglich, die Informationen aus dem Kernel zu verwenden, wenn das Ethtool fehlt:
Beispiel für die Schnittstelle eth0:
quelle
HINWEIS: Die Manpage für
mii-tool
hat diesen Haftungsausschluss:Verwenden Sie
mii-tool
diese Option , um die ausgehandelte Netzwerkgeschwindigkeit zu überwachen.Ex.
quelle
ethtool
nicht standardmäßig installiert. Istmii-tool
aber Teil des wesentlichen "net-tools" -Pakets. Das war also die beste Lösung für mich.mii-tool
Berichte 'Verhandlungs 100 baseTx-FD Flow-Control, link ok', die beideethtool
undcat /sys/class/net/eth…/speed
einigen sich auf ' 1000 Mb / s Vollduplex'. Dies ist für einen USB 3.0-Controller vorgesehen, nämlich ASIX AX88179 (Treiber 'ax88179_178a' für Linux).Hier gibt es einige gute Antworten, ich wollte nur noch ein paar Optionen hinzufügen.
1. Ich weiß, das ist nicht ganz das, wonach Sie gefragt haben (lesen Sie auf andere Weise weiter). Aber wenn Sie die reale Welt Leistungsfähigkeit Ihrer NIC wissen wollen , anstatt was Ihr Computer sagt es sein sollte, können Sie iperf verwenden. Normalerweise mache ich das - weil du es nie weißt. Ich habe kürzlich eine 1-Gbit-Netzwerkkarte gekauft, die nur mit 672 Mbit / s übertragen wurde, deren Uplink-Kapazität jedoch 1 Gbit betrug. Gut, dass ich nachgesehen habe.
Sie benötigen zwei Computer.
Führen Sie auf dem ersten Computer iperf im Servermodus aus:
Auf der anderen Seite führen Sie iperf im Client-Modus aus:
Wenn Sie die Vollduplexgeschwindigkeit anzeigen möchten, versuchen Sie Folgendes:
Ersetzen Sie die IP-Adresse des Servers durch 192.168.0.10
2. Verfügt auf Ubuntu-Systemen
/var/log/kern.log
über eine eingeschränkte Protokollierung von Kernel-Ereignissen. Es zeichnet die Verbindungsgeschwindigkeit und den Status einer Netzwerkkarte auf, wenn sich diese ändert. Ich bin sicher, dass andere Distributionen wahrscheinlich etwas Ähnliches tun oder dafür eingerichtet werden können.3. Sie werden wahrscheinlich niemals so weit gehen müssen, aber Sie können C-Code schreiben , um die Geschwindigkeit zu erreichen. Getestet arbeiten und root ist nicht erforderlich.
https://stackoverflow.com/questions/2872058/get-link-speed-programmatically
quelle
Wie Khaled bereits erwähnt hat, sollte es möglich sein, ethtool nur mit der Schnittstelle als Argument auszuführen. Dies listet die unterstützten Geschwindigkeiten, die angekündigten Geschwindigkeiten, die aktuelle Geschwindigkeit und eine Reihe anderer Dinge auf:
Sie können auch "
dmesg
grep" für Ihre Schnittstelle ausführen , dies funktioniert jedoch möglicherweise nicht, wenn Ihr System längere Zeit ausgeführt wurde und der aktuelle Puffer diese Informationen nicht mehr enthält (in diesem Fall müssen Sie "grep" für das ältere / var ausführen /log/dmesg.* Dateien):quelle
Verwenden Sie den folgenden Befehl
verweise darauf
quelle
Ich habe auch festgestellt, dass das Geschwindigkeitsfeld in ethtool die vom NIC unterstützte Höchstgeschwindigkeit angibt und das mii-tool die tatsächliche Geschwindigkeit angibt, mit der der NIC ausgeführt wird.
UPDATE: Nach einer Weile stellte sich heraus, dass das mii-tool nicht die richtige Geschwindigkeit zurückgab, da es veraltet und veraltet war und ethtool die ausgehandelte Geschwindigkeit zurückgab.
quelle
ethtool eth0
arbeitete für mich. Beispiel:quelle
ethtool
.