Wpa-Supplicant

跳過 wpa_supplicant 中的掃描

  • December 20, 2018

當我們執行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。

wpa_supplicant 需要收集有關 AP 的一些資訊(可用性、ESSID、BSSID、頻率、安全性、頻道…),對於每個連接請求,它將呼叫一些函式來更新 BSS 表。

如果不更新 BSS 表,wpa_supplicant 將無法處理 AP 上的任何更改,因此無法跳過掃描。

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 驅動程序,以及您希望如何連接的詳細資訊。

引用自:https://unix.stackexchange.com/questions/490077