Linux network issues can come from a lot of places—misconfiguration, hardware problems, DNS failures, firewall rules, or even upstream network outages. The trick is to diagnose step-by-step instead of guessing. Here’s a practical workflow you can follow.
1. Check Basic Connectivity
Start simple—make sure the system is even connected.
ip a
- Look for an IP address (not just
127.0.0.1) - Check if the interface is
UP
ip link
- Verify your interface (e.g.,
eth0,wlan0) is notDOWN
If it’s down:
sudo ip link set eth0 up
2. Test Network Reachability
Try pinging known addresses:
ping -c 4 8.8.8.8
- If this fails → no internet or routing issue
Then test DNS:
ping -c 4 google.com
- If IP ping works but domain fails → DNS problem
3. Check Routing Table
ip route
Look for a default route:
default via 192.168.1.1 dev eth0
If missing, add it:
sudo ip route add default via <gateway-ip>
4. Verify DNS Configuration
Check:
cat /etc/resolv.conf
You should see something like:
nameserver 8.8.8.8
If not, temporarily add:
sudo nano /etc/resolv.conf
Or if using systemd:
systemd-resolve --status
5. Check Network Manager / Services
Depending on your system:
Using NetworkManager
nmcli device statusnmcli connection show
Restart:
sudo systemctl restart NetworkManager
Using systemd-networkd
networkctl statussudo systemctl restart systemd-networkd
6. Inspect Firewall Rules
Firewall can silently block traffic.
sudo iptables -L -n
Or if using UFW:
sudo ufw status
Temporarily disable (for testing):
sudo ufw disable
7. Check Open Ports
ss -tulnp
This shows:
- Listening services
- Ports in use
8. Test with traceroute
See where packets stop:
traceroute 8.8.8.8
If it stops early → local network issue
If it goes far but fails → ISP or remote issue
9. Check Logs
Logs often reveal the real problem:
journalctl -u NetworkManagerjournalctl -xedmesg | grep -i network
10. Wireless-Specific Checks
If using Wi-Fi:
iwconfig
Scan networks:
iw dev wlan0 scan
Reconnect:
nmcli device wifi connect "SSID" password "PASSWORD"
11. Hardware / Driver Issues
Check drivers:
lspci | grep -i networklsmod | grep <driver>
If missing drivers, you may need to install firmware packages.
Common Problems & Quick Fixes
- No IP address → DHCP issue → restart network service
- Can ping IP but not domain → DNS misconfigured
- Interface down → enable with
ip link set - Connected but no internet → gateway missing
- Wi-Fi connected but slow → interference or driver issue
On Ubuntu, networking is usually managed by NetworkManager, so troubleshooting is a bit more standardized. Let’s narrow this down quickly with a focused Ubuntu workflow.
1. Check if NetworkManager is running
sudo systemctl status NetworkManager
If it’s not active:
sudo systemctl restart NetworkManager
2. See connection status
nmcli device status
You’ll see something like:
connected→ gooddisconnected→ problemunmanaged→ config issue
To reconnect:
nmcli connection up <connection-name>
3. Check IP address
ip a
Look for something like:
inet 192.168.x.x
❌ No IP? Try renewing DHCP:
sudo dhclient -v
4. Test connectivity
ping -c 4 8.8.8.8
- ❌ fails → network/gateway issue
- ✅ works → move to DNS test:
ping -c 4 google.com
- ❌ fails → DNS problem
5. Check default gateway
ip route
You should see:
default via 192.168.x.1
If missing:
sudo ip route add default via 192.168.1.1
6. Fix DNS (very common on Ubuntu)
Check:
cat /etc/resolv.conf
If it’s broken or empty, try:
sudo nano /etc/systemd/resolved.conf
Set:
DNS=8.8.8.8 1.1.1.1
Then restart:
sudo systemctl restart systemd-resolved
7. Wi-Fi specific (if applicable)
Check:
nmcli device wifi list
Reconnect:
nmcli device wifi connect "SSID" password "PASSWORD"
If Wi-Fi adapter missing:
lspci | grep -i network
8. Firewall check
Ubuntu often uses UFW:
sudo ufw status
Temporarily disable:
sudo ufw disable
9. Look at logs (very useful)
journalctl -u NetworkManager --no-pager | tail -50
Fast “reset everything” fix (works surprisingly often)
sudo systemctl restart NetworkManagersudo systemctl restart systemd-resolvedsudo dhclient