systemd-networkdを使って固定IPを簡単に設定する
Debianで固定IPにするとき、以前は/etc/network/interfacesや/etc/network/interfaces.d/以下に設定を書いたり、Network-managerのnmcliを使って設定していましたが今はsystemd-networkdを使えば簡単に固定IPにできるのでメモ。
- 参考
- SystemdNetworkd - Debian Wiki: https://wiki.debian.org/SystemdNetworkd
- systemd-networkd - ArchWiki: https://wiki.archlinux.jp/index.php/Systemd-networkd
- Debian Bullseye(11)での固定IP設定をsystemdでする - Qiita: https://qiita.com/dj5fs/items/995a156a9f161f640a31
はじめに/etc/network/にあるinterfacesをリネームして保存します。使わないので無くてもよいのですが念の為に保存しておきます。
cd /etc/network/
sudo mv interfaces interfaces.save
systemd-networkdを有効にします。
sudo systemctl enable systemd-networkd
ip aでNICの名前を確認します。名前がens18とわかったので控えておきます。
ip a
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 5e:9d:bb:f7:83:b6 brd ff:ff:ff:ff:ff:ff
altname enp0s18
inet 192.168.0.110/24 brd 192.168.0.255 scope global ens18
/etc/systemd/network/以下にlan0.networkという名前で以下のようにNICの設定ファイルを作成します。
[Match]
Name=ens18
[Network]
Address=192.168.0.110/24
Gateway=192.168.0.100
DNS=192.168.0.100
設定ファイルの詳細はman systemd.networkをすると丁寧に説明してあるので、それを見てもらうとして、これを説明するとMatchセクションのNameに調べておいたNICのデバイス名、Networkセクションには、ネットワークのそれぞれの設定を書いています。
あとはこれでマシンを再起動すれば、NICを固定IPにする設定は終わりです。超簡単!
今回初めてsystemd-networkdを使ったけど、調べてみると細かい設定がいろいろできるようなので、これからネットワーク周りはsystemd-networkdを使うのが良さそう。
20240208追記: 以前ここに書いていたsystemd-networkdでIPエイリアスを設定する方法はこちらに移動しました→「【2024年令和最新版】いまどきのDebianで1つのNICに複数IPを設定するIPエイリアスを設定するには | Days of speed」