问题我统一放在文末了,可以先跳到最后。
[h]尝试建立 wpa3 热点[/h]
起初我是想用 NetworkManager 建立一个 wpa3-personal (wpa-sae) 热点给 ipad 用的(我们校园网只给学生提供一个终端的连接),这个操作是在 nm-applet 中完成的,但是无法连接成功。
于是我尝试在命令行下启用连接
nmcli con up uuid 95dcd2ed-3c46-444a-8a01-8524b3893b0c
出现了以下错误
Error: Connection activation failed: No suitable device found for this connection (device enp0s13f0u1u4 not available because profile is not compatible with device (mismatching interface name)).
我不太明白为什么提供有线连接的 enp0s13f0u1u4 为什么会出现在这,google 后也没发现我想要的答案,我猜也许我的笔记本设备不支持 wpa3。lspci -k 后找到无线 controller/adapter 为“Intel CorporationIce Lake-LP PCH CNVi”,subsystem 是“Intel Corporation Device 0234”,在 https://www.intel.com/content/www/us/en/support/articles/000054783/wireless.html 中没有出现,大概就是设备不支持 wpa3 了。
/etc/NetworkManager/system-connections/hotspot.nmconnection 下的内容如下,我没发现可疑的地方。
[connection]
id=hotspot
uuid=95dcd2ed-3c46-444a-8a01-8524b3893b0c
type=wifi
interface-name=wlan0
timestamp=1652198482
[wifi]
band=a
cloned-mac-address=random
mode=ap
ssid=hotspot
[wifi-security]
key-mgmt=sae
psk=mypassphrase
[ipv4]
method=shared
[ipv6]
addr-gen-mode=stable-privacy
method=shared
[proxy]
但是把 key-mgmt=sae 改为 key-mgmt=wpa-psk 就能正常启用连接,不过这时 ipad 会提示 weak security.
我在 802-11-wireless-security 文档 中也没有找到更多的参数,其他相关的可参考文档也没有找到,各大问答社区也没有我想要的内容。
我还尝试使用 iwd 作为 NetworkManager 后端,方法参考了 https://iwd.wiki.kernel.org/networkmanager#converting_network_profiles。配置大致如下。
/etc/NetworkManager/conf.d/wifi_backend.conf
[device]
wifi.backend=iwd
wifi.iwd.autoconnect=yes
[main]
iwd-config-path=auto
结果也是一样,wpa3 连接照常报同样的错误,但是把 key-mgmt=sae 改为 key-mgmt=wpa-psk 就能正常启用连接。
所以我暂时放弃了 wpa3 的折腾,尝试使用 only wpa2。这时我换回了默认的 wpa_supplicant 后端,因为我认为不必要的修改越少越好。
[h]尝试建立 only wpa2 热点[/h]
nm-applet 不支持直接设置 only wpa2,我在 /etc/NetworkManager/conf.d/wifi_backend.conf 下作了些修改,参考了 802-11-wireless-security 文档 以及 WPA_supplicant的設定方式 中的选项。
/etc/wpa_supplicant/wpa_supplicant.conf 配置
# Giving configuration update rights to wpa_cli
ctrl_interface=/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=1
# AP scanning
ap_scan=1
/etc/NetworkManager/system-connections/hotspot.nmconnection 仅作了以下修改。
key-mgmt=wpa-psk
pairwise=ccmp
group=ccmp
proto=rsn
psk=mypassphrase
现在热点倒是能正常建立了。但是 ipad 是连接不了热点的,虽然能够扫描到热点,能够正确识别密码,但就是会提示连接失败,不过不告诉你具体原因。
于是再次谷歌,在 https://raspberrypi.stackexchange.com/questions/112280/issue-with-some-devices-not-connecting-to-raspberry-pi-set-up-as-ap 以及 https://bugzilla.redhat.com/show_bug.cgi?id=2057352 发现这可能是 wpa_supplicant 的问题。
所以我又切换到了 iwd 的后端,配置和上面提到的一样,这时热点也是正常建立。使用 ipad 连接此热点会提示 Legacy Acceess Point 802.11b provides suboptimal performance。这时网络是正常可用的。但是默认使用 802.11b 让我很沮丧。
我要如何使热点采用 802.11n/ac router 呢?在网上查了好久,都不是我想要的答案,于是又尝试转向 hostapd,我发现 hostapd 的配置文件 /etc/hostapd/hostapd.conf 中有个很方便的参数,叫 hw_mode,可以直接实现这一点,可是我不知道在 NetworkManager 的配置文件中如何实现类似的效果,我也不知道去哪找了。
[h]问题总结[/h]
- 为什么 nmcli con up uuid 95dcd2ed-3c46-444a-8a01-8524b3893b0c 的报错会出现有线 controller(具体见上文)?这是什么意思?
- Networkmanager (iwd 后端) 要如何修改配置文件以实现 802.11n/ac 的连接?哪里又可以找到相关的详尽的文档?