最近はUbuntuやCentOSなどGUI操作のNetworkManagerがデフォルトのディストリビューションが増えてきた。systemd-networkdはCUI操作だが設定方法がシンプルで分かりやすく個人的には好み。
WiFi接続の設定もwpa_supplicantを使えば特に難しくもない。
今回は、ArchLinuxのネットワークをsystemd-networkdとwpa_supplicantを使って設定する。
systemd-networkdの有効化
systemd-networkdはデフォルトで有効化されていない。有効化。
$ sudo systemctl enable systemd-networkd
$ sudo systemctl start systemd-networkd
アダプタの状態を確認
$ networkctl -a
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 enp9s0 ether off unmanaged
3 wlp2s0 wlan off unmanaged
3 links listed.
有線LANアダプタの名称(ether)はenp9s0で無線LANアダプタ(wlan)の名称はwlp2s0と確認出来る。
有線LANアダプタの設定
/etc/systemd/network/の下に任意のファイル名で設定ファイルを用意する。
DHCP環境であれば簡単。
/etc/systemd/network/enp9s0-static.network
[Match]
Name=enp9s0
[Network]
DHCP=ipv4
固定IPアドレスなら、[Network]セクションを以下のように設定。(この他にルーティングやDNSの設定が必要だが今回は割愛)
[Network]
Address=192.168.11.1/24
設定ファイルの読み込みとsystemd-networkdの再起動。
$ sudo systemctl daemon-reload
$ sudo systemctl restart systemd-networkd
無線LANアダプタの設定
追加パッケージのインストール
iwとwpa_supplicantが必要。
$ sudo pacman -S iw wpa_supplicant
systemd-networkdの設定
ネットワークの設定をしないと無線LANアダプタに電源が入らないので、先にsystemd-networkdの設定をしておく。
/etc/systemd/network/wlp2s0-static.network
[Match]
Name=wlp2s0
[Network]
DHCP=ipv4
$ sudo systemctl restart systemd-networkd
アダプタの状態をnetworkctlで確認する。wlanアダプタはconfiguringになっているのがわかる。
$ networkctl -a
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 enp9s0 ether routable configured
3 wlp2s0 wlan no-carrier configuring
3 links listed.
WiFiアクセスポイントを検索する
iwで周囲のアクセスポイント検索。
$ sudo iw dev wlp2s0 scan | grep SSID
WiFiアクセスポイントに接続する
wpa_supplicantの設定ファイルを用意する。network=に複数のアクセスポイントを書いておくと、接続出来る所につながる。
wpa_supplicant-wlan0.conf
ctrl_interface=DIR=/var/run/wpa_supplicant
update_config=1
country=JP
ap_scan=1
network={
ssid="SSID1"
psk="SSID1の暗号化キー"
key_mgmt=WPA-PSK
}
network={
ssid="SSID2"
psk="SSID2の暗号化キー"
key_mgmt=WPA-PSK
}
wpa_supplicantを実行して接続。
$ sudo wpa_supplicant -Dwext -iwlp2s0 -cwpa_supplicant-wlan0.conf
まとめ
systemd-networkdによるネットワーク設定は/etc/systemd/network/の下に簡単な設定ファイルを置いておけばOK。
無線LANの場合はこの他に、アクセスポイントの情報を設定ファイルに書いてwpa_supplicantを実行する。
GUI操作のNetworkManagerのように自動で色々やってくれるような気の利いたところは無いが、ifupdownの時代よりCUI操作のネットワーク設定もシンプルでわかりやすくなったと思う。
コメント