我遇到了 Netplan 无法连接到隐藏 SSID 的 WiFi 网络的问题。如果我让这个网络可见,它就会运行良好。但是隐藏的就没办法了。有什么选项可以配置它吗?
答案1
根据我对官方源代码的阅读,这还不起作用。Netplan 将 WiFi 连接委托给 wpa_supplicant,但没有规定发出 wpa_supplicant 期望的“scan_ssid=1”配置行。
参见write_wpa_conf():https://github.com/CanonicalLtd/netplan/blob/1265de994bd1ff5e1dad573d816b9201127206b3/src/networkd.c
但是,通过严重滥用 SSID 名称中的字符串转义,我的连接确实可以正常工作。
"MYREALSSID\"\n scan_ssid=1\n# \"hack!":
password: "MYSSIDPASSWORD"
最终变成:
network={
ssid="MYREALSSID"
scan_ssid=1
# "hack!"
psk="MYSSIDPASSWORD"
}
(请注意吞掉打开的双引号的注释)。
答案2
自 0.100 版本起,Netplan 已更新,现在允许使用该hidden
关键字。
根据批准的 PR:
要检查您是否拥有最新版本,请检查man netplan
并查找hidden
(bool) 关键字。
建议方式:
man netplan | grep hidden
根据手册页的示例用法(hidden: true
):
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"SSID_name":
hidden: true
password: "WiFi_password"
答案来源: 文档|经验|实地测试