systemd-networkdを使って固定IPを簡単に設定する

nogajun
nogajun

Debianで固定IPにするとき、以前は/etc/network/interfaces/etc/network/interfaces.d/以下に設定を書いたり、Network-managerのnmcliを使って設定していましたが今はsystemd-networkdを使えば簡単に固定IPにできるのでメモ。


はじめに/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