Why your Minecraft server says offline when you can join it
A server you can reach from your own machine can still be unreachable from the internet. Here is how to tell which side the problem is on.
It is a specific kind of maddening. The server is running. You joined it a minute ago. A friend says it is offline, a status checker agrees with them, and nothing about your own machine suggests anything is wrong.
Both of you are right. You are just asking different questions.
Two addresses, two answers
Your router hands out a local address, usually starting 192.168. or 10., and it means nothing outside your house. Inside, it works perfectly: your own client connects, the server responds, everything is fine.
The public address is the one the rest of the internet sees. For a friend to join, three things have to be true of it:
- The server is listening on a port
- Your router forwards that port to the machine running the server
- Your ISP lets connections reach your router at all
Joining your own server tests the first one. It cannot tell you anything about the other two, because the connection never leaves the building.
Testing from outside
This is what a status checker is for. It connects from somewhere else and reports what it found, which is the same view your friend has.
The checker on this site speaks the server list ping directly, the same request the Minecraft client sends before showing you a server in the list. Java servers answer it over TCP on 25565 by default, Bedrock servers over UDP on 19132. It is not a login, so nothing joins the world and no player slot is used.
If it says online, the problem is somewhere between your friend and the server, not on your side. If it says offline while you can play, you have narrowed it to the router or the ISP.
Which of the three it usually is
The port is not forwarded. The commonest cause by a distance. A forwarding rule has to name the internal address of the machine running the server, and that address changes when the machine reconnects unless it has been reserved. A rule that worked last month can be pointing at nothing today.
The firewall is refusing it. Windows firewall prompts once, when the server first starts, and it is easy to dismiss without reading. The rule it creates is per-network too, so a laptop that moves between home and elsewhere can lose it.
Your ISP is using carrier grade NAT. This is the one people waste evenings on. Your router has a private address on the ISP’s own network rather than a public one, which means no forwarding rule you create can work, because there is nothing to forward from. It is common on mobile broadband and on a good deal of fibre. You can check by comparing the address your router reports as its WAN address against what the internet sees. If they differ, it is CGNAT, and the answer is not on your router’s settings page.
What to do about the third one
If it is CGNAT, your options are asking your ISP for a public address, which some will sell you, or not needing one.
ServerSync takes the second route. It runs the dedicated server on your own machine and gives it a public address by relaying the connection, so there is no port to forward and nothing for the ISP to block. Your friends get an address that works, the world stays on hardware you own, and the router’s admin page stays closed.
That is also why the checker is here rather than on a marketing page. Finding out that the port is shut is the useful part; what you do next is your call.
ServerSync runs the server for you, on a PC you already own.