Skip to content

Contents

qsdk关于wifi连接常用命令

列出当前sta连接的ap

root@OpenWrt:/tmp# wlanconfig ath0 list ap
SSID BSSID CHAN RATE S:N INT CAPS
OpenWrt 00:03:7f:12:43:17 100 54M 79:0 100 Es VEN WME VEN VEN

列出当前ap连接的sta

wlanconfig ath0 list sta

查看sta 连接状态

iw dev ath0 link
Connected to 00:03:7f:12:43:17 (on ath0)
SSID: OpenWrt
freq: 5280

扫描

iw dev ath0 scan

自动获取ip

udhcpc -i ath0

802.11r关于连接wifi命令

nid=$(wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 add_network)
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid ssid '"ap360"'
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid key_mgmt FT-PSK
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid psk '"password"'
nid=$(wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 add_network)
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid ssid '"ap360"'
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid key_mgmt FT-PSK
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid psk '"password"'
nid=$(wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 add_network)
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid ssid '"ap360"'
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid key_mgmt FT-PSK
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 set_network $nid psk '"password"'
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 enable_network 1
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 disable_network 1
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 select_network 1
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 list_network
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 roam 00:03:7f:11:44:60
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 roam 00:03:7f:12:43:17
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 roam 00:03:7f:12:54:87
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 scan
wpa_cli -p /var/run/wpa_supplicant-ath0 -i ath0 scan_res

sta 端设置

uci set wireless.@wifi-device[0].type='qcawificfg80211'
uci set wireless.@wifi-device[0].macaddr='00:03:7f:12:e3:b7'
uci set wireless.@wifi-device[0].hwmode='11axa'
uci set wireless.@wifi-device[0].channel='64'
uci set wireless.@wifi-device[0].htmode='HT20'
uci set wireless.@wifi-device[0].disabled='0'
uci set wireless.@wifi-iface[0].device='wifi0'
uci set wireless.@wifi-iface[0].network='lan'
uci set wireless.@wifi-iface[0].ssid=OpenWrt5G
uci set wireless.@wifi-iface[0].encryption=psk2
uci set wireless.@wifi-iface[0].key='password'
uci set wireless.@wifi-iface[0].ieee80211r='1'
uci set wireless.@wifi-iface[0].wds='1'
uci set wireless.@wifi-iface[0].mode='sta'
uci set wireless.@wifi-iface[0].wnm='1'
uci set wireless.@wifi-iface[0].wmm='1'
uci commit wireless; wifi

ap1 设置

uci set wireless.@wifi-device[0].type='qcawificfg80211'
uci set wireless.@wifi-device[0].macaddr='00:03:7f:12:43:17'
uci set wireless.@wifi-device[0].hwmode='11axa'
uci set wireless.@wifi-device[0].channel='64'
uci set wireless.@wifi-device[0].htmode='HT20'
uci set wireless.@wifi-device[0].disabled='0'
uci set wireless.@wifi-iface[0].device='wifi0'
uci set wireless.@wifi-iface[0].network='lan'
uci set wireless.@wifi-iface[0].mode='ap'
uci set wireless.@wifi-iface[0].ssid=ap360
uci set wireless.@wifi-iface[0].encryption=psk2
uci set wireless.@wifi-iface[0].key='password'
uci set wireless.@wifi-iface[0].oce='1'
uci set wireless.@wifi-iface[0].rrm='1'
uci set wireless.@wifi-iface[0].wmm='1'
uci set wireless.@wifi-iface[0].wpa_group_rekey='2000'
uci set wireless.@wifi-iface[0].ieee80211r='1'
uci set wireless.@wifi-iface[0].ft_over_ds='0'
uci set wireless.@wifi-iface[0].mobility_domain='3780'

自己

uci set wireless.@wifi-iface[0].ap_macaddr='00:03:7f:12:43:17'
uci set wireless.@wifi-iface[0].r1_key_holder='00037f124317'
uci set wireless.@wifi-iface[0].nasid='00037f124317'

邻居ap2

uci set wireless.@wifi-iface[0].ap2_macaddr='00:03:7F:11:44:60'
uci set wireless.@wifi-iface[0].ap2_r1_key_holder='00:03:7F:11:44:60'
uci set wireless.@wifi-iface[0].nasid2='00037F114460'

邻居ap3

uci set wireless.@wifi-iface[0].ap3_macaddr='00:03:7F:12:54:87'
uci set wireless.@wifi-iface[0].ap3_r1_key_holder='00:03:7F:12:54:87'
uci set wireless.@wifi-iface[0].nasid3='00037F125487'
uci set wireless.@wifi-iface[0].kh_key_hex='000102030405060708090a0b0c0d0e0f'
uci set wireless.@wifi-iface[0].ft_psk_generate_local='1'
uci set wireless.@wifi-iface[0].disable_pmksa_caching='1'
uci set wireless.@wifi-iface[0].pmk_r1_push='1'
uci commit wireless; wifi

