What are the essential tools and steps for Linux network configuration and how can system administrators manage connections using Netplan, networkd, or NetworkManager?

This blog provides a detailed overview of how Linux handles network configuration, the role of essential components like Netplan, networkd, and NetworkManager, and where configuration files are located. Understanding Linux networking is critical for ensuring system connectivity, especially in enterprise or server environments. Whether you're configuring a static IP or troubleshooting connectivity, mastering Linux network configuration enables seamless communication across systems.

Table of Contents

In Linux-based systems, network configuration is a vital part of system setup and maintenance. Whether you're managing a personal computer, a virtual machine, or a large-scale server, ensuring correct network settings allows your system to communicate with others via the Internet Protocol (IP) and other communication standards. Without a properly configured network, a Linux system remains isolated, unable to send or receive data from other devices.

This blog explores the essentials of Linux network configuration, the tools involved, and best practices for maintaining robust connectivity.

Why Is Network Configuration Important in Linux?

Network configuration enables a system to:

  • Connect to the internet or other systems

  • Communicate over local area networks (LANs)

  • Receive updates or data from remote servers

  • Support applications like SSH, HTTP servers, and database access

Today, most Linux systems communicate using the Internet Protocol (IP), making IP configuration essential for modern system operations.

Where Is Network Configuration Stored in Linux?

In most Linux distributions, network configuration files are stored in one of the following directories:

  • /etc/network/: Found primarily in older or Debian-based systems (like Ubuntu).

  • /etc/Netplan/: Modern Ubuntu systems use Netplan for declarative network configuration.

  • /etc/systemd/network/: This is used by systemd-networkd, especially in minimal or server environments.

  • /etc/NetworkManager/: Used by GUI-based systems or desktops for dynamic configuration and control.

Each of these systems may use different syntax and file structures but ultimately control how your device connects to networks.

Common Tools and Services for Network Configuration

Let’s go over the key tools used in managing network settings in Linux.

1. Netplan

Netplan is a new network configuration abstraction tool introduced by Ubuntu from version 17.10 onward. It uses YAML-based configuration files located in /etc/netplan/ to define network settings. Netplan then applies those settings using either networkd or NetworkManager.

Example Netplan YAML Configuration:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: true

This tells Netplan to use DHCP for interface enp0s3.

2. systemd-networkd

systemd-networkd is a system service that manages network configurations via .network and .netdev files under /etc/systemd/network/. It is lightweight and preferred in servers or container environments.

Advantages:

  • Fast and minimal

  • Integrates with systemd

  • Great for headless systems

Sample .network File:

[Match]
Name=enp0s3

[Network]
DHCP=yes

3. NetworkManager

NetworkManager is a full-featured network configuration system typically used on desktops and laptops. It supports dynamic configuration, Wi-Fi management, VPNs, and provides GUI tools like nm-applet and nmtui.

Useful commands:

  • nmcli device show

  • nmtui (text user interface)

  • nmcli con up

Config files location: /etc/NetworkManager/

Understanding Backends in Netplan

Netplan itself does not apply settings. Instead, it delegates to either:

  • NetworkManager: Often used for GUI desktops or dynamic connections (e.g., Wi-Fi).

  • networkd (systemd-networkd): Used in servers, minimal installs, or static environments.

You must specify the renderer (networkd or NetworkManager) in your Netplan config for proper application.

Basic Network Configuration Commands in Linux

Besides configuration files, Linux provides a suite of commands to view and manage network interfaces:

Command Purpose
ip a Show network interfaces and IPs
ifconfig Legacy tool to view interfaces
ip link set up/down Enable/disable an interface
ip route View routing table
ping Test connectivity
nmcli Manage NetworkManager connections
netplan apply Apply Netplan configuration
systemctl restart systemd-networkd Restart networkd

Static vs Dynamic IP Addressing

  • Dynamic (DHCP): System receives IP address from a router or DHCP server automatically.

  • Static: IP address is manually assigned in configuration files.

Example static IP config in Netplan:

ethernets:
  enp0s3:
    addresses:
      - 192.168.1.50/24
    gateway4: 192.168.1.1
    nameservers:
      addresses: [8.8.8.8, 8.8.4.4]

