Error Medic

No Internet Access But Connected: Complete Fix Guide (Wi-Fi & Ethernet)

Fix 'No Internet Access But Connected' on Wi-Fi or Ethernet. Step-by-step commands to flush DNS, renew IP, reset TCP/IP stack, and restore connectivity fast.

Last updated:
Last verified:
2,546 words
Key Takeaways
  • Root cause 1: Your device obtained an APIPA address (169.254.x.x) or a private IP that cannot reach the gateway — usually caused by a failed DHCP handshake, a faulty router, or a misconfigured network adapter.
  • Root cause 2: DNS resolution is broken or the DNS cache is poisoned/stale — the adapter is online but cannot translate domain names, so browsers show 'No Internet' even though the physical link is up.
  • Root cause 3: The TCP/IP stack, Winsock catalog, or network adapter driver is corrupted, or a VPN/firewall/proxy is intercepting traffic and blocking the default gateway.
  • Quick fix summary: Run 'ipconfig /flushdns', 'ipconfig /release && ipconfig /renew', and 'netsh int ip reset' in an elevated command prompt, then restart your adapter and router. Most cases resolve within 5 minutes.
Fix Approaches Compared
MethodWhen to UseTimeRisk
Flush DNS & Renew IP (ipconfig)Stale DNS cache, APIPA address (169.254.x.x), or DHCP lease expired2 minNone — fully reversible
Reset TCP/IP Stack (netsh int ip reset)Corrupted TCP/IP stack after software install, malware, or Windows update5 min + rebootLow — resets IP config to defaults
Reset Winsock Catalog (netsh winsock reset)Third-party software or VPN corrupted the Winsock layer5 min + rebootLow — may need to reinstall some network apps
Change DNS Servers to 8.8.8.8 / 1.1.1.1ISP DNS is down or returning NXDOMAIN for all queries3 minNone — easily reversed
Reinstall / Roll Back Network Adapter DriverDriver crash, bad Windows Update, or 'Code 43' device error in Device Manager10–15 minMedium — driver re-detection required
Router Power Cycle & Factory ResetAll devices on the network have no internet; router firmware issue or NAT table full5–20 minMedium — factory reset clears custom settings
Disable IPv6 on AdapterIPv6-only traffic causing fallback failures on ISP networks that don't support it2 minLow — IPv4 still works normally
Release APIPA / Static IP Conflict FixTwo devices share the same IP (conflict), or DHCP server is unreachable5 minLow

Understanding the 'No Internet Access But Connected' Error

When Windows, macOS, or Linux reports that your device is connected to a network but has no internet access, it means one of two things: either the physical or wireless link is established but IP-layer routing is broken, or the device can reach the local network but cannot communicate with the broader internet. This distinction is critical for choosing the right fix.

On Windows, you will see a yellow exclamation mark on the network icon in the system tray and the tooltip 'No Internet access' or 'Limited connectivity'. On macOS, you may see 'Connected, No Internet' in Network Preferences. On Ubuntu/Debian systems, NetworkManager often shows the interface as 'connected (site only)' or the terminal returns 'Network is unreachable' when you ping 8.8.8.8.


Step 1: Identify the Exact Failure Point

Before running fixes blindly, determine where the chain breaks.

Check your assigned IP address:

Open an elevated Command Prompt (Windows) or Terminal (macOS/Linux) and run:

ipconfig /all        # Windows
ifconfig             # macOS/older Linux
ip addr show         # Modern Linux

Look at the IPv4 address field for your active adapter:

  • 169.254.x.x — This is an APIPA (Automatic Private IP Addressing) address. Your device never received a valid IP from the DHCP server. The router or DHCP service is the problem.
  • 10.x.x.x, 192.168.x.x, or 172.16–31.x.x — You have a valid private IP. The problem is upstream (DNS, gateway, ISP).
  • No address listed — The adapter itself is not initializing. Driver or hardware issue.

Ping your default gateway:

ipconfig | findstr "Default Gateway"   # Windows — note the gateway IP
ping 192.168.1.1                       # Replace with your actual gateway IP

If the gateway ping fails, the problem is between your device and the router (bad cable, wrong IP, Wi-Fi association issue).

If the gateway ping succeeds, ping an external IP:

ping 8.8.8.8

If 8.8.8.8 is unreachable but the gateway responds, the router itself has no WAN connection — reboot the router or contact your ISP.

If 8.8.8.8 responds but websites don't load, DNS is the culprit:

nslookup google.com 8.8.8.8

