Ubuntu 20.04.6 Desktop: No Ethernet Connection After Upgrade from 16.04 via 18.04

Abstract: Resolve missing Ethernet connectivity on Ubuntu 20.04 after upgrading from 16.04 by fixing interface naming conflicts between legacy ifupdown and Netplan.

Created: 2026-07-30 by

Upgrading Ubuntu from 16.04 to 20.04 often breaks Ethernet connectivity because the network manager no longer uses the legacy ifupdown system by default, leaving interfaces like enp0s31f6 and eth1 unconfigured. To resolve this, you must either configure Netplan for the new interface names or restore the classic networking stack if your hardware relies on older driver behaviors.

Understanding the Interface Naming Shift

The primary reason your internet connection disappears after a major version jump is the transition in how Linux identifies network hardware. In Ubuntu 16.04, network interfaces were typically assigned predictable names based on their physical location, such as eth0 or eth1. However, starting with Ubuntu 17.10 and continuing through 20.04, the system adopted Predictable Network Interface Names (Freedesktop standard). This means your Ethernet port might now appear as enp0s31f6, which encodes the bus path of the device rather than a simple sequential number. If you are seeing both enp0s31f6 and eth1 active but without internet access, it indicates a conflict between the new naming convention and legacy configuration files. The system may be trying to bring up an interface that doesn't exist under its old name, or the NetworkManager service is failing to recognize the new identifier. This specific scenario is common when migrating from older LTS releases where manual edits to /etc/network/interfaces were standard practice. For more details on handling multiple interfaces during upgrades, see Lost Internet Connection After Upgrading Ubuntu 20.04.6: Two Different Interfaces named en01 and eth1.

Diagnosing the Current State

Before applying fixes, you need to verify exactly what the operating system sees. Open a terminal and run the command ip link show. This will list all network devices along with their state. Look for your Ethernet adapter. It should ideally show as UP if the cable is connected and the driver is loaded. If it shows as DOWN, the interface is physically detected but not enabled. Next, check if the kernel has loaded the appropriate driver. Run dmesg | grep -i ethernet or look for messages containing the chipset name (e.g., Intel I219, Realtek RTL8111). If you see errors related to firmware missing or module loading failures, the issue is deeper than just configuration. However, since you are upgrading from 16.04, it is highly likely that the driver is present but the network manager is confused by the name change. You can also check the status of the NetworkManager service with systemctl status NetworkManager. If the service is active but reports "no connections found," it confirms that the configuration files do not match the available hardware interfaces.

Checking Legacy Configuration Files

In older Ubuntu versions, administrators edited /etc/network/interfaces to define static IPs or DHCP settings. In Ubuntu 20.04, this file is largely ignored unless you have explicitly installed the ifupdown package and disabled NetworkManager. Check if this file contains entries for eth1. If it does, but your current system sees the interface as enp0s31f6, the system will fail to apply those settings. If you find stale entries for eth0 or eth1 in this file, they should generally be commented out or removed unless you are intentionally running in legacy mode. Leaving them there while NetworkManager tries to manage the new names can cause race conditions where neither service successfully claims the interface.

Solution 1: Configuring Netplan

Ubuntu 20.04 uses Netplan for network configuration. These configurations are stored as YAML files in the /etc/netplan/ directory. You will typically find a file ending in .yaml, such as 01-netcfg.yaml or 50-cloud-init.yaml. Open this file with a text editor using sudo, for example: sudo nano /etc/netplan/01-netcfg.yaml. Ensure the configuration references the correct interface name. If your interface is enp0s31f6, the YAML structure should look like this:
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s31f6:
      dhcp4: true
If you previously used a static IP, replace dhcp4: true with the appropriate addresses and gateway4 fields. Note that indentation is critical in YAML; use spaces, not tabs. Once saved, apply the changes with sudo netplan apply. If the command fails, it will output the syntax error, allowing you to correct the file immediately.

Solution 2: Restoring Legacy Networking

If your workflow depends heavily on the old ifupdown method, or if Netplan continues to fail despite correct syntax, you can revert to the traditional networking stack. First, disable NetworkManager to prevent conflicts: sudo systemctl disable --now NetworkManager. Then, install the necessary packages: sudo apt install ifupdown resolvconf. After installation, edit /etc/network/interfaces to define your interface. Use the actual name shown by ip link show. For example:
auto enp0s31f6
iface enp0s31f6 inet dhcp
Finally, restart the networking service with sudo systemctl restart networking. This approach bypasses the modern abstraction layer entirely, providing a direct link between the configuration file and the kernel interface. This is particularly useful for servers or specialized hardware setups where predictable behavior is prioritized over dynamic management features. For insights on managing kernels and boot partitions during such complex transitions, refer to Upgrading Ubuntu: Checking Installed Kernels in the Boot Partition.

