To permanently change the default route for Ethernet on Fedora 41, you must configure NetworkManager to prioritize the wired interface over Wi-Fi. This is achieved by setting a lower metric value for the Ethernet connection profile, ensuring that all outbound traffic uses the physical cable unless it fails. The following guide details the precise steps using the command-line tool
nmcli to adjust these routing priorities effectively.
Understanding Network Metrics in Fedora
Fedora 41 utilizes NetworkManager as its primary network management daemon. By default, NetworkManager assigns metrics to connections based on their type and speed. Wi-Fi connections often receive higher metrics (lower priority) than Ethernet because Ethernet is generally faster and more stable. However, if your system has multiple active interfaces or if the default configuration has been altered, the default route might not point to the Ethernet adapter as expected.
The metric is a numerical value assigned to a route. In routing tables, a lower metric indicates a higher priority. When multiple routes exist for the same destination (such as the default gateway
0.0.0.0/0), the kernel selects the route with the lowest metric. Therefore, to force the system to use Ethernet, we need to ensure its metric is strictly lower than that of any other active interface, such as Wi-Fi or virtual adapters.
Identifying Current Connection Profiles
Before making changes, it is crucial to identify the exact names of your network profiles. NetworkManager stores configurations as "connections," which can be named arbitrarily during setup. You can list all available connections along with their current status and types using the following command:
nmcli connection show
Look for entries associated with your Ethernet adapter. These are typically named something like "Wired connection 1" or contain the word "ethernet." Note the UUID or the exact name of this profile, as you will need it for subsequent commands. Similarly, identify your Wi-Fi connection profile name. If you have multiple Ethernet connections saved, choose the one currently active or the one you intend to use as the primary path.
Modifying the Ethernet Metric
Once you have identified the correct Ethernet connection name, you can modify its metric. This process involves two main steps: first, ensuring the connection is set to autoconnect, and second, explicitly setting the IPv4 and IPv6 metrics to a low value, such as
100. A value of
100 is significantly lower than the default Wi-Fi metric, which is often around
600 or higher depending on signal strength and driver specifics.
Execute the following command to set the IPv4 metric for your Ethernet connection. Replace
Ethernet-Connection-Name with the actual name found in the previous step:
nmcli connection modify "Ethernet-Connection-Name" ipv4.metric 100
Repeat this process for IPv6 if you utilize dual-stack networking:
nmcli connection modify "Ethernet-Connection-Name" ipv6.metric 100
It is important to note that changing the metric does not immediately apply to an already established session. The new metric will take effect the next time the connection is activated or reactivated. To verify the change was saved, you can view the specific properties of the connection:
nmcli connection show "Ethernet-Connection-Name" | grep metric
This output should confirm that both
ipv4.metric and
ipv6.metric are set to
100.
Reactivating the Connection
For the changes to take immediate effect without rebooting, you should deactivate and then reactivate the Ethernet connection. This forces NetworkManager to recalculate the routing table with the new metric values. Use the following commands:
nmcli connection down "Ethernet-Connection-Name"
nmcli connection up "Ethernet-Connection-Name"
After reactivation, verify that the default route points to the Ethernet interface by checking the routing table:
ip route show default
You should see the default route associated with the Ethernet device's gateway. If you have Wi-Fi enabled simultaneously, ensure that its metric remains higher than
100. If necessary, you can also explicitly set the Wi-Fi metric to a higher value, such as
1000, to guarantee precedence:
nmcli connection modify "Wi-Fi-Connection-Name" ipv4.metric 1000
Troubleshooting Persistent Routing Issues
In rare cases, other services or scripts may override NetworkManager settings. If the default route still does not follow the Ethernet interface after applying the above steps, check for conflicting configurations. Ensure that no static routes are defined in
/etc/sysconfig/network-scripts/ or via systemd-networkd, although Fedora 41 primarily relies on NetworkManager.
Additionally, verify that the Ethernet link is physically connected and recognized by the kernel. You can check the link status using:
nmcli device status
If the Ethernet device shows as "connected" but the route is incorrect, try clearing the connection cache and restarting the NetworkManager service:
sudo systemctl restart NetworkManager
This ensures that all persistent configurations are reloaded from disk. For further assistance with broader network connectivity problems, you might find resources on troubleshooting shared drive issues helpful, as they often involve similar routing and interface prioritization concepts. See
Troubleshooting Network-Shared Hard Drive Connection Issues with Samba for related diagnostic techniques.
Frequently Asked Questions
Will changing the metric disconnect my internet temporarily?
Yes, briefly. When you modify the metric and reactivate the connection, there is a momentary loss of connectivity as the interface goes down and back up. Plan accordingly if you are managing the machine remotely.
Can I set the metric to zero for maximum priority?
Technically yes, but it is unnecessary. A metric of
100 is sufficiently low to beat Wi-Fi and most virtual adapters. Setting it to zero is valid but offers no practical advantage over
100 in standard desktop environments.
What happens if the Ethernet cable is unplugged?
NetworkManager will automatically failover to the next best route, which is likely your Wi-Fi connection if it has a higher metric. This provides seamless redundancy without manual intervention.
Does this setting persist across reboots?
Yes. Because you are modifying the persistent connection profile stored by NetworkManager, the metric settings are saved to disk and applied every time the system starts or the connection is activated.
How do I revert the changes if something goes wrong?
You can reset the metric to its default value by omitting the metric argument or setting it to
-1 (which lets NetworkManager auto-calculate). Use:
nmcli connection modify "Name" ipv4.metric -1.