Home > Package & System Management > systemd-networkd

systemd-networkd: Network Configuration Management Daemon

systemd-networkd, part of the systemd suite, is a daemon for managing network device configuration on Linux systems. It uses .network files to declaratively automate and manage IP addresses, routing, and DNS settings for various network interfaces such as Ethernet, Wi-Fi, bridges, and VLANs. It initializes network services at system boot and handles network changes during runtime.

Overview

systemd-networkd is a core component of systemd for configuring and managing network interfaces. It operates based on configuration files, helping to manage complex network environments in a consistent and predictable manner.

Key Features

  • Declarative Configuration: Define network configurations via .network files.
  • Support for Various Interfaces: Ethernet, Wi-Fi, bridges, bonding, VLANs, etc.
  • Built-in DHCP client/server functionality.
  • Support for static IP address and routing configurations.
  • Tight integration with systemd services.

Key Options

While systemd-networkd is primarily managed as a service via systemctl, it has a few options that can be used when executed directly.

General Options

Generated command:

Try combining the commands.

Description:

`systemd-networkd` Executes the command.

Combine the above options to virtually execute commands with AI.

Usage Examples

systemd-networkd is primarily managed as a service using systemctl commands. Here are some common usage examples.

Enable and Start systemd-networkd Service

sudo systemctl enable systemd-networkd.service
sudo systemctl start systemd-networkd.service

Enable the service to start automatically on system boot and start it immediately.

Check systemd-networkd Service Status

sudo systemctl status systemd-networkd.service

Check the current status of the systemd-networkd service.

Reload Network Configuration After Changes

sudo systemctl reload systemd-networkd.service

After modifying `.network` files, reload the configuration without restarting the service.

Check Network Status with networkctl

networkctl status

networkctl is a utility that displays the status of network interfaces managed by systemd-networkd.

Validate Configuration Files

sudo systemd-networkd --test

Check for syntax errors and other issues in new `.network` files before applying them.

Tips & Notes

Tips and important considerations for effectively using systemd-networkd.

Configuration File Paths

systemd-networkd reads .network files from the following directories. Files in directories with lower numbers have higher priority.

  • /etc/systemd/network/: User-defined configurations (highest priority)
  • /run/systemd/network/: Runtime-generated configurations (e.g., DHCP client)
  • /usr/lib/systemd/network/: Distribution default configurations (lowest priority)

Conflicts with Other Network Managers

Enabling systemd-networkd alongside other network managers like NetworkManager or netplan can lead to conflicts. It is generally recommended to have only one network manager active on a system.

  • Do not use concurrently with NetworkManager.
  • If necessary, disable other network managers (e.g., sudo systemctl disable NetworkManager.service).

Debugging and Log Checking

When issues arise, it is crucial to check the logs of systemd-networkd using journalctl.

  • Check service logs with journalctl -u systemd-networkd.service.
  • View real-time logs with journalctl -u systemd-networkd.service -f.
  • For detailed logs, use the --debug option or set LogLevel=debug in /etc/systemd/systemd-networkd.conf.


Same category commands