From my knowledge there are three different network configuration manager available in Ubuntu: ifupdown, networkd and NetworkManager.
- ifupdown is not really used anymore, maybe on Ubuntu-Server or in cloud environments.
- Config space: /etc/network
- networkd is part of systemd and configured under "/etc/systemd/networkd.conf" (see
man networkd.conf
). This is usually not used on Ubuntu desktop, because there is no GUI (correct me if I am wrong) available.
- Config Space: /etc/systemd/networkd.conf
- Commandline Tool: networkctl
- NetworkManager is usually the standard on Ubuntu-Desktop and configured via the settings-Gui.
- Config space: /etc/NetworkManager
- Commandline Tool: nmcli
These are the three. Now, you will ask about "netplan" ...
Depending if Desktop or Server, you have two different tools responsible for network, but you want to configure a "default" independent of these. Or second use-case would be to switch between them.
This part is done by "netpan". It configures some kind of "suggestion" or "second config" for the two. netplan does this by creating config files in "/run".
- NetworkManager uses first "/etc/NetworkManager" and if nothing found there it uses the config in "/run/NetworkManager" which is written by netplan (see
man NetworkManager.conf
for details)
- networkd does the same with "/etc/system/network.conf" and "/run/systemd/network".
Summary: If networkd or NetworkManager are not configured then netplan provides a configuration.
BUT as I said, the config in "/etc" of networkd or NetworkManager has higher priority as the one written by netplan to "/run".
The network tool ip
from package "iproute2" is used for manually temporary network config changes. All changes made by ip
commands are immediately active, but are not written to a configuration file. Latest on next reboot all changes are gone.
That's a rough overview.
I am sure you find detailed description about each of the network tools for detailed configuration.