无法通过多个虚拟接口连接到多个 WiFi 网络

Dhe*_*ani 4 networking linux wireless-networking

我的笔记本电脑有一个 atheros WiFi 卡,我在它上面创建了 2 个虚拟接口,使用以下命令:

  • iw dev wlan0 接口添加 vlan0 类型站
  • iw dev wlan0 接口添加 vlan1 类型站

我改变了他们的mac地址,如下:

  • macchanger -e vlan0
  • machhanger -e vlan1

然后我打开它们,:

  • ifconfig vlan0 up
  • ifconfig vlan1 up

我想将这两个接口连接到 2 个不同的网络。假设我有 SSID1 和 SSID2 由 2 个不同的 AP 广播。

我执行以下命令来做到这一点:

  • iw dev vlan1 连接 SSID1
  • iw dev vlan2 连接 SSID2

问题是,vlan1 能够连接但 vlan2 不能。为了找到答案,我跟踪了空中的帧,我看到当 vlan2 被要求连接时,它会发送探测请求并从 SSID2 获取探测响应,但它从不发送关联请求。

但是,如果我尝试将 vlan1 和 vlan2 都连接到一个 SSID - SSID1/2 它们都能够连接和关联。

问题是,为什么 2 个不同的虚拟接口无法连接到 2 个不同的网络?

Spi*_*iff 5

一般来说,一张Wi-Fi卡只有一个收音机,所以一次只能调到一个频道。从技术上讲,支持 MIMO(2 个或更多空间流)的卡在一种意义上具有多个无线电,但它们组合在一起;它们仅被设计为在同一频道上作为一个团队工作。

如果最近发布您感兴趣的两个 SSID 的 AP 位于不同的频道上,那么您将无法连接到这两个频道,因为您的无线电无法同时调谐到两个频道。尝试在通道之间快速来回切换(称为“时分双工”或 TDD)并不是成功的秘诀;你最终会在两个网络上丢失大量数据包。即使您的卡明智地使用 802.11 省电模式来要求 AP 将数据包排队,而客户端在另一个通道上,客户端仍可能会错过重要的多播/广播,包括 ARP 请求。