nmcli:当两个接入点具有相同 SSID 时选择 BSSID

Dav*_*ton 10 wifi networkmanager nmcli

nmcli当有两个具有相同 SSID 的接入点时,我无法连接正确的接入点。理想情况下,网络管理器应连接到信号最强的网络管理器,但它似乎总是连接到同一个信号。我什至无法通过指定 BSSID 来强制它连接到我想要的连接:

\n
$ nmcli -f in-use,ssid,bssid,signal,rate,bars  dev wifi\nIN-USE  SSID                       BSSID              SIGNAL  RATE        BARS \n        InternodeAC79C7            20:B0:01:AC:79:C7  92      130 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86\xe2\x96\x88 \n        InternodeAC79C7-5G         22:B0:01:AC:79:CF  92      405 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86\xe2\x96\x88 \n*       InternodeAC79C7            24:65:11:64:BA:93  72      270 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86_ \n$ nmcli device wifi connect 20:B0:01:AC:79:C7\nDevice 'wlp0s20f3' successfully activated with 'f1c36a2e-8fb0-4f88-95a7-40b9ddc32056'.\n$ nmcli -f in-use,ssid,bssid,signal,rate,bars  dev wifi\nIN-USE  SSID                       BSSID              SIGNAL  RATE        BARS \n        InternodeAC79C7            20:B0:01:AC:79:C7  92      130 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86\xe2\x96\x88 \n        InternodeAC79C7-5G         22:B0:01:AC:79:CF  89      405 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86\xe2\x96\x88 \n*       InternodeAC79C7            24:65:11:64:BA:93  62      270 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86_\n
Run Code Online (Sandbox Code Playgroud)\n

请注意,网络管理器仍然连接到24:65:11:64:BA:93

\n

其他可能相关的设置信息

\n
    \n
  • 我正在运行 Debian 测试 bullseye/sid
  • \n
  • 内核版本\n
    $ uname -a\nLinux binky 5.8.0-2-amd64 #1 SMP Debian 5.8.10-1 (2020-09-19) x86_64 GNU/Linux\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
  • /etc/NetworkManager/system-connections/InternodeAC79C7.nmconnection\n的内容
    [connection]\nid=InternodeAC79C7\nuuid=f1c36a2e-8fb0-4f88-95a7-40b9ddc32056\ntype=wifi\ninterface-name=wlp0s20f3\npermissions=user:dcpurton:;\ntimestamp=1601538860\n\n[wifi]\nmac-address-blacklist=\nmode=infrastructure\nseen-bssids=20:B0:01:AC:79:C7;24:65:11:64:BA:93;\nssid=InternodeAC79C7\n\n[wifi-security]\nkey-mgmt=wpa-psk\npsk=*****\n\n[ipv4]\ndns-search=\nmethod=auto\n\n[ipv6]\naddr-gen-mode=stable-privacy\ndns-search=\nip6-privacy=0\nmethod=auto\n\n[proxy]\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
  • 无线适配器\n
    $ sudo lspci -v\n00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 30)\n    Subsystem: Intel Corporation Cannon Point-LP CNVi [Wireless-AC]\n    Flags: bus master, fast devsel, latency 0, IRQ 16, IOMMU group 6\n    Memory at c9738000 (64-bit, non-prefetchable) [size=16K]\n    Capabilities: [c8] Power Management version 3\n    Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+\n    Capabilities: [40] Express Root Complex Integrated Endpoint, MSI 00\n    Capabilities: [80] MSI-X: Enable+ Count=16 Masked-\n    Capabilities: [100] Null\n    Capabilities: [14c] Latency Tolerance Reporting\n    Capabilities: [164] Vendor Specific Information: ID=0010 Rev=0 Len=014 <?>\n    Kernel driver in use: iwlwifi\n    Kernel modules: iwlwifi\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
  • 笔记本电脑:联想 ThinkPad X390 20Q0
  • \n
\n

Dav*_*ton 11

看来有两个问题。

\n
    \n
  1. bssid的参数实际上nmcli并没有达到我的预期。它仅用于选择 SSID,不会传递给wpa_supplicant. 请参阅问题 #465
  2. \n
  3. NetworkManager 似乎没有选择信号最强的 AP。不管怎样(对我来说),它总是连接到同一个。请参阅问题#474。我想这两个问题可能是相关的。
  4. \n
\n

可以用来wpa_cli切换接入点:

\n
$ sudo wpa_cli list_networks\nSelected interface \'wlp0s20f3\'\nnetwork id / ssid / bssid / flags\n0   InternodeAC79C7 any [CURRENT]\n$ sudo wpa_cli bssid 0 20:B0:01:AC:79:C7\nSelected interface \'wlp0s20f3\'\nOK\n$ sudo wpa_cli reassociate\nSelected interface \'wlp0s20f3\'\nOK\n$ sudo wpa_cli list_networks\nSelected interface \'wlp0s20f3\'\nnetwork id / ssid / bssid / flags\n0   InternodeAC79C7 20:b0:01:ac:79:c7   [CURRENT]\n$ nmcli -f in-use,ssid,bssid,signal,rate,bars  dev wifi\nIN-USE  SSID                       BSSID              SIGNAL  RATE        BARS \n*       InternodeAC79C7            20:B0:01:AC:79:C7  92      130 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86\xe2\x96\x88 \n        InternodeAC79C7-5G         22:B0:01:AC:79:CF  92      405 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86\xe2\x96\x88 \n        InternodeAC79C7            24:65:11:64:BA:93  72      270 Mbit/s  \xe2\x96\x82\xe2\x96\x84\xe2\x96\x86_ \n
Run Code Online (Sandbox Code Playgroud)\n

如果我使用 NetworkManager 重新连接,它会恢复为24:65:11:64:BA:93.

\n