将 wlan 接口连接到特定 BSSID,无需了解 SSID

将 wlan 接口连接到特定 BSSID,无需了解 SSID

我确实知道无线路由器的 BSSID 和密码,我想将无线接口连接到它,而不必关心 SSID。因此,我希望即使在无线路由器的 SSID 被修改后它也能正常工作。

为了实现这一目标我尝试改变我的/etc/network/interfaces

iface wlan0 inet dhcp
        #wpa-ssid "MySSID" # old line
        wpa-bssid 01:23:45:67:89:ab # new line
        wpa-psk  "MYPASSWORD"

但使用此配置,系统会保持离线状态。我认为 ssid 对于 wpa_supplicant 是必需的,但我不明白为什么。有什么技术原因吗?如何绕过这个问题?

答案1

当通过配置文件提供完全相同的信息(bssid 和 psk)时,它可以工作,而wpa_supplicant不是/etc/network/interfaces

在 /etc/网络/接口:

iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

/etc/wpa_supplicant/wpa_supplicant.conf:

network={
  bssid=01:23:45:67:89:ab
  psk="MYPASSWORD"
}

我也测试了更改无线路由器的 ssid 并保持 psk 不变,效果很好。

答案2

如果您使用带有密码的 WPA-PSK 或 WPA2-PSK,则密码将与 SSID 混合并通过名为 PBKDF2 的函数运行以生成实际的 PSK。

因此,除非您将原始 PSK(64 位十六进制数字)传递给您的软件,否则它无法推导出 PSK,除非它知道 SSID。

我想,如果您的软件能够智能地查找与给定 BSSID 关联的 SSID,然后使用该 SSID 和他提供的密码输入 PBKDF2 来创建 PSK,那么它就可以仅使用 BSSID 和密码即可接入网络。

相关内容