Fixing a Wired Ethernet Connection Stuck on Link-Local (169.254.x.x)
Problem #
On Ubuntu, the wired Ethernet interface (eno1) was not connecting to the internet while Wi-Fi worked fine.
Symptoms observed:
ip ashowedeno1with an IP in the169.254.x.xrange, which is an automatic link-local address and usually means DHCP failed.nmcli device show eno1confirmed no gateway andipv4.method: link-local.- Physical link was fine (
ethtoolshowedLink detected: yes), so cables and NIC were working.
Root cause:
- The wired connection was configured to use link-local addressing only, not DHCP.
- As a result, Ubuntu never requested an IP from the router, so internet access failed.
Resolution #
- Turn off Wi-Fi (to test wired independently):
nmcli radio wifi off
- Change the wired connection to use DHCP:
sudo nmcli connection modify netplan-eno1 ipv4.method auto
sudo nmcli connection modify netplan-eno1 ipv4.never-default no
sudo nmcli connection modify netplan-eno1 autoconnect yes
- Restart the connection:
sudo nmcli connection down netplan-eno1
sudo nmcli connection up netplan-eno1
- Verify the IP:
ip a | grep eno1 -A3
Expected result: eno1 has a DHCP IP in the router range (for example 192.168.1.x).
- Optional: make future wired connections use DHCP by default:
sudo nmcli connection add type ethernet ifname "*" con-name "auto-eth" ipv4.method auto autoconnect yes
- Test connectivity:
ping -c 3 8.8.8.8 # internet reachability
ping -c 3 google.com # DNS resolution
Outcome #
- Wired interface now automatically requests DHCP and has full internet access.
- Future wired interfaces default to DHCP, avoiding the
169.254.x.xfallback.