当我们执行wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf
连接AP的命令时,wpa_supplicant
执行以下步骤:
1. wpa_supplicant requests the kernel driver to scan neighboring BSSes
2. wpa_supplicant selects a BSS based on its configuration
3. wpa_supplicant requests the kernel driver to associate with the
chosen BSS
有什么方法可以跳过扫描部分,即第 1 步?由于扫描需要相当多的几秒钟,因为本地环境有 50+ SSID。
答案1
wpa_supplicant 需要收集有关 AP 的一些信息(可用性、ESSID、BSSID、频率、安全性、通道...),对于每个连接请求,它将调用一些功能更新 BSS 表。
如果没有 BSS 表更新,wpa_supplicant 就无法处理 AP 上的任何更改,因此不可能跳过扫描。
答案2
有ap_scan
。来自wpa_supplicant.conf
文档:
# AP scanning/selection
# By default, wpa_supplicant requests driver to perform AP scanning and then
# uses the scan results to select a suitable AP. Another alternative is to
# allow the driver to take care of AP scanning and selection and use
# wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association
# information from the driver.
# 1: wpa_supplicant initiates scanning and AP selection; if no APs matching to
# the currently enabled networks are found, a new network (IBSS or AP mode
# operation) may be initialized (if configured) (default)
# 0: driver takes care of scanning, AP selection, and IEEE 802.11 association
# parameters (e.g., WPA IE generation); this mode can also be used with
# non-WPA drivers when using IEEE 802.1X mode; do not try to associate with
# APs (i.e., external program needs to control association). This mode must
# also be used when using wired Ethernet drivers (including MACsec).
# 2: like 0, but associate with APs using security policy and SSID (but not
# BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to
# enable operation with hidden SSIDs and optimized roaming; in this mode,
# the network blocks in the configuration file are tried one by one until
# the driver reports successful association; each network block should have
# explicit security policy (i.e., only one option in the lists) for
# key_mgmt, pairwise, group, proto variables
# Note: ap_scan=2 should not be used with the nl80211 driver interface (the
# current Linux interface). ap_scan=1 is optimized work working with nl80211.
# For finding networks using hidden SSID, scan_ssid=1 in the network block can
# be used with nl80211.
# When using IBSS or AP mode, ap_scan=2 mode can force the new network to be
# created immediately regardless of scan results. ap_scan=1 mode will first try
# to scan for existing networks and only if no matches with the enabled
# networks are found, a new IBSS or AP mode network is created.
ap_scan=1
这是否有效可能取决于您的 WLAN 驱动程序以及您想要如何连接的详细信息。