Fedora 43 Network Configuration Guide

Network configuration is a fundamental skill for anyone working with Fedora 43, whether you’re a system administrator managing servers or a desktop user setting up your home network. Fedora 43 continues to use NetworkManager as its primary network management tool, offering robust capabilities through graphical interfaces, command-line utilities, and direct configuration file editing. This comprehensive guide walks you through every aspect of network configuration in Fedora 43, from basic setup to advanced configurations, ensuring your system connects seamlessly to any network environment.
Modern Linux distributions have evolved significantly in how they handle networking. Fedora 43 represents this evolution perfectly, moving away from legacy network scripts toward the more flexible and powerful NetworkManager framework. Understanding this tool empowers you to configure wired and wireless connections, set up static IP addresses, manage DNS servers, implement advanced networking features, and troubleshoot connectivity issues efficiently.
Understanding NetworkManager in Fedora 43
NetworkManager serves as the default network configuration daemon in Fedora 43, providing a unified interface for managing all types of network connections. The service runs continuously in the background, automatically detecting network hardware, managing connection profiles, and handling network transitions when you move between different networks.
The NetworkManager ecosystem consists of several key components that work together seamlessly. The nm-applet provides a system tray icon for quick access to network settings in desktop environments. The nmcli tool offers powerful command-line control for scripting and remote administration. Additionally, nmtui provides a text-based user interface for those who prefer terminal-based configuration without memorizing complex commands.
One significant advantage of NetworkManager over traditional network scripts is its ability to handle dynamic network environments automatically. It manages connection priorities, handles failover between interfaces, and maintains stable connectivity even as network conditions change. For laptops and mobile devices, this means seamless transitions between wired and wireless networks without manual intervention.
Prerequisites and Initial Setup
Before diving into network configuration, verify that NetworkManager is running on your Fedora 43 system. Open a terminal and execute the following command:
systemctl status NetworkManager
The output should indicate that the service is active and running. If NetworkManager isn’t running, start and enable it with these commands:
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
Understanding your network interface names is crucial for proper configuration. Modern Fedora systems use predictable interface naming schemes. Run this command to list all network interfaces:
ip link show
You’ll see interface names like enp3s0 for Ethernet cards or wlp2s0 for wireless adapters. The naming convention provides information about the hardware location: “en” indicates Ethernet, “wl” indicates wireless LAN, followed by the PCI bus location. Take note of your interface names as you’ll need them throughout the configuration process.
GUI-Based Network Configuration
Using GNOME Settings
Fedora 43’s default GNOME desktop environment provides an intuitive interface for network configuration. Access the network settings by clicking the system menu in the top-right corner, then selecting “Settings” followed by “Network”. This interface displays all available network connections and their current status.
For wired connections, click on the gear icon next to your Ethernet adapter. Here you can configure IPv4 and IPv6 settings, change connection priorities, and manage advanced options like MTU size and MAC address settings. The interface provides clear visual feedback about connection status, making it easy for beginners to understand their network state.
Connection profiles in the GNOME Settings allow you to save multiple network configurations for different environments. Create separate profiles for home, office, and public networks with appropriate security settings for each location. Simply click the “+” button to add new profiles or use the minus button to remove outdated ones.
NetworkManager Applet
The nm-applet system tray icon offers quick access to common networking tasks without opening full settings panels. Click the network icon to view available wireless networks, toggle connections on and off, or quickly switch between saved connection profiles. The applet displays signal strength for wireless connections and provides visual indicators when networks become available or unavailable.
Right-clicking the nm-applet icon reveals additional options including connection information, edit connections, and network settings shortcuts. This quick access proves invaluable when troubleshooting connectivity issues or switching networks frequently throughout the day.
Command-Line Network Configuration with nmcli
Basic nmcli Commands
The nmcli utility represents the most powerful tool for network configuration in Fedora 43. Its syntax follows a logical structure: nmcli [OPTIONS] OBJECT { COMMAND | help }. The primary objects you’ll work with include general, networking, radio, connection, device, agent, and monitor.
Check NetworkManager’s overall status with this simple command:
nmcli general status
This displays the current state, connectivity level, and whether wireless networking is enabled. To view all configured connections:
nmcli connection show
The output lists connection names, UUIDs, types, and associated devices. For detailed information about a specific connection, append its name to the command:
nmcli connection show "Wired connection 1"
Display the status of all network devices with:
nmcli device status
This command shows each device’s name, type, state, and active connection. For troubleshooting, the -t option produces terse output suitable for scripting, while -p creates pretty-formatted tables for easier reading.
Creating and Managing Connections
Creating a new connection profile using nmcli’s interactive editor provides a user-friendly approach to configuration. Start the editor with:
nmcli connection edit con-name MyConnection
The editor prompts you to specify the connection type. For standard Ethernet connections, enter “ethernet” when asked. The interactive prompt displays available settings and accepts commands like “set,” “print,” “save,” and “quit”.
Configure essential connection properties within the editor:
nmcli> set connection.autoconnect TRUE
nmcli> set connection.interface-name enp3s0
nmcli> set ipv4.method manual
nmcli> set ipv4.addresses 192.168.1.100/24
nmcli> set ipv4.gateway 192.168.1.1
nmcli> set ipv4.dns "8.8.8.8 8.8.4.4"
Review your configuration before saving:
nmcli> print
nmcli> save
nmcli> quit
For experienced users, nmcli offers one-line commands to modify existing connections. Modify a connection’s IP address with:
sudo nmcli con mod "Wired connection 1" ipv4.addresses "192.168.1.150/24"
Activate a connection immediately using:
sudo nmcli con up "Wired connection 1"
Deactivate connections when needed:
sudo nmcli con down "Wired connection 1"
Connection Profile Management
NetworkManager stores multiple profiles for different network scenarios. Delete unwanted connections with:
sudo nmcli con delete "Old Connection"
Clone existing profiles to create similar configurations quickly. The autoconnect property determines whether NetworkManager automatically activates a connection when its network becomes available. Disable autoconnect for guest networks or temporary connections:
sudo nmcli con mod GuestNetwork connection.autoconnect no
Connection priority determines which profile activates when multiple networks are available. Higher priority values take precedence. Set priority with:
sudo nmcli con mod HomeNetwork connection.autoconnect-priority 10
Configuring Static IP Addresses
Static IP via nmcli
Enterprise environments and server deployments often require static IP addresses for predictable network access. Configure a static IP address using nmcli by setting the IPv4 method to manual:
sudo nmcli con mod "Wired connection 1" ipv4.method manual
Next, assign the IP address with CIDR notation, gateway, and DNS servers:
sudo nmcli con mod "Wired connection 1" ipv4.addresses "192.168.1.100/24"
sudo nmcli con mod "Wired connection 1" ipv4.gateway "192.168.1.1"
sudo nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8 8.8.4.4"
The CIDR notation (/24) specifies the subnet mask, where /24 equals 255.255.255.0. Common subnet masks include /24 for 256 addresses, /16 for 65,536 addresses, and /8 for over 16 million addresses.
Apply changes by restarting the connection:
sudo nmcli con down "Wired connection 1"
sudo nmcli con up "Wired connection 1"
Verify the configuration took effect:
ip addr show enp3s0
The output should display your newly assigned static IP address. For adding multiple IP addresses to a single interface, use the “+” prefix:
sudo nmcli con mod "Wired connection 1" +ipv4.addresses "192.168.1.101/24"
Static IP via GUI
Graphical configuration offers a more intuitive approach for users uncomfortable with command-line tools. Open GNOME Settings, navigate to Network, and click the gear icon next to your Ethernet connection. Select the “IPv4” tab and change the method from “Automatic (DHCP)” to “Manual”.
Enter your desired IP address, netmask, and gateway in the provided fields. Add DNS servers in the DNS section, separating multiple entries with commas. Click “Apply” to save your configuration. The changes take effect immediately, and the interface displays the new IP address within seconds.
For temporary configurations or testing, the GUI allows you to revert to DHCP quickly without losing your static IP settings. Simply switch back to “Automatic (DHCP)” and your previous configuration remains saved for future use.
Configuring DHCP (Dynamic IP)
Dynamic Host Configuration Protocol (DHCP) automatically assigns IP addresses, reducing administrative overhead in most environments. Fedora 43 uses DHCP by default for most connections. To explicitly configure an interface for DHCP using nmcli:
sudo nmcli con mod "Wired connection 1" ipv4.method auto
This command tells NetworkManager to obtain an IP address, subnet mask, gateway, and DNS servers automatically from the network’s DHCP server. DHCP works well for home networks, guest access points, and environments where IP addresses change frequently.
Verify DHCP configuration with:
nmcli -f ipv4 con show "Wired connection 1" | grep method
The output should display “ipv4.method: auto”. If a connection previously used static IP addressing, setting it back to DHCP clears the manual IP configuration automatically.
DHCP lease renewal typically happens automatically, but you can force renewal by restarting the connection. NetworkManager handles lease management in the background, requesting renewals before leases expire to maintain uninterrupted connectivity.
Wireless Network Configuration
Connecting to Wi-Fi Networks
Wireless networking requires proper driver support and firmware for your Wi-Fi adapter. Most modern Wi-Fi cards work automatically in Fedora 43, but some devices need additional firmware packages. Check available firmware with:
sudo dnf search *-firmware
List nearby wireless networks using nmcli:
nmcli device wifi list
This displays SSID, signal strength, security type, and frequency for all detected networks. Connect to a wireless network directly from the command line:
sudo nmcli device wifi connect "NetworkName" password "YourPassword"
NetworkManager creates and saves a connection profile automatically, enabling automatic reconnection in the future. For networks without passwords, omit the password parameter:
sudo nmcli device wifi connect "OpenNetwork"
The GNOME Settings interface provides an even simpler wireless connection process. Click the network icon, select your desired network from the list, enter the password if required, and click “Connect”. The interface displays connection progress and confirms successful authentication.
Wireless Security Settings
Modern wireless networks use WPA2 or WPA3 encryption protocols for security. NetworkManager automatically detects the appropriate security protocol when you connect to a network. For manual configuration, specify the security type:
sudo nmcli con mod "WiFi Connection" wifi-sec.key-mgmt wpa-psk
sudo nmcli con mod "WiFi Connection" wifi-sec.psk "YourPassword"
Ad-hoc wireless networks enable direct computer-to-computer connections without an access point. Create an ad-hoc network with:
sudo nmcli con add type wifi ifname wlp2s0 con-name adhoc-network autoconnect no ssid MyAdhocNetwork mode adhoc
Wireless troubleshooting begins with checking hardware switches and software kill switches. Many laptops include physical switches or keyboard shortcuts that disable wireless adapters. Verify wireless isn’t disabled:
nmcli radio wifi
If it shows “disabled,” enable it with:
nmcli radio wifi on
Advanced Network Configurations
Network Bonding and Teaming
Network bonding combines multiple network interfaces into a single logical interface, providing redundancy and increased throughput. This configuration proves valuable for servers requiring high availability. Create a bonded interface using NetworkManager:
sudo nmcli con add type bond con-name bond0 ifname bond0 mode active-backup
Add slave interfaces to the bond:
sudo nmcli con add type ethernet slave-type bond con-name bond0-slave1 ifname enp3s0 master bond0
sudo nmcli con add type ethernet slave-type bond con-name bond0-slave2 ifname enp4s0 master bond0
Network teaming offers a modern alternative to bonding with more flexibility and better performance. Teaming uses a userspace daemon called teamd for advanced load balancing and failover capabilities.
VLAN Configuration
Virtual LANs (VLANs) segment network traffic logically without physical separation. Configure VLAN tagging to isolate traffic types or create separate networks on shared infrastructure. Create a VLAN interface:
sudo nmcli con add type vlan con-name vlan10 ifname vlan10 dev enp3s0 id 10
sudo nmcli con mod vlan10 ipv4.method manual ipv4.addresses "192.168.10.100/24"
Bridge Configuration
Network bridges connect multiple network segments, essential for virtual machines and container networking. Create a bridge interface with:
sudo nmcli con add type bridge con-name br0 ifname br0
sudo nmcli con add type ethernet slave-type bridge con-name bridge-br0 ifname enp3s0 master br0
Virtual machines can attach to the bridge, allowing them to communicate directly with the physical network.
Firewall Integration and Network Security
Firewalld manages firewall rules in Fedora 43, organizing them into zones that define trust levels. Check active firewall zones with:
sudo firewall-cmd --get-active-zones
Each zone applies specific rules to network connections. Common zones include “public” for untrusted networks, “home” for trusted home networks, and “work” for office environments.
Open specific ports for network services:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
Add predefined services to zones:
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Network security extends beyond firewalls. Use strong passwords for wireless networks, disable unused network services, keep systems updated, and monitor network connections regularly for suspicious activity. The --permanent flag ensures rules persist across reboots.
NetworkManager Configuration Files
NetworkManager stores connection profiles as keyfiles in /etc/NetworkManager/system-connections/. These files use an INI-style format with sections and key-value pairs. Each connection profile is a separate file with a .nmconnection extension.
File permissions must be set to 600 (read/write for owner only) for security reasons. NetworkManager ignores files with incorrect permissions. View a connection file:
sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1.nmconnection
The keyfile format organizes settings into sections like [connection], [ipv4], and [ethernet]. Manual editing allows advanced configurations not available through graphical tools. After editing configuration files directly, reload NetworkManager:
sudo nmcli connection reload
For systems created years ago, you might find a mix of legacy ifcfg files and modern keyfiles. Check your connection file types:
nmcli -f TYPE,FILENAME,NAME connection
Fedora 36 and later favor keyfiles exclusively, moving away from the older ifcfg format. This transition simplifies configuration and improves consistency across distributions.
Troubleshooting Common Network Issues
Network problems require systematic diagnosis starting with basic connectivity checks. Verify NetworkManager service status first:
systemctl status NetworkManager
If the service stopped or crashed, restart it:
sudo systemctl restart NetworkManager
View NetworkManager logs to identify error messages:
journalctl -u NetworkManager -xe
Look for messages about failed connections, timeout errors, or hardware issues. Interface detection problems often indicate missing drivers or firmware. Check if your network interface appears:
ip link show
Missing interfaces suggest driver problems. Search for available drivers:
lsmod | grep network_driver_name
DNS resolution failures cause websites to be unreachable despite working internet connectivity. Test DNS with:
nslookup google.com
If DNS fails, check /etc/resolv.conf for correct nameserver entries. Manually set DNS servers if automatic configuration fails:
sudo nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8 1.1.1.1"
Connection drops and instability might result from power management features. Disable power saving for wireless interfaces:
sudo nmcli con mod "WiFi Connection" 802-11-wireless.powersave 2
Diagnostic commands provide valuable troubleshooting information. Check IP address assignment:
ip addr show
View routing table to ensure default gateway is set:
ip route show
Test connectivity with ping commands:
ping -c 4 8.8.8.8
Common error messages and solutions include “Device not found” (check interface name spelling), “Connection activation failed” (verify configuration syntax), “No secrets were provided” (check password for wireless networks), and “Could not activate connection” (check cable connections or wireless signal strength).
Best Practices for Network Configuration
Use descriptive, meaningful names for connection profiles rather than generic defaults. Names like “Office-Ethernet” or “Home-WiFi-5GHz” clarify purpose immediately, simplifying management when multiple profiles exist.
Document network configurations in a separate file, especially for complex setups involving VLANs, bonds, or custom routing. Include IP addresses, subnet masks, gateway addresses, DNS servers, and any special requirements. This documentation proves invaluable when troubleshooting issues months later or when transferring responsibilities to other administrators.
Backup connection profile files regularly before making changes:
sudo cp -r /etc/NetworkManager/system-connections/ ~/network-backup-$(date +%Y%m%d)
Test configuration changes in non-production environments first when possible. Create test profiles with slightly different names, verify they work correctly, then apply changes to production profiles. This approach minimizes downtime and prevents configuration errors from causing network outages.
Security considerations include MAC address privacy for wireless connections, which prevents tracking across different networks. Enable MAC address randomization:
sudo nmcli con mod "WiFi Connection" 802-11-wireless.cloned-mac-address random
Use encrypted connections whenever possible, avoid open wireless networks for sensitive data, and implement firewall rules appropriate for each network environment.
Performance optimization involves selecting appropriate MTU sizes for your network, enabling jumbo frames on gigabit networks when supported, and configuring DNS caching to reduce lookup delays. Monitor network performance with tools like iftop and nload to identify bottlenecks.