If this returns an IP but your browser still fails, check for a proxy or firewall intercepting HTTP/HTTPS traffic.


Step 2: Fix DHCP and IP Address Issues

This resolves APIPA addresses and stale DHCP leases, which account for the majority of 'no internet but connected' cases on both Wi-Fi and Ethernet.

Windows (Run as Administrator):

ipconfig /release
ipconfig /flushdns
ipconfig /renew

After renewal, run ipconfig /all again. Confirm the IPv4 address is no longer in the 169.254.x.x range and that the Default Gateway is populated.

macOS:

Go to System Preferences → Network → select your adapter → Advanced → TCP/IP tab → click 'Renew DHCP Lease'. Or via Terminal:

sudo ipconfig set en0 DHCP    # Replace en0 with your interface name

Linux (NetworkManager):

sudo nmcli con down "YourConnectionName" && sudo nmcli con up "YourConnectionName"
# Or using dhclient:
sudo dhclient -r eth0 && sudo dhclient eth0

Step 3: Reset the TCP/IP Stack and Winsock (Windows)

If renewing the IP doesn't help, the TCP/IP stack itself may be corrupted. This often happens after malware removal, a bad Windows Update (KB updates have historically broken network stacks), or certain VPN client uninstalls.

Run all four commands in sequence (elevated CMD):

netsh int ip reset
netsh int ipv6 reset
netsh winsock reset
netsh advfirewall reset

Restart your computer after running these commands. Windows will rebuild the network configuration from scratch.


Step 4: Change DNS Servers

If your ISP's DNS is down or returning bad responses, switching to a public DNS resolver fixes the 'connected but no internet' symptom immediately.

Windows:

  1. Open Control Panel → Network and Internet → Network Connections.
  2. Right-click your active adapter → Properties.
  3. Select 'Internet Protocol Version 4 (TCP/IPv4)' → Properties.
  4. Select 'Use the following DNS server addresses'.
  5. Preferred: 8.8.8.8 (Google) or 1.1.1.1 (Cloudflare)
  6. Alternate: 8.8.4.4 or 1.0.0.1
  7. Click OK, then flush DNS: ipconfig /flushdns

macOS: System Preferences → Network → Advanced → DNS tab → remove existing servers → add 1.1.1.1 and 8.8.8.8.

Linux:

sudo nano /etc/resolv.conf
# Add or replace nameserver lines:
nameserver 1.1.1.1
nameserver 8.8.8.8

Step 5: Reinstall or Roll Back the Network Adapter Driver

Specifically relevant for laptop no internet access but connected scenarios after Windows Updates.

  1. Press Win + X → Device Manager.
  2. Expand 'Network Adapters'.
  3. Right-click your Wi-Fi or Ethernet adapter → 'Update driver' or 'Roll Back Driver'.
  4. If rolling back is greyed out, choose 'Uninstall device', check 'Delete the driver software for this device', then restart Windows to auto-reinstall.

For ethernet no internet access but connected: also check the cable itself. Run:

netsh interface show interface

Look for 'Connected' status on the Ethernet adapter. If it shows 'Disconnected', the cable or port is faulty — swap the cable or try a different router port.


Step 6: Check for VPN, Proxy, and Firewall Interference

A VPN that is partially connected or a system proxy set to a non-existent address will cause exactly the 'connected but no internet' symptom.

Check and disable system proxy (Windows):

netsh winhttp show proxy
netsh winhttp reset proxy

Also check: Settings → Network & Internet → Proxy → toggle 'Use a proxy server' to Off.

Disable any active VPN client, then test connectivity. If internet is restored, reconfigure the VPN's split-tunneling settings or reinstall the VPN client.


Step 7: Router-Level Fixes

If all devices on the network have no internet but show as connected, the issue is the router or the ISP link.

  1. Power cycle: Unplug the router and modem from power. Wait 60 seconds. Plug in the modem first, wait 30 seconds for it to sync, then plug in the router.
  2. Check WAN/Internet LED: A solid or blinking WAN light usually means ISP link is up. A dead WAN LED means call your ISP.
  3. Log into router admin (usually 192.168.1.1 or 192.168.0.1): Check the WAN status page. If it shows 'Disconnected' or an APIPA address on the WAN side, the router itself cannot get an IP from the ISP — contact your ISP.
  4. Check NAT table / connection tracking: On heavily loaded routers, the NAT table can fill up. Reboot resolves this temporarily; long-term, limit connected devices or upgrade hardware.

