
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」