ap2 设置

uci set wireless.@wifi-device[0].type='qcawificfg80211'
uci set wireless.@wifi-device[0].macaddr='00:03:7F:11:44:60'
uci set wireless.@wifi-device[0].hwmode='11axa'
uci set wireless.@wifi-device[0].channel='64'
uci set wireless.@wifi-device[0].htmode='HT20'
uci set wireless.@wifi-device[0].disabled='0'
uci set wireless.@wifi-iface[0].device='wifi0'
uci set wireless.@wifi-iface[0].network='lan'
uci set wireless.@wifi-iface[0].mode='ap'
uci set wireless.@wifi-iface[0].ssid=ap360
uci set wireless.@wifi-iface[0].encryption=psk2
uci set wireless.@wifi-iface[0].key='password'
uci set wireless.@wifi-iface[0].oce='1'
uci set wireless.@wifi-iface[0].rrm='1'
uci set wireless.@wifi-iface[0].wmm='1'
uci set wireless.@wifi-iface[0].wpa_group_rekey='2000'
uci set wireless.@wifi-iface[0].ieee80211r='1'
uci set wireless.@wifi-iface[0].ft_over_ds='0'
uci set wireless.@wifi-iface[0].mobility_domain='3780'

自己

uci set wireless.@wifi-iface[0].ap_macaddr='00:03:7F:11:44:60'
uci set wireless.@wifi-iface[0].r1_key_holder='00037F114460'
uci set wireless.@wifi-iface[0].nasid='00037F114460'

邻居ap2

uci set wireless.@wifi-iface[0].ap2_macaddr='00:03:7f:12:43:17'
uci set wireless.@wifi-iface[0].ap2_r1_key_holder='00:03:7f:12:43:17'
uci set wireless.@wifi-iface[0].nasid2='00037f124317'

邻居ap3

uci set wireless.@wifi-iface[0].ap3_macaddr='00:03:7F:12:54:87'
uci set wireless.@wifi-iface[0].ap3_r1_key_holder='00:03:7F:12:54:87'
uci set wireless.@wifi-iface[0].nasid3='00037F125487'
uci set wireless.@wifi-iface[0].kh_key_hex='000102030405060708090a0b0c0d0e0f'
uci set wireless.@wifi-iface[0].ft_psk_generate_local='1'
uci set wireless.@wifi-iface[0].disable_pmksa_caching='1'
uci set wireless.@wifi-iface[0].pmk_r1_push='1'
uci commit wireless; wifi

ap3 设置

uci set wireless.@wifi-device[0].type='qcawificfg80211'
uci set wireless.@wifi-device[0].macaddr='00:03:7F:12:54:87'
uci set wireless.@wifi-device[0].hwmode='11axa'
uci set wireless.@wifi-device[0].channel='64'
uci set wireless.@wifi-device[0].htmode='HT20'
uci set wireless.@wifi-device[0].disabled='0'
uci set wireless.@wifi-iface[0].device='wifi0'
uci set wireless.@wifi-iface[0].network='lan'
uci set wireless.@wifi-iface[0].mode='ap'
uci set wireless.@wifi-iface[0].ssid=ap360
uci set wireless.@wifi-iface[0].encryption=psk2
uci set wireless.@wifi-iface[0].key='password'
uci set wireless.@wifi-iface[0].oce='1'
uci set wireless.@wifi-iface[0].rrm='1'
uci set wireless.@wifi-iface[0].wmm='1'
uci set wireless.@wifi-iface[0].wpa_group_rekey='2000'
uci set wireless.@wifi-iface[0].ieee80211r='1'
uci set wireless.@wifi-iface[0].ft_over_ds='0'
uci set wireless.@wifi-iface[0].mobility_domain='3780'

自己

uci set wireless.@wifi-iface[0].ap_macaddr='00:03:7F:12:54:87'
uci set wireless.@wifi-iface[0].r1_key_holder='00037F125487'
uci set wireless.@wifi-iface[0].nasid='00037F125487'

邻居ap2

uci set wireless.@wifi-iface[0].ap2_macaddr='00:03:7f:12:43:17'
uci set wireless.@wifi-iface[0].ap2_r1_key_holder='00:03:7f:12:43:17'
uci set wireless.@wifi-iface[0].nasid2='00037f124317'

邻居ap3

