This is an old revision of the document!
Table of Contents
Debian Networking
On a typical Debian-based distribution, you have three major packages available for that purpose:
- ifupdown (daemon: networking)
- NetworkManager
- systemd (daemon: systemd-networkd)
In general, you should choose one and stick to it, even if ifupdown works well with NetworkManager it can still creates unexpected configuration issues.
ifupdown
Quite deprecated but reliable, you might encounter it on many older systems. The config is stored in /etc/network/interfaces and managed by the networking.service daemon which is a wrapper around the ifup and ifdown commands which are also wrappers themselves around ifconfig (or ip for ifupdown2).
Read the man at ifupdown.
NetworkManager
Usually included with desktop distributions since many graphical front-ends are available, the config is stored in /etc/NetworkManager and managed by the NetworkManager.service daemon.
You can manage the config with the included nmcli or nmtui utilities.
Read the man at NetworkManager.
systemd-networkd
Usually used on server distributions and the official successor to ifupdown as it is included within systemd, the config is stored in /etc/systemd/network and managed by the systemd-networkd.service daemon.
Read the man at systemd-networkd. dhclient
Although not a daemon, dhclient from isc-dhcp-client is nonetheless a very important package and often required on desktop distributions as you often need to obtain a IPv4 from a DHCP server.
Hopefully, as IPv6 (which uses SLAAC) is slowly being adopted, this will probably change in a near or distant future.