Step 8: Disable IPv6 as a Last Resort

Some ISP networks have buggy IPv6 implementations that cause the OS to prefer IPv6 but receive no valid routes, blocking all traffic.

Windows:

netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set privacy state=disabled

Or permanently: Control Panel → Network Connections → Adapter Properties → uncheck 'Internet Protocol Version 6 (TCP/IPv6)'.

Linux:

echo 'net.ipv6.conf.all.disable_ipv6 = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Frequently Asked Questions

bash
#!/usr/bin/env bash
# =============================================================
# Network Connectivity Diagnostic & Auto-Fix Script
# Works on Windows (run in Git Bash / WSL or adapt for CMD),
# macOS, and Linux.
# =============================================================

echo "========================================="
echo " Network Connectivity Diagnostic Script"
echo "========================================="

# --- Step 1: Show current IP configuration ---
echo ""
echo "[1/7] Current IP Configuration:"
if command -v ip &> /dev/null; then
  ip addr show
elif command -v ifconfig &> /dev/null; then
  ifconfig
else
  echo "Run 'ipconfig /all' in CMD (Windows)"
fi

# --- Step 2: Detect default gateway ---
echo ""
echo "[2/7] Default Gateway:"
if command -v ip &> /dev/null; then
  GATEWAY=$(ip route | grep default | awk '{print $3}' | head -1)
  echo "Gateway: $GATEWAY"
else
  echo "Run: ipconfig | findstr 'Default Gateway' (Windows)"
  GATEWAY="192.168.1.1"  # fallback for demo
fi

# --- Step 3: Ping the gateway ---
echo ""
echo "[3/7] Pinging default gateway ($GATEWAY):"
if ping -c 3 -W 2 "$GATEWAY" &> /dev/null; then
  echo "SUCCESS: Gateway is reachable."
else
  echo "FAIL: Cannot reach gateway. Check cable/Wi-Fi association or router."
fi

# --- Step 4: Ping external IP (no DNS) ---
echo ""
echo "[4/7] Pinging 8.8.8.8 (external IP, no DNS):"
if ping -c 3 -W 2 8.8.8.8 &> /dev/null; then
  echo "SUCCESS: Internet routing is working. DNS may be the issue."
else
  echo "FAIL: Cannot reach internet. Router WAN link may be down."
fi

# --- Step 5: DNS resolution test ---
echo ""
echo "[5/7] DNS Resolution Test (google.com via 8.8.8.8):"
if command -v nslookup &> /dev/null; then
  nslookup google.com 8.8.8.8
elif command -v dig &> /dev/null; then
  dig @8.8.8.8 google.com +short
else
  echo "nslookup or dig not found. Install dnsutils (Linux) or use CMD on Windows."
fi

# --- Step 6: Flush DNS cache (platform-specific) ---
echo ""
echo "[6/7] Flushing DNS Cache:"
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
  if systemctl is-active --quiet systemd-resolved; then
    sudo systemd-resolve --flush-caches && echo "DNS cache flushed (systemd-resolved)."
  elif command -v nscd &> /dev/null; then
    sudo nscd -i hosts && echo "DNS cache flushed (nscd)."
  else
    echo "No DNS cache service detected."
  fi
elif [[ "$OSTYPE" == "darwin"* ]]; then
  sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
  echo "DNS cache flushed (macOS)."
else
  echo "On Windows CMD (run as Admin):"
  echo "  ipconfig /flushdns"
  echo "  ipconfig /release"
  echo "  ipconfig /renew"
fi

# --- Step 7: Windows-specific reset commands (reference) ---
echo ""
echo "[7/7] Windows Fix Commands (run in elevated CMD if needed):"
echo "  netsh int ip reset"
echo "  netsh int ipv6 reset"
echo "  netsh winsock reset"
echo "  netsh advfirewall reset"
echo "  netsh winhttp reset proxy"
echo "  ipconfig /flushdns"
echo "  ipconfig /release"
echo "  ipconfig /renew"
echo ""
echo "After running Windows commands, REBOOT your machine."
echo "========================================="
echo " Diagnostic complete. Review output above."
echo "========================================="
E

Error Medic Editorial

The Error Medic Editorial team is composed of senior DevOps engineers, SREs, and network administrators with a combined 40+ years of experience diagnosing connectivity failures across cloud infrastructure, enterprise LANs, and consumer networks. Our guides are tested on real hardware and verified against official vendor documentation before publication.

Sources

Related Articles in Other No Internet Access But Connected

Explore More wifi Guides