Taking Back Control from systemd Networking
systemd is a software suite that is common to many Linux distributions. Although useful,
systemd is hard to configure and is too bloated. With
systemd, the current networking configuration of the computer becomes much less transparent and manageable, and this is not ideal when managing a networked server. This guide therefore describes how to disable some
systemd services, specifically for Ubuntu Server 18.04.
First, we can revert the networking service to the original Debian
/etc/network/interfaces style of configuring the network:
sudo apt-get update sudo apt-get install ifupdown
/etc/network/interfaces using the handy Debian guide. Next, we disable the
systemctl stop systemd-networkd.socket systemd-networkd \ networkd-dispatcher systemd-networkd-wait-online systemctl disable systemd-networkd.socket systemd-networkd \ networkd-dispatcher systemd-networkd-wait-online
We can also remove
netplan, as it is no longer used.
sudo apt -y purge netplan.io
systemd also has a DNS resolver, but we can disable that:
sudo systemctl disable systemd-resolved.service sudo systemctl stop systemd-resolved
Delete the symlink
/etc/resolv.conf, so that we can edit it.
sudo rm /etc/resolv.conf
Create a new
resolv.conf file, and input the DNS Server that you would like to use.
sudo nano /etc/resolv.conf
For example, my file contains:
Note that the
/etc/resolv.conf file will not be automatically updated by your DHCP client unless you delete the following file:
sudo rm /etc/dhcp/dhclient-enter-hooks.d/resolved
Update November 2019
Here are two more tips for making a server more manageable. Remove openresolv, with
sudo apt remove openresolv. Finally, remove the DHCP client altogether, with
sudo apt purge dhcpcd5 isc-dhcp-client isc-dhcp-common