Best Practices for Linux Network Configuration

  • Backup config files before editing (cp /etc/netplan/*.yaml backup.yaml)

  • Use yamlint to validate YAML format if using Netplan

  • Prefer networkd for servers and NetworkManager for desktops

  • Always test changes before applying permanently

  • Keep a static IP for servers to ensure consistent connectivity

Conclusion

Configuring networks in Linux involves understanding how your system uses IP-based protocols and how tools like Netplan, NetworkManager, and systemd-networkd interact with hardware interfaces. While it may seem daunting initially, once you grasp the structure and purpose of each component, managing Linux network configurations becomes a powerful and flexible task.

With the right setup and command-line knowledge, you can ensure your system stays connected, secure, and ready for any networking task.

FAQs

What is Linux network configuration?

Linux network configuration refers to the setup of IP addresses, gateways, DNS, and routing to enable communication with other systems using protocols like TCP/IP.

Where are network settings stored in Linux?

Network settings are typically stored in /etc/network/, or managed by tools like Netplan (/etc/netplan/) or NetworkManager.

What is Netplan in Linux?

Netplan is a YAML-based network configuration abstraction that works with backends like networkd or NetworkManager to apply network settings.

What is the role of networkd?

systemd-networkd is a system service that manages network configurations using native systemd integration.

What is NetworkManager in Linux?

NetworkManager is a dynamic tool for managing network interfaces on Linux, commonly used in desktop environments.

How can I check current IP configuration in Linux?

Use the ip a or ifconfig command to check IP address assignments on interfaces.

How do I configure a static IP using Netplan?

You create or modify a YAML file in /etc/netplan/ and run sudo netplan apply to activate the settings.

Can I switch from NetworkManager to Netplan?

Yes, but ensure proper configurations are in place and disable conflicting services to avoid overlap.

How do I restart networking services in Linux?

Use commands like sudo systemctl restart NetworkManager or sudo netplan apply depending on the tool in use.

Is Netplan supported on all Linux distributions?

Netplan is default in Ubuntu from version 17.10 onwards, but not all distros use it by default.

What's the difference between Netplan and networkd?

Netplan is a configuration frontend, while networkd is a backend that actually applies the configurations.

Can I still use /etc/network/interfaces?

Yes, in older systems or those not using Netplan. However, newer distros have transitioned to Netplan or NetworkManager.

What does a Netplan YAML file look like?

It includes interface names, DHCP settings, static IPs, gateways, and DNS servers in a YAML structure.

How do I apply Netplan configuration?

Run sudo netplan apply after editing the configuration file.

Why is my Netplan configuration not applying?

Ensure the YAML syntax is correct, and that you are applying settings on the right interface.

How do I manage Wi-Fi in Linux?

Use nmcli, nmtui, or GUI tools with NetworkManager, or configure wpa_supplicant manually.

What’s the command to list active network interfaces?

Use ip link show or nmcli device status.

How do I assign multiple IPs to one interface?

You can use aliasing in older configs or add multiple addresses under Netplan or networkd settings.

How to debug networking issues in Linux?

Use tools like ping, traceroute, ip, netstat, or ss to diagnose network problems.

What does ip route do?

It shows the routing table and helps identify gateway configurations.

Can I use GUI tools for network setup?

Yes, especially with NetworkManager in desktop environments like GNOME or KDE.

How do I set DNS in Linux?

Through Netplan, /etc/resolv.conf, or using tools like nmcli to configure DNS servers.

What if I mess up my network config?

You may need to use a rescue shell or boot into recovery mode to manually fix configurations.

How can I test DNS resolution?

Use dig, nslookup, or host to test DNS name resolution.

Does Netplan support DHCP?

Yes, Netplan can be configured to use DHCP for dynamic IP assignment.

What is a MAC address and how do I find it?

It’s a hardware address of a network interface. Use ip link or ifconfig to see it.

Can I use Netplan for bridging or bonding?

Yes, Netplan supports advanced configurations like bridges, bonds, and VLANs.

How do I enable or disable an interface?

Use ip link set dev up/down or nmcli commands.

What’s the best method for configuring servers?

For static configurations and scripting, Netplan or systemd-networkd is preferred.

How often should I review network settings?

Anytime you change environments, hardware, or troubleshoot connectivity issues.

Is there a way to automate network configuration?

Yes, use Ansible or scripts to manage configurations across multiple systems.

Join Our Upcoming Class!