Solution 3: Resetting Network Manager

Sometimes the issue is not the configuration file but the cached state of NetworkManager. You can try resetting the entire network stack by removing the cache and restarting the service. Run sudo rm /var/lib/NetworkManager/NetworkManager.state followed by sudo systemctl restart NetworkManager. This forces the manager to re-scan all available interfaces and re-read its configuration files from scratch. This method is less invasive than changing configuration systems and often resolves issues where the interface name changed but the underlying connection profile remained attached to the old name. If you had previously created a connection profile named "Wired connection 1" linked to eth0, this reset helps clear orphaned references.

Frequently Asked Questions

Why does my interface name change after an upgrade?

Ubuntu switched to predictable interface names in version 17.10 to ensure consistent identification across different hardware permutations. This prevents issues where eth0 might swap with eth1 if a USB dongle is plugged in, making enp0s31f6 the stable standard for desktop installations.

Can I force the old eth0 naming scheme?

Yes, you can add the kernel parameter net.ifnames=0 biosdevname=0 to your GRUB configuration. Edit /etc/default/grub, append these to GRUB_CMDLINE_LINUX_DEFAULT, and run sudo update-grub. Rebooting will revert names to the legacy style, though this is generally discouraged for new deployments.

What if Netplan apply gives me a syntax error?

YAML is extremely sensitive to whitespace. Ensure you are using spaces for indentation and that your colons are followed by a space. You can validate your YAML file online or use tools like yamllint before applying. A single tab character will cause the command to fail silently or throw a parsing error.

How do I check if my Ethernet driver is loaded?

Use the command lspci -k | grep -A 2 -i network. This lists PCI network devices and the kernel driver currently bound to them. If the driver column is empty, the device is not being recognized by the OS, which may require installing additional firmware packages via ubuntu-drivers autoinstall.

Is it safe to remove NetworkManager?

Removing NetworkManager is safe if you have a robust alternative like systemd-networkd or ifupdown configured correctly. However, on a desktop environment, NetworkManager provides essential features for Wi-Fi switching, VPN integration, and automatic DNS management. Disabling it may reduce convenience even if wired connectivity is restored.

Latest News

How to Display Output of xterm Command in Terminal Screen using Cron

Resolve the inability to display xterm output in a terminal screen from cron by redirecting logs or using wall instead of insecure X11 workarounds.

Read More
Expose Local Server on VPS Preserving Real Client IPs (OS Level)

Resolve VPS logging showing only gateway IPs by configuring reverse proxies to forward real client addresses via X-Forwarded-For headers.

Read More
How to Clear Recent Files History in Linux without Deleting Actual Files?

Clear recent files history in Linux by deleting ~/.local/share/recently-used.xbel without removing the actual files.

Read More
Best HDD Copy Strategy: Manually Syncing and Rewriting Scratch

Resolve data drift between two 4TB hard drives by using rsync with the --delete flag to manually sync and rewrite scratch data for an exact mirror.

Read More
Understanding Bash Prompt Abbreviations: An Overview

Resolve repetitive typing errors by creating and persisting Bash aliases in the .bashrc file for improved command-line efficiency.

Read More
Free Tools and Methods to Log Real-Time Performance Details in Task Manager

Log real-time CPU and memory metrics to CSV files using Windows Performance Monitor Data Collector Sets to troubleshoot system slowness.

Read More
Contact Qatar Airways Customer Service: Phone Number, Help Center, and More

Resolve urgent Qatar Airways reservation issues like flight changes and baggage claims using the US phone number +1801-855-5905 or online self-service tools.

Read More
Windows 11: Alt Codes Displaying Wrong Characters - Solutions

Resolve Windows 11 Alt codes showing wrong characters by verifying the US keyboard layout and enabling Num Lock.

Read More
Run Programs with Elevated Privileges: A Comprehensive Guide

Eliminates the need to type sudo for frequent administrative tasks by configuring .bashrc aliases or functions.

Read More
Dynamically Changing Dates in Excel Formulas Using Cells

Eliminate manual date updates in Excel by using cell references to create dynamic formulas that automatically adjust calculations when input dates change.

Read More
Granting Edit Access to a Specific Excel Sheet in an Office 365 User Email ID-Based Login

Excel Online lacks native sheet-level permissions, so users must split workbooks or use worksheet protection to isolate edit access for specific tabs.

Read More
Creating Network Load on Local Wi-Fi from One PC

Generate sustained Wi-Fi bandwidth load from a single PC using a VM SFTP server to test router stability and throughput.

Read More
Changing the Default Editor for Batch Files in Windows 11's File Explorer

Resolve the issue of batch files opening in Notepad by changing the default editor to a preferred application like VS Code.

Read More
Gain WiFi Connection Minutes Before Losing it by Changing MAC Address

Bypass MAC address filtering to restore WiFi connectivity temporarily when a device is blocked by network administrators.

Read More
Photos Folders Turned Black: Troubleshooting Picture Applications on Windows

Resolve black screens in Windows Photos by resetting the app, updating graphics drivers, and repairing system files.

Read More
Troubleshooting High CPU Temperature Values: A Step-by-Step Guide

Resolve high CPU temperatures and thermal throttling by monitoring with Speedfan, cleaning dust from cooling components, and replacing degraded thermal paste.

Read More
Make cURL establish TLS connection with CA unknown

Resolve cURL TLS connection failures with unknown or self-signed certificates by using the --insecure flag to bypass CA validation.

Read More
Troubleshooting Incorrect Network Metrics Values in Grafana, Prometheus, InfluxDB, and Telegraf

Fix incorrect network metrics in Grafana, Prometheus, InfluxDB, and Telegraf by verifying interface selection, resolving unit mismatches, and handling counter resets.

Read More
Start Another Terminal Window (cmd.exe) Windows Repair/Troubleshoot

Provides step-by-step instructions to access the Windows Command Prompt via bootable media for advanced system repair and troubleshooting.

Read More
Thinkpad P1 Gen 6: Sudden Thunderbolt 3 Dock USB-C Charging Stopped Working

Resolve sudden Thunderbolt 3 dock USB-C charging and internet failure on ThinkPad P1 Gen 6 by updating firmware, resetting the dock, and adjusting power settings.

Read More
ASUS Windows 11 Laptop: Internet Connection Issue with Hotspot

Resolve ASUS Windows 11 laptop spinning wheel issue when connecting to mobile hotspot by resetting network stack, disabling IPv6, and adjusting power settings.

Read More
Developing iOS Project with Firebase: Logging in and Sending Push Notifications

Integrates Firebase to enable secure user authentication and push notifications in iOS applications.

Read More
Troubleshooting Bash Script with Suspected Issues of Spaces, Dashes, Filenames and Quoting

Resolve Bash script failures caused by word splitting, globbing, and special characters in filenames by applying proper quoting techniques.

Read More
Populating OneDrive Folder for Local Backup without Affecting Remote Files

Prevent OneDrive from deleting remote files during Windows reinstallation by unlinking the account or using symbolic links to isolate local data.

Read More
Force First Frame as Keyframe Without Re-encoding: A Quick Solution

Resolve inaccurate seeking and playback glitches by re-encoding video to ensure the first frame is a valid keyframe.

Read More
Find Information in Database Using WSL (Ubuntu) on Windows-10

Resolve database connection issues from WSL Ubuntu on Windows 10 by configuring client tools and network access to query remote or local servers.

Read More
Configuring a New Router with Different Networks: One Family, One Guest

Resolve IP conflicts and isolate guest traffic by configuring a second router with a distinct subnet via its WAN port.

Read More
Quickly Open Multiple Stock Websites with a Single Command

Solve the problem of manually opening multiple stock research websites by creating a single command to launch them simultaneously on Windows, macOS, or Linux.

Read More
Improved Adobe Acrobat Search Experience: Access Advanced Search with Ease

Access advanced search filters like case sensitivity and regex in Adobe Acrobat by clicking More Options in the Find bar.

Read More
Port Forwarding VM via OpenVPN: A Comprehensive Guide

Configure OpenVPN server and iptables to forward specific ports from VPN clients to a virtual machine's internal IP address.

Read More
Understanding Partitions in the 1980s: A Look Back at MS-DOS and Master Boot Record

Explains how the Master Boot Record and partition table enabled MS-DOS to manage multiple disk volumes on a single physical drive.

Read More
Windows 10 Enterprise: Keyboard Not Detected in Managed Organization with Admin Privileges

Resolve Windows 10 Enterprise keyboard detection failures caused by Group Policy restrictions, driver corruption, or USB enumeration errors.

Read More
Can't Find x86_64 Versions of Applications on MacOS arm64 (M1)

Resolve missing x86_64 app issues on M1 Macs by installing Rosetta 2 and reinstalling apps as universal binaries.

Read More
How to Hide Installation Source for an Android App

Manage Android app installation source visibility by using USB transfers or file managers to reduce browser traces and isolate data via work profiles.

Read More
Connecting Momentus 4200.2 ST9808210A Hard Drive via USB Cable

Resolve inability to access Seagate Momentus 4200.2 ST9808210A hard drive by connecting it via USB using a compatible SATA-to-USB adapter and configuring the disk in Windows.

Read More