I'm trying to understand the relation between networking service and systemd-networkd.

I'm experimenting with ubuntu 20.01 server, which originally uses netplan to configure network. In some articles I've found online people propose removing both netplan and systemd-networkd and going with networking service only. I'd thought I give systemd-networkd a try so I removed netplan and configured systemd-networkd manually. Everything works well but I noticed that I also have networking service (which was there by default I guess ?).

systemctl status networking


ifquery: couldn't open interfaces file "/etc/network/interfaces": No such file or directory

Which I guess is normal since systemd is handling the interfaces. But different services (like postfix and bind) have created some files under /etc/network sub directories (if-up.d, if-down.d, etc.)

So, I understand networking service can work without systemd-networkd, but can it be the other way round (systemd-networkd without networking) ?

What is the relation and/or the difference between the two ? Is it ok to run both at the same time ?

Thanks in advance!


1 Answer 1


Yes, you can remove the ifupdown package if you have switched to using systemd-networkd to manage your networking. I have started doing this recently myself. You can run both at the same time, but need to put only one in charge of managing any given network interface. They both default to not managing interfaces, so just choose one to configure to manage your network interface, and the other will stay out of the way.

The ifupdown package is the traditional package debian has used to configure the network based on the config in /etc/network/interface, and so is still installed by default and often used on servers. These days the default desktop installs network-manager to manage networking, and has a gui. There are quite a few other packages to choose from.

ifupdown is based around some simple shell scripts that run during boot. systemd-networkd is part of the systemd init replacement and is a plug and play C coded system rather than being cobbled together from shell scripts. It is capable of managing network interfaces that are plugged in after boot time, and does not need to delay the boot process waiting arbitrarily to try and make sure that all network interfaces have been discovered before running shell scripts to manage them, so it should result in a slightly faster boot.

  • Thanks for your answer! One question though - in case I remove ifupdown, what will happen to scripts installed by postfix, bind and other services ? Actually, the question is not what will happen to the scripts but will the fact that these scripts are unavailable disturb the services ? Or how to migrate services to systemd-networkd (if needed) ?
    – golder3
    Mar 10, 2021 at 7:35
  • @golder3, I have no idea what business postfix could have installing ifupdown scripts, but they will be ignored if you are using systemd-networkd instead.
    – psusi
    Mar 10, 2021 at 19:23
  • In my case, after an update of Ubunto to 18.04+, I also had ifupdown scripts by postfix in /etc/network, but still switched to networkd, which ignore these scripts, and, thus far it works. It would be nice to know that indeed postfix does not use these scripts in 18.04+ and they are only leftover from the previous release.
    – Dominic108
    Feb 13, 2022 at 9:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .