それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ubuntu で systemd-networkd + wpa_supplicant を使ってWiFi接続

netplanを敢えて使わないという選択肢。

ubuntu では netplanを使うのだが、macvlan / vlan など凝った設定は非対応なのでsystemd-netword を使うことになる。だったらWifiもnetplanをやめて systemd/networkに設定を統一したい

systemd/network に設定を集約

netplan と systemd/networkdに設定が分散が好ましくないと判断した。wifi 設定を systemd/network に持ち込むことにした。

設定箇所

設定箇所は2つである。

  • /etc/systemd/network
  • wpa_suppicant

もしすでにnetplanでwifi接続していたら削除する

  • netplan のwifi 設定解除

バイス名に注意

今回使うwifiバイスwlan0なので、その名前を指定する。設定ファイル名は命名規則があって、デバイス名をちゃんと入れないと駄目なようだ。

systemd/networkにwifi 設定を書く

/etc/systemd/network/00-wlan0.network を作成

cat  <<EOS | sudo tee /etc/systemd/network/00-wlan0.network
[Match]
Name=wlan0
SSID=AEBE1345A  

[Network]
DHCP=yes
EOS

これで、systemd-networkの設定をすることができる。

wpa_suppicant の設定

wpa_supplicant は、ssidパスフレーズファイルと、サービス起動の2つ

wpa_supplicant-wlan0.conf ファイルの作成

echo PASS | \
  sudo wpa_passphrase SSID | \
  sudo tee /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

実行すると入力待ちになるので、wifi パスフレーズを入力する。

wpa_supplicant の起動

wpa_supplicant を起動してやる。

sudo systemctl enable wpa_supplicant@wlan0
sudo systemctl start wpa_supplicant@wlan0

netplan の除去

neplanの設定が生きている場合は、netplanの設定を除去してやる

sed  -i .back 's/^/#/g'  /etc/netplan/50-cloud-init.yaml # ファイルは状況によって異なる。

netplanの生成

sudo netplan --debug generate 
sudo netplan --debug apply

これで、netplan はオフになる。ただし、Wifi経由で接続中であれば注意すること。

ネットワーク再起動

最後にネットワークを起動してやる

sudo systemctl restart systemd-networkd.service

再起動後にネットワークを確認

sudo ip addr show dev wlan0

ip がDHCPから降って来るはずである。

参考資料

https://pig.hatenadiary.com/entry/2016/12/29/121539