使用systemd-networkd配置无线¶
本质上,无线网络的配置都是通过 使用wpa_supplicant连接无线网络 来实现的,网络配置管理工具 netplan网络配置 、 NetworkManager 在管理无线网络底层都是使用 wpa_supplicant
,区别只是配置方式,底层都是调用 wpa_supplicant
。
Systemd Networkd服务 也是一种配置管理工具,同样可以结合 wpa_supplicant
管理无线网络。
由于当前 systemd
已经成为主要的系统管理框架和组件集,所以使用 systemd-networkd
结合 wpa_supplicant
实现无线网络管理,就是一种非常简洁并且不需要第三方管理工具的实现方法。
systemd-networkd配置¶
所有位于 /etc/system/network/
目录下 .network
配置文件都会匹配一个设备实现网络配置。我已经展示了 Systemd Networkd服务 配置有线网络,相似的,我们可以启用无线接口 wlan0
对应配置文件 20-wlan0.network
(这个文件名只要以 .network
结尾即可,文件名无要求)
1[Match]
2Name=wlan0
3[Network]
4DHCP=yes
配置5GHz无线网络的国家代码
/etc/default/crda
(重要:对于使用5GHz无线必须配置) :
1REGDOMAIN=CN
创建
/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
:
1ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
2update_config=1
3
4network={
5 ssid="office"
6 key_mgmt=WPA-EAP
7 identity="USERNAME"
8 password="PASSWORD"
9}
10network={
11 ssid="home"
12 key_mgmt=WPA-PSK
13 psk="PASSWORD"
14}
启用 systemd-neworkd wpa_supplicant 服务:
systemctl enable wpa_supplicant@wlan0 systemctl start wpa_supplicant@wlan0
然后检查systemd服务:
systemctl status wpa_supplicant@wlan0
可以看到 wpa_supplicant@wlan0.service
对应读取配置是 /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
就是我们上面配置的wpa_suplicant对应配置文件
● wpa_supplicant@wlan0.service - WPA supplicant daemon (interface-specific version)
Loaded: loaded (/lib/systemd/system/wpa_supplicant@.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-03-07 00:02:30 CST; 4s ago
Main PID: 7738 (wpa_supplicant)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/system-wpa_supplicant.slice/wpa_supplicant@wlan0.service
└─7738 /sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -Dnl80211,wext -iwlan0
Mar 07 00:02:30 pi400 systemd[1]: Started WPA supplicant daemon (interface-specific version).
Mar 07 00:02:30 pi400 wpa_supplicant[7738]: Successfully initialized wpa_supplicant
Mar 07 00:02:33 pi400 wpa_supplicant[7738]: wlan0: Trying to associate with SSID 'office'
然后检查
ip addr
就可以看到无线网卡获得的IP地址并能够连接internet。