Troubleshooting
Mac Connected to Wi-Fi but No Internet? Here's the Fix
Mac shows full Wi-Fi bars but websites won't load? Here's how to diagnose the missing piece — DNS, gateway, captive portal, or stuck routing.
The Wi-Fi icon shows full bars. System Settings → Network → Wi-Fi says “Connected.” But Safari spins forever and Slack says “no internet.” Your iPhone on the same network is fine.
This is the classic “connected but no internet” puzzle. The link between your Mac and the router is fine; something between the router and the rest of the world has broken. Or your Mac is making bad assumptions about how to reach that world. Here’s how to figure out which.
Step 1: Test where the connection actually breaks
Open Terminal:
ping 1.1.1.1
ping cloudflare.com
Three possible outcomes:
- Both work: your internet is fine; the issue is in a specific app. Quit and relaunch Safari.
1.1.1.1works,cloudflare.comfails: DNS is broken. Skip to Step 5.- Both fail: connection above the Mac is broken. Continue with Step 2.
Step 2: Check the gateway
Your router is your gateway. Find its IP:
netstat -rn | grep default
You’ll see something like default 192.168.1.1. Ping it:
ping 192.168.1.1
If that fails, your Mac can’t reach its own router — the Wi-Fi connection is half-broken. The fix:
- Toggle Wi-Fi off and on.
- Forget and rejoin the network.
- Reboot the router.
If the gateway pings fine but 1.1.1.1 doesn’t, the issue is upstream — your router can’t reach the internet. Reboot the router and check again. If still broken, it’s an ISP issue or modem issue.
Step 3: Check if Wi-Fi self-assigned an IP
System Settings → Network → Wi-Fi → Details → TCP/IP. If your IP starts with 169.254, you didn’t get a DHCP lease — your Mac assigned itself a link-local address because the router refused to give one out.
Causes:
- Router DHCP pool is full (rare in homes, common in coffee shops).
- Router DHCP service crashed (reboot the router).
- A static IP outside the router’s range was set (check Configure IPv4 = “Using DHCP”).
Click “Renew DHCP Lease” or run:
sudo ipconfig set en0 DHCP
(Replace en0 with your Wi-Fi interface from networksetup -listallhardwareports.)
Step 4: Check for a captive portal
Cafés, hotels, and airports require login through a captive portal page. macOS detects these and pops up a login window automatically — but sometimes the detection fails.
Force it:
open http://captive.apple.com
If a login page appears, complete it. Internet works.
If the captive portal detection has been disabled, re-enable:
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.captive.control Active -bool true
Step 5: Fix DNS
If 1.1.1.1 pings but hostnames fail, DNS is broken.
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
If still broken, switch DNS:
System Settings → Network → Wi-Fi → Details → DNS → add 1.1.1.1 and 8.8.8.8 → Apply.
Test:
dig cloudflare.com @1.1.1.1
If that works, your previous DNS was the problem. Permanently use the public DNS, or fix the router’s DNS settings.
Step 6: Check for VPN remnants
If you uninstalled a VPN recently, leftover network extensions or routing rules can break internet:
systemextensionsctl list
If extensions from old VPNs are loaded, they’re intercepting traffic. Remove them.
netstat -rn
Look for routes pointing to 10.x.x.x or 172.16.x.x networks that don’t make sense for your local setup. Force flush:
sudo route -n flush
Then toggle Wi-Fi off and on.
The cleanest fix is fully uninstalling the old VPN, including its system extension, configuration profile, keychain entries, and launch agents. Sweep’s app uninstaller catches all of those at once.
Step 7: Check the firewall
System Settings → Network → Firewall. If “Block all incoming connections” is on, some apps lose connectivity.
Try turning the firewall off temporarily. If internet works, the firewall was the issue. Add specific rules instead of blocking everything.
If you use Little Snitch or LuLu, alert mode may be silently blocking traffic. Disable filtering temporarily.
Step 8: Check for proxy settings
If a proxy was configured by a previous job’s VPN or by an admin tool, all traffic routes through it — and if the proxy is unreachable, no internet.
System Settings → Network → Wi-Fi → Details → Proxies tab. Ensure all the proxy types are unchecked unless you specifically need them.
You can also check from Terminal:
networksetup -getwebproxy Wi-Fi
networksetup -getsecurewebproxy Wi-Fi
If they show enabled with a server you don’t recognize, disable:
sudo networksetup -setwebproxystate Wi-Fi off
sudo networksetup -setsecurewebproxystate Wi-Fi off
Step 9: Check for IPv6 issues
If your ISP’s IPv6 is flaky, macOS will attempt IPv6 first, time out, fall back to IPv4. The result feels like “no internet” because nothing loads for 30 seconds before stuttering through.
Disable IPv6 temporarily:
networksetup -setv6off Wi-Fi
Test internet. If it’s snappy, IPv6 was the culprit.
Step 10: Reset network configuration
If everything else fails, reset the cached network state:
- Wi-Fi off.
- Finder → Go → Go to Folder →
/Library/Preferences/SystemConfiguration/. - Move to desktop:
preferences.plistNetworkInterfaces.plistcom.apple.airport.preferences.plist
- Restart.
- Wi-Fi on, rejoin network.
This rebuilds network preferences from scratch. You’ll need to re-enter Wi-Fi passwords.
Step 11: Try a different network location
System Settings → Network → three-dot menu → Locations → Edit Locations. Add “Test.” Apple menu → Location → Test. Connect to Wi-Fi.
If internet works on Test but not Automatic, your Automatic location has corrupt state. Either keep using Test or recreate Automatic from scratch.
Step 12: Check time and date
Bad time causes TLS handshakes to fail. If your Mac thinks it’s 2017, every HTTPS site will fail with certificate errors. Pages won’t load.
System Settings → General → Date & Time → Set automatically. If your time is wildly wrong:
sudo sntp -sS time.apple.com
This force-syncs the clock.
Step 13: Test with another device on the same network
Most important diagnostic step. If your iPhone on the same Wi-Fi has internet:
- The router is fine.
- Your ISP is fine.
- Your Mac is the problem.
Continue Mac-side troubleshooting.
If your iPhone also has no internet:
- Reboot the router.
- Check ISP status page.
- Call ISP if outage is widespread.
Step 14: Boot in Safe Mode
Safe Mode disables third-party kernel extensions and login items. If internet works in Safe Mode but not regular mode, something installed is breaking it. Most likely culprits:
- VPN client.
- Antivirus.
- Corporate device management agent.
- Network monitoring tool.
To boot Safe Mode:
- Apple Silicon: Shut down, hold power, “Loading startup options,” select disk while holding Shift, Continue in Safe Mode.
- Intel: Shut down, press power, hold Shift until login.
Step 15: Reinstall macOS without erasing
Last resort. Recovery → Reinstall macOS. Choose the option that doesn’t erase data. Rebuilds system files; user data stays.
This is rarely necessary; most “no internet” cases are fixed by Steps 2-7.
The most common cause
In my experience: stale VPN state. People uninstall a VPN, the system extension stays loaded, the routing table holds dead routes, DNS still points at the VPN’s resolver, and the Mac appears to have “no internet” even though Wi-Fi is connected.
The pattern is recognizable: internet was working until you connected to a VPN, then broke. Disconnecting the VPN doesn’t fix it. Rebooting partially fixes it but the issue returns.
The fix is a clean removal of all VPN remnants — the app, the extension, the config profile, the keychain entries, and the launch agents. Once those are gone, the Mac picks up DHCP and DNS from the router cleanly and internet works.