To release a stale DHCP lease in Fedora 40 and later, use the
nmcli command to deactivate and reactivate your network connection. This forces NetworkManager to request a fresh IP address from the DHCP server, effectively clearing any cached or expired lease data that might be causing connectivity issues.
The Shift from Dhclient to NetworkManager
In older versions of Fedora and other Linux distributions, system administrators often relied on
dhclient as the primary tool for managing dynamic host configuration protocol (DHCP) leases. A common troubleshooting step involved running commands like
dhclient -r to release an existing lease before renewing it. However, starting with Fedora 40, the default network management stack has shifted significantly toward NetworkManager. This modern daemon handles networking tasks more intelligently, including DHCP interactions, making legacy tools less relevant or even obsolete for routine lease management.
NetworkManager provides a robust command-line interface called
nmcli that integrates deeply with the system's networking services. It manages connections through profiles stored in
/etc/NetworkManager/system-connections/. When you interact with
nmcli, you are not just sending raw packets; you are instructing the NetworkManager service to update its internal state regarding specific network interfaces. This abstraction layer ensures that changes are applied consistently across different types of connections, whether they are Wi-Fi, Ethernet, or virtual adapters.
Identifying Your Active Connection
Before attempting to drop a DHCP lease, you must identify which network connection profile is currently active. NetworkManager can manage multiple profiles simultaneously, but only one is typically active per device at any given time. To see a list of all available connections and their current status, open a terminal and run:
nmcli connection show --active
This command outputs a table showing the name of the connection, the type (e.g., ethernet, wifi), and the associated device. Look for the connection associated with your active network interface. The "NAME" column contains the identifier you will need for subsequent commands. If you have multiple active connections, ensure you target the correct one corresponding to the interface experiencing DHCP issues. For example, if your Ethernet port is named
eth0 but your connection profile is named "Wired Connection 1", you should use "Wired Connection 1" in your commands.
Releasing the Lease via Deactivation
The most reliable way to force NetworkManager to obtain a new DHCP lease is to toggle the connection state. This process mimics unplugging and replugging the cable, triggering a full renegotiation with the DHCP server. First, deactivate the connection using the following command, replacing
ConnectionName with the actual name identified in the previous step:
nmcli connection down ConnectionName
Once the connection is down, verify that the interface no longer holds an IP address by checking the status of the device or running
ip addr show. You should see that the interface has lost its IPv4 address. At this point, the old lease is effectively released because the client has stopped communicating with the DHCP server under that identity.
Next, bring the connection back up:
nmcli connection up ConnectionName
NetworkManager will detect that the connection is up but lacks an IP configuration. It will then initiate a new DHCP discovery process, broadcasting requests to locate a DHCP server. Upon receiving an offer, it will accept it, configure the interface, and update the routing tables. This sequence ensures that you are working with a completely fresh lease rather than trying to patch an existing, potentially corrupted one.
Verifying the New Lease
After bringing the connection back up, it is crucial to verify that the new lease was obtained successfully. You can check the details of the connection using:
nmcli connection show ConnectionName | grep ipv4.addresses
This command filters the output to show only the IPv4 addresses assigned to the connection. Ensure that the address matches what you expect from your local network. Additionally, you can check the DHCP lease information directly if your system logs it, or simply test internet connectivity by pinging a known external host. If the connection fails to acquire an IP, check the system logs using
journaldctl -u NetworkManager for any error messages related to DHCP timeouts or authentication failures.
For users who frequently encounter network issues, understanding the distinction between the connection profile and the physical device is vital. NetworkManager allows you to save settings in profiles, meaning you can switch configurations without physically changing cables. This flexibility is powerful but requires precise identification of the profile name when using CLI tools. If you find yourself needing to troubleshoot deeper network stack issues, such as DNS resolution problems, you might also look into how other services interact with your network configuration, similar to discussions found in
Dnsmasq Reads /etc/hosts, Ignores addn-hosts Configuration.
Frequently Asked Questions
Can I use dhclient with NetworkManager?
While
dhclient may still be installed, it is generally not recommended to run it manually while NetworkManager is active. Doing so can cause conflicts where both daemons try to manage the same interface, leading to unstable connections or dropped leases.
What if nmcli says the connection does not exist?
If you receive an error stating the connection does not exist, double-check the exact spelling of the connection name using
nmcli connection show. Names are case-sensitive and may include spaces or special characters depending on how they were originally created.
Does deactivating the connection disconnect me from the internet?
Yes, temporarily deactivating the connection will cut off network access until you reactivate it and successfully obtain a new IP address. Plan your maintenance windows accordingly to avoid unexpected downtime during critical operations.
How do I reset all network settings in NetworkManager?
There is no single command to reset all settings, but you can delete individual connection profiles using
nmcli connection delete ConnectionName. After deletion, reconnecting will prompt NetworkManager to create a new default profile based on current hardware and environment.
Why is my new IP address different from the old one?
DHCP servers often assign different IPs based on availability, lease time, or server policies. A different IP address after a renewal is normal behavior and indicates that the lease was successfully refreshed rather than extended identically.