Ubuntu Network Manager: Enabling and disabling NetworkManager on Ubuntu
NetworkManager is a backend service that controls the network interfaces on your Ubuntu operating system. An alternative to NetworkManager is systemd-networkd. On Ubuntu desktop, network manager is the default service that manages network interfaces through the graphical user interface. Therefore, If you want to configure IP addresses via GUI, then the network-manager should be enabled.
An Alternative to Ubuntu network manager is systemd-networkd, which is the default backend service in Ubuntu server 18.04.
So if you want to disable the NetworkManager, then the networkd service should be enabled, while it is better to disable networkd service when network manager is running.
Disable Network Manager and enable systemd-networkd
First, run the following set of commands to disable the NetworkManager:
sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager sudo systemctl mask NetworkManager
Next, start and enable the systemd-networkd service:
sudo systemctl unmask systemd-networkd.service sudo systemctl enable systemd-networkd.service sudo systemctl start systemd-networkd.service
Add the interface configuration to the netplan config file (in the /etc/netplan directory):
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: yes
Apply the changes by running the following command:
sudo netplan apply
In the preceding example, we configured the enp0s3 interface to lease IP addresses from the DHCP Server. If you want to set static IP addresses, Click on the following link to learn how to configure static IP address with netplan.
Enable NetworkManager and Disable systemd networkd
Starting and enabling Ubuntu Network Manager can be done with the following steps (Which is not recommended in Ubuntu server).
First, stop the systemd-networkd service:
sudo systemctl disable systemd-networkd.service sudo systemctl mask systemd-networkd.service sudo systemctl stop systemd-networkd.service
Install NetworkManager on Ubuntu:
sudo apt-get install network-manager
Open the .yaml config file inside the /etc/netplan directory and replace the existing configuration with following:
network: version: 2 renderer: NetworkManager
Generate backend specific configuration files for NetworkManager with netplan command:
sudo netplan generate
Start the NetworkManager Service:
sudo systemctl unmask NetworkManager sudo systemctl enable NetworkManager sudo systemctl start NetworkManager
Now the NetworkManager is enabled, interface configurations can be done via the GUI or from the command line, using the nmcli command.
While it is possible to manage networking on Ubuntu server via network manager, it has largely been replaced with Netplan. Therefore, it is recommended to use systemd-networkd on Ubuntu Server 18.04 and later.