web-dev-qa-db-ja.com

wlanインターフェースの速度を見つける方法は?

ファイル記述子を使用してネットワークインターフェイスの速度を見つけようとしています。 ethXの場合、cat /sys/class/net/eth0/speedを呼び出すだけで簡単に実行できます。残念ながら、この方法はワイヤレスインターフェイスでは機能しません。 /sys/class/net/wlan0/speedを呼び出すと、エラーが発生します。引数が無効です。

Wlanインターフェースの/sys/class/net/eth0/speedのようなアナログを知っていますか?

14
Tural Gurbanov

iwconfigツールを使用して、この情報を見つけることができます。

$ 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

/sysからのビットレートが必要な場合は、これを直接試してください:

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

または/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

注: 2番目の例のリンクの値は56です。

MB/sは計算値であるため、特にwlan0デバイス専用の場所には保存されません。インターフェースを介して転送された総ビット数を取り、そのデータが転送されるのにかかった時間で除算していると思います。

この情報を取得するもう1つの方法は、ツールiwを使用することです。このツールは、ワイヤレスデバイス用のnl80211ベースのCLI構成ユーティリティを作成します。最近のLinuxディストリビューションにあるはずです。

$ 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

これは、送受信されたパケット(RX/TX)の量も示します。

15
slm

Slmによるアプローチは間違っています。iwconfigで示されるデータレートは、リンクのインターフェースでサポートされている最大速度です。現在のところ、データは転送されません。使用 /sys/class/net/<interfacename>/statistics/<tx/rx>_bytesライブで転送されたインターフェイスごとのバイトを取得するファイル。

2