Wie finde ich die Geschwindigkeit der WLAN-Schnittstelle?

13

Ich versuche, die Geschwindigkeit der Netzwerkschnittstelle mithilfe des Dateideskriptors zu ermitteln. Es ist ganz einfach ethX, einfach anzurufen cat /sys/class/net/eth0/speed. Leider funktioniert diese Methode nicht mit drahtlosen Schnittstellen. Beim Aufruf /sys/class/net/wlan0/speederhalte ich die Fehlermeldung: ungültiges Argument.

Kennst du also eine /sys/class/net/eth0/speedanaloge für WLAN-Schnittstelle?

Tural Gurbanov
quelle

Antworten:

14

Sie können das iwconfigTool verwenden, um diese Informationen herauszufinden:

$ iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:"SECRETSSID"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:10:7A:93:AE:BF   
          Bit Rate=48 Mb/s   Tx-Power=14 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=55/70  Signal level=-55 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Wenn Sie die Bitrate /sysdirekt von möchten, versuchen Sie Folgendes:

$ cat /sys/class/net/wlan0/wireless/link
51

Oder von /proc:

$ cat /proc/net/wireless 
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
 wlan0: 0000   56.  -54.  -256        0      0      0      0      0        0

HINWEIS: Der Wert für den Link im 2. Beispiel beträgt 56, z

Ich glaube, dass die MB / s ein berechneter Wert sind, so dass sie nirgendwo speziell für das wlan0-Gerät gespeichert werden. Ich denke, es nimmt die über die Schnittstelle übertragenen aggregierten Bits und dividiert sie durch die Zeit, die die Daten für die Übertragung benötigt haben.

Eine weitere Möglichkeit, diese Informationen abzurufen, ist die Verwendung des Tools iw. Dieses Tool basiert auf dem CLI-Konfigurationsdienstprogramm nl80211 für drahtlose Geräte. Es sollte auf jeder aktuellen Linux-Distribution installiert sein.

$ iw dev wlan0 link
Connected to 00:10:7A:93:AE:BF (on wlan0)
    SSID: SECRETSSID
    freq: 2462
    RX: 89045514 bytes (194863 packets)
    TX: 34783321 bytes (164504 packets)
    signal: -54 dBm
    tx bitrate: 48.0 MBit/s

Hier wird auch die Anzahl der gesendeten und empfangenen Pakete (RX / TX) angezeigt.

slm
quelle
Die Anwendung, für die ich eine Lösung aussehe, verwendet ein dateiähnliches Objekt, um die Netzwerkgeschwindigkeit daraus zu lesen. Und ich kann keinen neuen Teil des Codes hinzufügen, der mir beim Extrahieren von Informationen aus iwconfig helfen könnte. Die Konfiguration für die Anwendung verwendet nur den Pfad zur Datei mit Geschwindigkeit.
Tural Gurbanov
Haben Sie iwconfig noch nicht installiert? Es wird normalerweise installiert, wenn Sie ein drahtloses Netzwerk haben. Ich muss es noch explizit auf allen Systemen installieren, auf denen ich kabellose Verbindungen habe.
slm
1
Beachten Sie, dass Sie möglicherweise mehr Informationen erhalten, iwconfigwenn Sie es als root ausführen. Geschwindigkeit, dBm usw. fehlen für mich ohne root
phiresky 18.08.18
2

Der Ansatz von slm ist falsch, die von angezeigte Datenrate iwconfigist die von der Schnittstelle für die Verbindung unterstützte Höchstgeschwindigkeit. Es ist nicht der aktuelle Zeitpunkt, zu dem Daten übertragen werden. Verwenden Sie die /sys/class/net/<interfacename>/statistics/<tx/rx>_bytesDatei, um die per Schnittstelle übertragenen Bytes live abzurufen.

Pradheesh Shanmugam
quelle