uci set wireless.@wifi-iface[0].ap3_macaddr='00:03:7F:11:44:60'
uci set wireless.@wifi-iface[0].ap3_r1_key_holder='00:03:7F:11:44:60'
uci set wireless.@wifi-iface[0].nasid3='00037F114460'
uci set wireless.@wifi-iface[0].kh_key_hex='000102030405060708090a0b0c0d0e0f'
uci set wireless.@wifi-iface[0].ft_psk_generate_local='1'
uci set wireless.@wifi-iface[0].disable_pmksa_caching='1'
uci set wireless.@wifi-iface[0].pmk_r1_push='1'
uci commit wireless; wifi
uci set wireless.@wifi-iface[0].wmm='1'
uci set wireless.@wifi-iface[0].wnm='1'
uci set wireless.@wifi-iface[0].fils_cache_id='1234'
uci set wireless.@wifi-iface[0].fils_realm='wim'
uci set wireless.@wifi-iface[0].oce='0'

wifi和ath接口概念

  • 单个Radio可以虚拟出多个AP
  • wifiN接口代表radio
  • ath接口代表ap

wifi启用禁用命令

wifi down
wifi up
wifi reload
/etc.init.d/network restart /*重启整个网络,含wifi*/

状态查看

iwconfig athN
/sys/class/net/wifiN/*
/sys/class/net/athN/*

帧聚合 //默认启用

iwpriv wifiN amsdu Radio层以太网帧聚合,可以作用于不同的AP
iwpriv wifiN ampdu Radio层80211帧聚合,可以作用于不同的AP
iwpriv athN amsdu AP层以太网帧聚合
iwpriv athN ampdu AP层80211帧聚合

开关抗干扰

cfg80211tool wifi0 / wifi1 ani_enable
cfg80211tool wifi0 / wifi1 get_ani_enable
cfg80211tool wifi0 / wifi1 ani_poll_len
cfg80211tool wifi0 /wifi1 ani_listen_len
cfg80211tool wifi0 /wifi1 ani_ofdm_level
cfg80211tool wifi0 /wifi1 ani_cck_level

ACL过滤 //默认不启用

iwpriv ath0 addmac 00:03:7f:00:00:20
iwpriv ath0 delmac 00:03:7f:00:12:34
iwpriv ath0 getmac
iwpriv ath0 maccmd 0禁用 1白名单【只允许列表中的连接】 2黑名单【不允许列表中的MAC地址连接】

踢STA下线 //踢的次数可以通过sko设置(默认50),防止踢一次设备又重新连上

iwpriv ath0 kickmac 00:18:41:9b:c8:87
iwpriv ath0 sko 50
iwpriv ath0 get_sko

wifi sta隔离 //默认不隔离

root@OpenWrt:/# iwpriv wifi1 g_blk_interbss
root@OpenWrt:/# iwpriv wifi1 block_interbss

beacon帧间隔设置 //默认100ms

# iwpriv ath0 bintval 100
# iwpriv ath0 get_bintval

beacon是否携带国家IE //默认携带,不携带可能会出现一些兼容性问题

# iwpriv ath0 countryie 1
# iwpriv ath0 get_countryie
# iwpriv ath0 vap_contryie 1
# iwpriv ath0 get_vapcontryie

beacon是否隐藏ssid IE //默认不隐藏

# iwpriv ath0 hide_ssid 1
# iwpriv ath0 get_hide_ssid

纯11g、11n模式设置 //默认bgn等模式兼容

# iwpriv ath0 pureg 1
# iwpriv ath0 get_pureg
# iwpriv ath0 puren 1
# iwpriv ath0 get_puren

设置shortgi //默认1

# iwpriv ath0 shortgi X
# iwpriv ath0 get_shortgi
Where X is:
0 - 800 ns
1 - 400 ns (supported in VHT only)
2 - 1600 ns (supported for 11ax devices only)
3 - 3200 ns (supported for 11ax devices only)

设置信道

wlanconfig ath0 list chan
iwlist ath0 channel
iwconfig ath0 channel 64 设置当前通道
wifitool athX custom_chan_list 自定义_chan_列表
-a 后跟可选的“-band <band value>”
<通道数> <通道1> <通道2> ..<通道N>
-n 后跟可选的“-band <band value>”
<通道数> <通道1> <通道2> ..<通道N>
**注意:如果未提供频段选项,通道号默认为 2G/5G 频段
**注:频段值定义:1 -> 2GHz、2 -> 5 GHz、3 -> 6 GHz
例子:
在关联列表中设置频段 1 的通道 6、9,频段 2 的通道 36、40
wifitool ath0 custom_chan_list -a -band 1 2 6 9 -band 2 2 36 40
在非关联列表中设置频段 3 的通道 219、233,频段 2 的通道 36、40
wifitool ath0 custom_chan_list -n -band 3 2 219 233 -band 2 2 36 40
以上可以组合如下
wifitool ath0 custom_chan_list -a -band 1 2

扩展信道方向 //默认0

# iwpriv ath0 chextoffset 0
# iwpriv ath0 get_chextoffset
0Use the device settings as default
1Extension (Secondary) channel is above the control (Primary) channel
1Extension (Secondary) channel is below the control (Primary) channel

20M/40M共存 //默认0启用

# iwpriv ath0 disablecoext 0
# iwpriv ath0 g_disablecoext

频宽设置 //默认0

# iwpriv ath0 chwidth 0
# iwpriv ath0 get_chwidth
0(HT)20 MHz
1 40 MHz
2 80 MHz
3 80_80/160 MHz

抗干扰自动信道选择 //默认未开启

# iwpriv wifi0 dcs_enable 0
# iwpriv wifi0 get_dcs_enable
# iwpriv wifi0 set_dcs_intrth 30 //同频干扰超过30%触发信道选择
# iwpriv wifi0 get_dcs_intrth
# iwpriv wifi0 set_dcs_errth 30 //传输失败的速率只有30%?
# iwpriv wifi0 get_dcs_errth
# iwpriv wifi0 s_dcs_phyerrth 500 //phy层传输错误达到500次?
# iwpriv wifi0 g_dcs_phyerrth
# iwpriv wifi1 set_dcs_maxcu 50 //信道使用率超过50%
# iwpriv wifi1 get_dcs_maxcu

节能

# iwpriv ath0 ant_ps_on 1 //天线节能,默认关闭
# iwpriv ath0 get_ant_ps_on

wifi国家地区设置

# iwpriv wifi0 setCountryID 250
# iwpriv wifi0 setCountry FR
# iwpriv wifi0 getCountryIDwifi0 getCountryID:250
# iwpriv wifi0 getCountrywifi0 getCountry:FR
US 840
FR 250
CN 156

收发天线使用设置

# iwpriv wifi0 txchainmask 0x05
# iwpriv wifiN rxchainmask 0x05
# iwpriv wifiN get_txchainmask
# iwpriv wifiN get_rxchainmask

发送功能设置 //临时设置,单位0.5dbm/1

iwpriv wifiNTXPowLim2G limit
iwpriv wifiNTXPowLim5G limit
iwpriv ath0 get_minpower / get_maxpower //获取发送功率

加密认证相关

# iwpriv ath0 authmode 2
# iwpriv ath0 get_authmode
0 None specified
1 Open authentication
2 Shared key (WEP) authentication
3 802.1x authentication
4 Auto select/accept authentication (used by host_apd)
5 WPA PSK with 802.1x PSK
# iwpriv ath0 wpa 3 //wpa1 wpa2
# iwpriv ath0 get_wpaath0 get_wpa:0
1 WPA support
2 WPA2 support
3 Both WPA and WPA2 support

启用禁用WPS

# iwpriv ath0 wps 0
# iwpriv ath0 get_wps

beforming束波成型

former是AP角色、formee是STA角色
iwpriv athN vhtsubfer {0|1}
Single-user beam former
0 Disable single-user beam former
1 Enable single-user beam former
iwpriv athN vhtmubfer {0|1}
Multiple-user beam former
0 Disable multiple-user beam former
1 Enable multiple-user beam former
iwpriv athN vhtsubfee {0|1}
Single-user beam formee
0 Disable single-user beam formee
1 Enable single-user beam formeevhtmubfer
iwpriv athN vhtmubfee {0|1}
Multiple-user beam formee
0 Disable multiple-user beam formee
1 Enable multiple-user beam formee get_vhtsubfee
iwpriv ath0 implicitbf 0 //控制是显式还是隐式

ATF负载均衡

iwpriv wifiN atfstrictsched 1
iwpriv wifiN atfgrouppolicy 0

debug调试统计

iwpriv ath0 txrx_fw_stats 1...N //每一个数字代表一种统计类型
iwpriv ath0 txrx_stats 1...N //每一个数字代表一种统计类型
apstats -a -i ath0 //AP统计
apstats -r -i wifi0 //RADIO统计
apstats -s --m xx:xx:xx:xx:xx:xx //关联STA统计
wlanconfig ath0 list //关联STA列表

其他工具

wifitool、wlanconfig、iwlist
wlanconfig athN list ap //同一频段 周边AP
wlanconfig athN list sta //当前ap已连接sta
wlanconfig athN list chan //支持信道详细信息
iwlist athN channel //信道(含当前信道显示)
iwlist athN scan //2.4G 5G 周边AP