在 wpa_supplicant 中跳过扫描

在 wpa_supplicant 中跳过扫描

当我们执行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 驱动程序以及您想要如何连接的详细信息。

相关内容