增对wifi的调试命令有很多,这边列出我们常用的命令提供参考,方便查看信息定位问题。
1、iwconfig
查看当前 WIFI 的工作信道以及工作带宽模式:
root@openwrt:/# iwconfig ra0
ra0 mt7603e ESSID:"openwrt"
Mode:Managed Channel:8 Access Point: DC:4B:DD:1D:FB:93
Bit Rate=144 Mb/s
root@openwrt:/# iwconfig rai0
rai0 mt7612e ESSID:"openwrt_5G"
Mode:Managed Channel:36 Access Point: DC:4B:DD:1D:FB:94
Bit Rate=400 Mb/s
-
2.4G 工作在 8 信道,图示 Bit Rate 为 144Mb/s 表示工作在 HT20,如
果 Bit Rate 为 300Mb/s 表示工作在 HT40 模式; -
5G 工作在 36 信道,图中显示的 Bit Rate
为 400Mb,表示工作在 HT40、若 Bit Rate 显示为 173Mb/s 则表示工作在 HT20 模式、
若 Bit Rate 显示为 867Mb 则表示工作在 HT80 模式。
以下iwconfig的接口设置命令,在openwrt下基本使用比较少,因为openwrt下一般用uci进行配置,而非直接使用该命令进行配置。
root@openwrt:/# iwconfig -h
Usage: iwconfig [interface]
interface essid {NNN|any|on|off}
interface mode {managed|ad-hoc|master|...}
interface freq N.NNN[k|M|G]
interface channel N
interface bit {N[k|M|G]|auto|fixed}
interface rate {N[k|M|G]|auto|fixed}
interface enc {NNNN-NNNN|off}
interface key {NNNN-NNNN|off}
interface power {period N|timeout N|saving N|off}
interface ap {N|off|auto}
interface txpower {NmW|NdBm|off|auto}
interface rts {N|auto|fixed|off}
interface frag {N|auto|fixed|off}
interface commit
Check man pages for more details
该工具代码位于:
.package/network/utils/wireless-tools
2、iwinfo
iwinfo命令
root@openwrt:/# iwinfo -h
Usage:
iwinfo <device> info // 查看接口信息
iwinfo <device> scan // 扫描周围ssid
iwinfo <device> txpowerlist // 设备发送功率及当前的使用功率
iwinfo <device> freqlist // 设备的信道以及当前使用的信道
iwinfo <device> assoclist // 关联的终端信息
iwinfo <device> countrylist // 国家信息
iwinfo <device> htmodelist
iwinfo <backend> phyname <section>
该命令常用的命令比较多,第一个命令与上面的iwconfig类似,查看WIFI接口信息:
该命令多了一些信息,比如信号、噪声等
root@openwrt:/# iwinfo ra0 info
ra0 ESSID: "openwrt"
Access Point: DC:4B:DD:1D:FB:93
Mode: Master Channel: 8 (2.432 GHz)
Tx-Power: 20 dBm Link Quality: 55/100
Signal: -12 dBm Noise: -12 dBm
Bit Rate: 144.0 MBit/s
Encryption: none
Type: nlwifi HW Mode(s): 802.11bgn
Hardware: 14C3:7603 0000:0000 [mt7603e]
TX power offset: none
Frequency offset: none
Supports VAPs: no PHY name: mt7603e
root@openwrt:/# iwinfo rai0 info
rai0 ESSID: "openwrt_5G"
Access Point: DC:4B:DD:1D:FB:94
Mode: Master Channel: 36 (5.240 GHz)
Tx-Power: 20 dBm Link Quality: 12/100
Signal: -11 dBm Noise: -37 dBm
Bit Rate: 440.0 MBit/s
Encryption: none
Type: nlwifi HW Mode(s): 802.11anac
Hardware: 14C3:7612 7662:3000 [mt7612e]
TX power offset: none
Frequency offset: none
Supports VAPs: no PHY name: mt7612e
命令2:扫描周边wifi信息,比如ra0可以扫描2.4G信道的ssid,rai0可以扫描5G信道的ssid
root@openwrt:/# iwinfo ra0 scan
Cell 01 - Address: CC:08:FB:3C:CE:9E // MAC
ESSID: "test" // SSID
Mode: Master Channel: 6 // 模式、信道
Signal: -10 dBm Quality: 100/100 //信号、噪声
Encryption: WPA PSK (CCMP) //加密方式
Cell 02 - Address: D6:EE:07:00:11:14
ESSID: "test_1124"
Mode: Master Channel: 1
Signal: -35 dBm Quality: 100/100
Encryption: none
命令3:最常用的命令,查看接口下连接的设备
root@openwrt:/# iwinfo ra0 assoclist
B0:59:47:78:20:C7 -19 dBm / -16 dBm (SNR -3) 0 ms ago
RX: 72.0 MBit/s 0 Pkts.
TX: 58.0 MBit/s 0 Pkts.
该指令主要查看无线客户端的 TX 以及 RX 传输速率,平均信号强度
该工具代码位于:
./package/network/utils/iwinfo
3、iwpriv
查看 WIFI 的无线 TX 和 RX 丢包率
root@openwrt:/# iwpriv ra0 stat
ra0 stat:
ra0,ra1 beacon cnt:174999 174999
Tx success = 1
Tx fail count = 0, PER=0.0%
Rx success = 570
Tx bytes = 1707
Tx OneSec bytes = 58
Rx bytes = 175943
Rx OneSec bytes = 12386
Rx with CRC = 339, PER=37.2%
Rx with PhyErr = 0
Rx with PlcpErr = 0
Rx drop due to out of resource = 0
Rx duplicate frame = 0
False CCA = 0
False CCA (one second) = 0 (CCK 0 + OFDM 0)
SNR-A = 0
SNR-B (if available) = 0
先复位统计值,再采集5秒后,查看丢包率
root@openwrt:/# iwpriv ra0 set ResetCounter=0;sleep 5;iwpriv ra0 stat
ra0 stat:
ra0,ra1 beacon cnt:175196 175196
Tx success = 0
Tx fail count = 0, PER=0.0%
Rx success = 223
Tx bytes = 1400
Tx OneSec bytes = 116
Rx bytes = 65328
Rx OneSec bytes = 15424
Rx with CRC = 136, PER=37.8%
Rx with PhyErr = 0
Rx with PlcpErr = 0
Rx drop due to out of resource = 0
Rx duplicate frame = 0
False CCA = 0
False CCA (one second) = 0 (CCK 0 + OFDM 0)
SNR-A = 0
SNR-B (if available) = 0
- Tx 丢包率需要结合总发包数来看(Tx success + Tx retry count),需要整体有一定的发包量,Tx 的丢包率才比较有实际的意义来反应真实的丢包率,一般没有客户端连接时,TX 发包统计为 0。
- Rx 接收 CRC 错包率:这个指标,即使没有客户端连接上网关,依旧会有统计值,会在一定程度上反馈周围的无线信道质量情况,如果 RX 整体收到的报文量大,且 RX 接收CRC 错包率高,说明周围无线信号干扰大。
- False CCA:无线当前一秒的干扰值,该值仅供参考用,值越大说明干扰越大,一般2.4G 该值小于 1200 说明干扰可控,大于 1200 说明干扰大。
- AMPDU Tx fail count:无线聚合帧的丢包率,也是体现发包的丢包率的一个指标。
扫描周边wifi信息,更iwinfo ra0 scan
命令类似
root@openwrt:~# iwpriv ra0 set SiteSurvey=
root@openwrt:~# iwpriv ra0 get_site_survey
ra0 get_site_survey:
Ch SSID BSSID Security Siganl(%)W-Mode ExtCH NT WPS DPID
1 TP-LINK_D740 cc:08:fb:d2:d7:40 WPA1PSKWPA2PSK/AES 100 11b/g/n ABOVE In NO
7 greedyai-new 48:0e:ec:22:f1:a3 WPA1PSKWPA2PSK/TKIPAES 78 11b/g/n BELOW In NO
...
查看连接的设备,与iwinfo ra0 assoclist
命令类似:
root@openwrt:/# iwpriv ra0 show stainfo;dmesg
464542.730000] HT Operating Mode : 3
[464542.740000]
[464542.740000]
[464542.740000] MAC MODE AID BSS PSM WMM MIMOPS RSSI0/1/2 PhMd BW MCS SGI STBC Idle Rate LTC Time
[464542.770000] 24:0A:C4:49:81:D8 20001 1 1 1 1 3 -33/-36/0 HTMIX 20M 7 1 1 300 72 227 464517
[464542.790000] MaxCap: HTMIX 20M 7 1 1
[464542.810000]
[464542.810000] 32:AE:7B:01:DB:8A 20001 3 0 0 1 3 -4 /-12/0 HTMIX 20M 15 1 0 300 144 15 374047
[464542.840000] MaxCap: HTMIX 20M 15 1 1
[464542.860000]
每一行表示一个客户端的信息。
- PSM 表示是否处于省电模式,一般手机息屏或者处于无交互状态会处于省电
模式。 - RSSI0/1 表示网关 2 根天线分别收到客户端的信号强度,一般来说,2 天线的RSSI 不应该差距大于 20,差距过大表明网关的位置或者天线对于当前客户端
来说不理想,还有一种情况就是,如果所有的客户端都是一路 RSSI 非常低,
另外一路 RSSI 正常,表示很有可能网关你的一路天线已经坏掉或者没有扣好。 - BW 表明当前连接的客户端的工作带宽。
- Time 表示当前客户端连接上网关多久了,单位为秒。
iwpriv ra0 set Debug=3开启debug查看,然后再设置为iwpriv ra0 set Debug=0关闭
该工具代码位于: ./package/network/utils/iwinfo
4、iwlist
这个命令用得比较少,可以查到的信息上面那些接口都可以实现
root@openwrt:/# iwlist -h
Usage: iwlist [interface] scanning [essid NNN] [last]
[interface] frequency
[interface] channel
[interface] bitrate
[interface] rate
[interface] encryption
[interface] keys
[interface] power
[interface] txpower
该工具代码位于: ./package/network/utils/iwinfo