Back to Networking Examples
Networking Basics · Guide 5

Troubleshooting, step by step

“The Internet is down” is a symptom, not a diagnosis. Behind it is one broken thing, and it could be the Wi-Fi, a missing address, the router, the provider, DNS or the website itself. The first four guides taught you what each of those is. This one turns them into a method: narrow down who is affected, then run six tests from the bottom up, and stop at the first one that fails. It finds the fault in a couple of minutes, every time, and it's the same method network engineers use.

The finish line — four commands, and you know exactly what's broken
> ipconfig IPv4 Address: 192.168.1.23 address ✓ > ping 192.168.1.1 Reply from 192.168.1.1 gateway ✓ > ping 1.1.1.1 Reply from 1.1.1.1 Internet ✓ > nslookup bozcode.com DNS request timed out. DNS ✗ ← here
Time needed ~45 min · hardware your laptop
This guide is about a way of thinking more than any single command, so the 💡 Explain it simply prompts are about the method itself. Say each answer out loud. If you can explain why you test in this order, you can troubleshoot networks you've never seen before.
STEP 01

The method, in three habits.

Most people troubleshoot by guessing: restart the router, turn Wi-Fi off and on, try again, restart the router again. Sometimes that works, and nobody learns why. Three habits replace the guessing:

  1. Find out who's affected before touching anything. One device, every Wi-Fi device, the whole house, or everyone in the world? The answer rules out most causes at once (Step 02).
  2. Test from the bottom up, and stop at the first failure. A network is layers, each depending on the one below (the Introduction's Step 05). If there's no address, there's no point testing DNS. The lowest thing that's broken is the thing to fix (Steps 03–07).
  3. Change one thing at a time, and write it down. If you change three settings and it starts working, you don't know which one fixed it, or whether the other two broke something else.

And one question to ask before all of them: what changed? A network that worked yesterday and doesn't today almost always has a cause that happened in between: a new router, a software update, a moved cable, a changed password, a provider outage.

💡 Explain it simply

Why test from the bottom (the cable) up, instead of starting with the website that isn't loading?

Reveal a plain-language answer

Because every layer depends on the ones beneath it, the way every floor of a building depends on the floors under it. If the website won't load, the problem could be on any floor, and testing the top floor only tells you “something below is broken”. Testing from the ground floor up, each test that passes rules out that floor and everything beneath it. The first one that fails is the broken floor, and you know nothing above it can be blamed until it's fixed. Starting at the top gives you a symptom; starting at the bottom gives you the cause.

STEP 02

“Is it just me?” Narrow the scope.

Before any command, spend thirty seconds on questions. Each one uses a second device or a second connection to rule out a whole area:

Four nested boxes: everyone, where the site itself is down; your home or provider, where every device in the house is affected even on a cable; your Wi-Fi, where wired devices work but wireless ones don't; and one device, only this laptop. The question for each: does it work on mobile data or at a friend's; on another device at home; on a cable; on another device on the same Wi-Fi.
Ask from the outside in. A phone on mobile data is the most useful troubleshooting tool you own, because it's on a completely different network.
  • Only one website broken? Try it on your phone with Wi-Fi turned off. If it fails there too, the site is down for everyone and there's nothing to fix at your end.
  • Every device in the house? The fault is shared: router, modem or provider. Your laptop is fine; skip to rungs 3–4.
  • Only wireless devices? It's the Wi-Fi: signal, band or channel. Everything in the Wi-Fi guide applies.
  • Only this device? It's this device's settings, driver or software. Restarting it is a reasonable first step here, and only here.
STEP 03

The ladder: six tests, bottom up.

Here's the whole method on one page. Each rung is one test from the earlier guides. Climb from the bottom and stop at the first rung that fails:

Six rungs, climbed from the bottom. 1, connected: netsh wlan show interfaces; if it fails, look at the cable, Wi-Fi and signal. 2, got an address: ipconfig, a real IP and not 169.254; if it fails, DHCP and the router. 3, reach the gateway: ping 192.168.1.1; if it fails, the Wi-Fi or LAN, or a wrong subnet. 4, reach the Internet: ping 1.1.1.1; if it fails, the router's WAN, the modem or the provider. 5, names working: nslookup bozcode.com; if it fails, DNS settings. 6, the service itself: curl -I https://bozcode.com; if it fails, the site, a firewall or the app.
Keep this picture. Every rung is covered in detail in Steps 04–07.

And here's the same ladder laid along the path your packets travel, showing which part of the path each test actually checks:

The path from laptop over Wi-Fi or cable to the home router, provider, the Internet and the website, with a DNS server to the side. ipconfig covers only the laptop. ping to the gateway covers laptop to router. ping 1.1.1.1 covers everything out to the Internet, by number. nslookup asks the DNS server only. curl or a browser covers the whole path plus the site's own port. tracert lists every router in between, so it shows where a path stops.
Each test reaches a little further than the one before. When one fails, the fault is in the stretch it added.
STEP 04

Rungs 1–2: connected, and an address.

Rung 1: is there a connection at all?

On a cable: is the port light on at both ends? On Wi-Fi: netsh wlan show interfaces (Windows), Option-click the Wi-Fi icon (Mac), or nmcli dev wifi list (Linux), as in the Wi-Fi guide. You want State: connected and a signal better than about −70 dBm (Windows: above about 60%). If the signal is weak, move closer before testing anything else; every later test will give strange, intermittent results over a bad link.

Rung 2: did it get a proper address?

ipconfig

Read three lines, as in the Introduction's Step 03:

  • IPv4 Address starts with 169.254.: the device asked for an address and nobody answered. DHCP failed. That usually means the router's DHCP is stuck, or on Wi-Fi the join didn't complete properly.
  • An address on the wrong street, for example 192.168.0.x when the router is 192.168.1.1: a leftover manual setting, or you're on a different network than you think. The subnetting guide explains why two streets can't talk directly.
  • No Default Gateway: the device can talk to its own street but has no way off it.

The fix for a missing or odd address is to ask again:

Windows — PowerShell
ipconfig /release
ipconfig /renew

Mac: System Settings → Network → your connection → Details → TCP/IP → Renew DHCP Lease. Linux: nmcli con down id "HomeNet" then nmcli con up id "HomeNet", using your connection's name. If it still comes back as 169.254.x.x, and other devices are also failing to connect, the router's DHCP server is the problem, and restarting the router is justified.

STEP 05

Rungs 3–4: the gateway, then the Internet.

Rung 3: can you reach your own router?

Ping the Default Gateway from ipconfig:

ping 192.168.1.1

Replies mean your device, its connection and your local network all work. If this fails but you do have an address, suspect the Wi-Fi link (rung 1 again, especially signal), a wrong subnet mask, or a router that has frozen: its Wi-Fi light may still be on while its brain isn't answering.

Rung 4: can you reach the Internet, by number?

ping 1.1.1.1

This is the most important single test on the page. It goes past your router, through your provider and out to a public server, without using DNS, because you gave it a number. If rung 3 passed and this fails, the fault is between your router and the Internet: the router's connection to the modem, the modem itself, or your provider. Every device in the house will be affected, which Step 02 should already have told you.

To see where the path stops, trace it:

tracert -d 1.1.1.1
1 1 ms 1 ms 1 ms 192.168.1.1 2 * * * Request timed out. 3 * * * Request timed out. ...

Hop 1 answers (your router) and nothing after it does: your provider's side is down or your router isn't connected to it. Compare that with the Introduction's healthy trace, where hop 2 was your provider. (A single * line in the middle of an otherwise working trace is normal, as the Introduction explained; many routers ignore traceroute. What matters is whether anything answers after it.) If you have IPv6, ping -6 2606:4700:4700::1111 tests the same path over IPv6. Occasionally one works when the other doesn't, which is worth telling your provider.

STEP 06

Rung 5: DNS.

If ping 1.1.1.1 works but websites won't load, it's DNS far more often than anything else. Test it:

nslookup bozcode.com

If that times out or says it can't find the name, ask a different DNS server directly. Put its address after the name:

nslookup bozcode.com 1.1.1.1

This is the key comparison. If the second command works and the first doesn't, the name is fine and so is your Internet connection; your usual DNS server is the problem. That's usually your router passing questions to your provider. Restart the router, or set your device (or the router's DHCP settings) to use 1.1.1.1 and 8.8.8.8. If both fail for this name but work for others, the name itself has a problem, which is the site's to fix.

Devices also remember recent answers. If a site moved or DNS was just fixed, clear the old answers:

SystemClear the DNS cache
Windowsipconfig /flushdns
Macsudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux (systemd)resolvectl flush-caches
💡 Explain it simply

Why do you ping 1.1.1.1 (a number) before you test bozcode.com (a name)? Wouldn't testing the name check more?

Reveal a plain-language answer

Testing the name checks more, and that's the problem. Pinging a name needs two things to work: the phone book (DNS) and the road (the Internet connection). If it fails, you don't know which one broke. Pinging a number skips the phone book and tests only the road. So you test the road on its own first; if that works, the phone book is the only thing left, and nslookup tests it on its own too. One thing at a time, so each failure points at exactly one cause.

STEP 07

Rung 6: the service itself.

If the name resolves and the Internet works, but one site or app still fails, test the service directly. Browsers hide what went wrong; these commands show it. curl is built into Windows 10 and 11, Mac and Linux:

curl -I https://bozcode.com

On Windows, type curl.exe instead of curl. In Windows PowerShell, plain curl is a nickname for a different command, and -I will confuse it.

HTTP/2 200 server: nginx ...

The first line is the answer. 200 means the site is working and the problem is in your browser: an extension, the cache, a proxy setting. Try a private window. Other numbers tell you where the fault is:

You seeIt meansWhose problem
200OK. The site answered normally.your browser, if anyone's
301 / 302Moved: the site is sending you to another address. Normal; curl -IL follows it.nobody
403Forbidden: the site answered and refused you.the site, or it's blocking your address
404Not found: the site works, but that page doesn't exist.the link
500–504The site's own servers failed.the site: wait
timeout / connection refusedNothing answered on that port.a firewall on the way, or the site is down

For an app that isn't a website, test whether its port is reachable at all (ports are in the Introduction's Step 05):

Windows — PowerShell
Test-NetConnection bozcode.com -Port 443
ComputerName : bozcode.com RemotePort : 443 TcpTestSucceeded : True

Mac and Linux: nc -vz bozcode.com 443 prints succeeded or refused. False or a timeout from your network, but success from your phone on mobile data, means something between you and the site is blocking that port: a work network's firewall, a school filter, or occasionally your provider.

STEP 08

Restarts, and when to call the provider.

Restarting is a legitimate step, not a failure, as long as you know what it fixes. Restarting a device asks for a fresh DHCP lease, clears its DNS cache and resets its network driver. Restarting a router clears a stuck DHCP server, a full connection table, or a router whose software has hung. Restarting a modem makes it re-establish the link to your provider. Unplug it, wait 30 seconds, and give it a few minutes to come back.

Do them in the order the ladder points to, not all at once. Restart the router only if the ladder says the router is at fault. Then run the ladder again, so you know the restart actually fixed it rather than coinciding with it.

When it's your provider

The ladder tells you with confidence: rung 3 passes and rung 4 fails, on every device, including one on a cable, after a modem restart. Before you call, check your provider's outage page from your phone. When you do call, what you've already tested will skip most of the script:

“Every device is affected, including a wired laptop. I can ping my router at 192.168.1.1, but not 1.1.1.1. A traceroute stops after my router. I've restarted the modem and router. The modem's online light is off / flashing.”
💡 Explain it simply

Restarting the router often fixes things. So why not always restart it first and skip the ladder?

Reveal a plain-language answer

Because when it works, you've learned nothing, and when it doesn't, you've lost evidence. It's like a car that's making a noise: turning it off and on again might stop the noise, but you still don't know what it was, and it'll be back. Worse, a restart clears exactly the things you'd want to look at (which address the device had, what the router's log said), and it takes everyone in the house offline for a few minutes. Two minutes on the ladder first means that if you do restart, you know why, and you can tell whether it really fixed anything.

STEP 09

Solve these: six real cases.

Each case is one that happens in real homes and offices. Decide which rung failed and what you'd do before opening the answer.

  1. A laptop shows “No Internet”. ipconfig says its IPv4 address is 169.254.77.12. Every other device is fine.

    Show the answer

    Rung 2: no address. A 169.254.x.x address means DHCP didn't answer this device. Since everything else is fine, the router's DHCP works, so this device is the problem. Run ipconfig /release and /renew. If that doesn't work, forget the Wi-Fi network and join it again (a wrong saved password can fail quietly), then restart the laptop.

  2. Nothing in the house can load anything. On a wired laptop, ping 192.168.1.1 gets replies; ping 1.1.1.1 times out.

    Show the answer

    Rung 4: the router can't reach the Internet. The local network is fine (rung 3 passed on a cable, so it isn't Wi-Fi). Check the modem's lights, restart the modem and then the router, and run the ladder again. If it still fails, check the provider's outage page from your phone on mobile data and call them with exactly these results.

  3. Websites won't load on any device, but WhatsApp messages still arrive. ping 1.1.1.1 works. nslookup bozcode.com times out, but nslookup bozcode.com 1.1.1.1 works.

    Show the answer

    Rung 5: DNS. The Internet works, and the name is fine when asked of a working server, so your usual DNS server (the router, and the provider's servers behind it) is failing. Some apps keep working because they already know the addresses they need. Restart the router; if it recurs, set the router's DNS to 1.1.1.1 and 8.8.8.8.

  4. A new network printer was set up by hand as 192.168.2.50, mask 255.255.255.0. The home network is 192.168.1.0/24. The printer's Wi-Fi light is on, but no computer can find it.

    Show the answer

    Rung 2/3: wrong street. The printer is connected, but it thinks it lives on 192.168.2, while everything else is on 192.168.1. With a /24 mask those are different streets, so nothing can reach it directly (the subnetting guide's practice problem 5). Set it to DHCP, or give it an address like 192.168.1.50. Pick one outside the router's DHCP range so it never clashes with another device.

  5. Video calls freeze in the back bedroom but are perfect in the living room. A Mac in the bedroom shows RSSI −78 dBm.

    Show the answer

    Rung 1: weak signal. −78 is well below the −67 usually needed for calls (the Wi-Fi guide's Step 04). The network is fine; the radio link isn't. Move the router to a more central spot, use 2.4 GHz for range, run a cable, or add a mesh or wired access point near the bedroom. A single-radio plug-in extender may raise the bars and still not fix the calls.

  6. One work app won't connect from home, but everything else works. On mobile data it connects fine. Test-NetConnection to its server on port 8443 shows TcpTestSucceeded : False from home.

    Show the answer

    Rung 6: a port is blocked on the way. The app, its server and your Internet all work (mobile data proves it). Something on your home path is blocking port 8443: a security feature on the router, security software on the laptop, or less often the provider. Check the router's firewall and parental-control settings, and the laptop's security software, one at a time. Tell the app's support team exactly what you found.

STEP 10

The toolkit, on every system.

JobWindowsMacLinux
Wi-Fi link & signalnetsh wlan show interfacesOption-click Wi-Finmcli dev wifi list
My addressesipconfig /allifconfigip addr
Renew DHCPipconfig /renewNetwork → Details → Renew DHCP Leasenmcli con up id "…"
My gatewayipconfigroute -n get defaultip route
Reachable?ping / ping -6ping / ping6ping / ping -6
Where does it stop?tracert -dtraceroute -ntraceroute -n or tracepath
Neighboursarp -aarp -a / ndp -aip neigh
DNS lookupnslookupnslookupnslookup / dig
Clear DNS cacheipconfig /flushdnssudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderresolvectl flush-caches
Is the port open?Test-NetConnection … -Portnc -vznc -vz
What does the site say?curl.exe -Icurl -Icurl -I
Real speedthe site's Boz Bandwidth test: once on a cable, once on Wi-Fi
STEP 11

The Basics, complete.

That's the Networking Basics series. You know what a network is and how a packet crosses the Internet. You can subnet by hand, read Wi-Fi like an engineer and decode IPv6, and now you can find what's broken in any of it. This guide was the other four put to work: every rung of the ladder is an idea from one of them.

Check yourself

  • You ask “who's affected?” and “what changed?” before touching anything
  • You can name the six rungs in order, with the command for each
  • You know what a 169.254.x.x address means
  • You can tell an Internet fault from a DNS fault with two commands
  • You can read a traceroute that stops, and say where
  • You can describe a provider fault in one sentence of evidence

Where to go next

⬢

Cisco 1921 Router Guide

Build the network you've been troubleshooting: a real router, with every address, DHCP pool and NAT rule set by hand. When something doesn't work, and something will, the ladder is how you'll find it.

1

Back to the Introduction

Any rung that didn't click? Every one of them is explained from scratch in Guide 1.