在 Linux(特别是 Ubuntu)上,确定硬件和驱动程序支持哪些类型的 Wifi 协议的最简单方法是什么?
我有一个运行 DD-WRT 的路由器,它支持 2.4Ghz 和 5Ghz wifi 广播,网络模式为混合、BG-mixed、B-only、G-only、NG-only、N-only。
我有许多运行 Linux 的无线设备,从 Android 手机到网络再到 Macbook,我发现很难设置一个支持所有设备的配置。将其设置为在混合模式下同时广播 2.4 和 5 似乎可以覆盖所有设备,但也给我的路由器带来了最大的负载。所以我尝试在混合模式下只启用 2.4,一切都可以连接,但整体网络性能很慢,因为我所在地区有大量 2.4 网络,导致大量拥塞。
当我尝试在混合模式下仅启用 5Ghz 时,我发现我的大多数旧设备都无法再看到网络,即使其中一些设备已在其他位置连接到 5Ghz 网络。例如,我有一台可以连接到某些 5Ghz 网络的 Macbook,其 lspci 显示:
03:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)
但它完全无法检测到我的路由器的 5GHz 网络。
在上网本上,运行iwconfig wlan0
显示:
IEEE 802.11abg
意味着它应该能够访问我的路由器的 5 GHz 混合 a/n 网络,但运行时nmcli dev wifi list
只显示 2.4 GHz 网络。这是为什么?
我是否可以从命令行运行某些命令,列出当前 wifi 驱动程序支持的所有频率和网络模式,以便我可以找到无线路由器的最佳设置?
答案1
客户端支持的功能
iw phy
GNU/Linux 上应该会列出你想要的关于无线接口的信息(以及更多信息),尽管乍一看有点令人困惑。
您要查找的是您的网卡是否在双频模式下工作。然后您将看到Band 1:
一个Band 2:
部分,第一个部分通常用于 2.4Ghz,第二个部分用于 5Ghz。在每个频段下Bitrates (non-HT):
,您将看到列出 2.4Ghz 上 802.11bg 或 5Ghz 上 802.11a 支持的比特率。
您还正在寻找每个频段的HT20/HT40
下方Capabilities:
。这意味着支持 802.11n。HT20
适用于 20Mhz 宽度通道,HT40
适用于 40Mhz 宽度。
如果您想了解有关 802.11n 功能的更多信息,例如空间流数量(用于 MIMO)和支持的速率,请查看以下HT TX/RX MCS rate indexes supported:
行。0-15
表示支持从 0 到 15 的 MCS 索引,即它可以在 MIMO 2x2 中工作,数据速率在 HT20 中高达 130 Mb/s,在 HT40 中高达 270 Mb/s。此外,如果RX HT20 SGI
和/或RX HT40 SGI
列在下方Capabilities:
,则表示支持短 GI(400 ns),因此 HT20 的最大数据速率为 144 Mb/s,HT40 的最大数据速率为 300 Mb/s。请参阅此处获取 MCS 索引列表:https://wireless.wiki.kernel.org/en/developers/documentation/ieee80211/802.11n
Frequencies:
列出支持的频率和相关频道。某些频道可能被禁用,因为您的硬件或软件不支持,或者您的监管区域不允许。如果您的 WiFi 接入点在禁用的频道上广播信号,您将无法连接。您可以在此处查看您所在地区允许哪些频道:https://en.wikipedia.org/wiki/List_of_WLAN_channels
此外,您可能会看到VHT Capabilities
其他VHT
相关信息。它与 802.11ac 有关,但您的接入点不支持它(您指定的芯片组也不支持),因此您可以忽略它。
接入点配置
我真的建议您将 WiFi 接入点配置为同时在 2.4Ghz 和 5Ghz 上广播。如今,2.4Ghz 非常拥挤,更容易受到干扰,而使用 5Ghz 的设备则少得多。问题是 5 Ghz 通常仅支持较新或高端设备,而 2.4 Ghz 是 WiFi 设备使用的默认频段。此外,5Ghz 信号范围小于 2.4Ghz,更容易因障碍物而减弱。
使用这两个频段可以使您在大多数设备上使用无线连接(因为它们不支持 5Ghz 或者因为信号减弱,所以它们会回落到 2.4Ghz),同时在高端/最近的设备上获得更好的性能(因为它们使用 5Ghz 频段)。
最后,您不必担心接入点上的 B、G 和 N,您应该选择提供三种标准(混合)的模式,以便较旧的 802.11g(802.11b 设备现在非常罕见)设备仍可连接,而较新的 802.11n 可全速工作。此外,只有 802.11a 和 802.11n 可在 5Ghz 频段工作。(也有 802.11ac,但您没有使用它)
也许您还会看到频道设置。通常将其保留为默认值即可,您的接入点应该足够聪明来选择最佳频道。(并且可以防止您选择与其他频道重叠的频道,从而产生更多干扰)
两者之间的联系
iw dev
在 GNU/Linux 上将显示您的客户端和接入点如何连接。理想情况下,它将位于 5Ghz 频段(并且您所在区域允许)的信道中,带宽为 40Mhz。
答案2
@piernov 的答案很好,但我发现一个更简单但可能不太准确的方法是运行:
lspci | egrep -i --color 'wifi|wlan|wireless'
将显示类似以下内容的内容:
03:00.0 Network controller: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)
这显示了硬件理论上支持的内容。然后您可以解释“802.11[abcgn/]+”,其中 b 和 g 仅表示 2.4 GHz,a 仅表示 5 GHz,ac 和 n 均表示 2.4 GHz 和 5 GHz。
要查看驱动程序实际支持的内容,请运行:
iwconfig wlan0
应该显示类似以下内容的内容:
wlan0 IEEE 802.11bg ESSID:off/any