Updated 2026-10-27 · All guides
How to host a Minecraft server without port forwarding
The usual way to let friends join your server is a port forward on your router. Sometimes that isn't possible:
- your internet provider uses CGNAT, so you don't have a public address of your own;
- you're on a shared network you can't configure: student halls, a school, a workplace, shared housing;
- you're on mobile broadband or a 4G/5G router, which almost always uses CGNAT;
- you simply don't have the password to log in to the router.
The good news is that there are free ways round all of these.
Check whether you're behind CGNAT
CGNAT (carrier-grade NAT) means your provider shares one public address between many customers. Port forwarding on your own router can't help, because the traffic is blocked further up, on the provider's equipment. To check:
- Log in to your router and find the status page. Note the WAN IP or "Internet IP".
- Search "what is my IP" in a browser and compare.
If they're different, or the router's address starts with 100.64 to 100.127, 10., 172.16 to 172.31 or 192.168., you're behind CGNAT or another layer of NAT. Some providers will give you a public address if you ask, sometimes for a small fee; it's worth a quick message to their support. If not, use one of the options below.
Option 1: playit.gg (tunnels, easiest for friends)
playit.gg runs a small program on your PC that connects out to its servers. It gives you an address like something.joinmc.link. Friends connect to that, and playit passes the traffic through to your server. Because your PC makes the connection outwards, nothing on your router needs to change.
- Free for Minecraft Java tunnels. Bedrock players (through Geyser) need a UDP tunnel instead; check playit's current plans for which tunnel types are free.
- Friends need nothing extra: they paste the address into Minecraft like any other server.
- Extra latency depends on how close the nearest playit server is to you and your friends. The paid plan offers more locations and a custom domain.
- Your home IP address stays hidden from players.
Setup in short: download the playit program, run it, open the link it prints to claim the agent on your account, add a tunnel of type Minecraft Java pointing at local port 25565, and share the address it gives you. HostCraft can set playit up for you from a server's Network tab.
Option 2: a virtual LAN (Tailscale or ZeroTier)
Tailscale and ZeroTier create a private network over the internet. Everyone who installs it and joins your network gets an address on it, and Minecraft behaves as if you're all on the same Wi-Fi.
- Free for small groups.
- Often lower latency than a tunnel, because devices connect directly to each other when they can.
- Every friend must install it and sign in, which is a hurdle for some people. It also doesn't work for console or phone players.
- Very private: only people you invite can even see the server.
Once everyone's connected, friends join using your PC's address on the virtual network (Tailscale shows it as 100.x.y.z). Windows Firewall might still need to allow Java on that network.
Option 3: IPv6
Some CGNAT connections give every device a full public IPv6 address. Minecraft: Java Edition supports IPv6, so friends who also have IPv6 can connect to it directly, as long as your router's firewall allows incoming traffic on port 25565. It's not reliable enough to depend on, because many networks and mobile connections still don't have IPv6, but it's free if it happens to work for your group.
Option 4: rent a server
If you want the server online all the time without leaving your PC on, or none of the above works, a hosted Minecraft server is the simplest answer. Small plans for a few friends cost a few pounds a month. You can move a world you started at home onto it by uploading the world folders. See home hosting vs paid hosting for a comparison.
Which should I pick?
| Situation | Best option |
|---|---|
| Friends want to just type an address | playit.gg |
| A few friends happy to install something | Tailscale or ZeroTier |
| Bedrock friends on console or phone | playit.gg with a UDP tunnel for Geyser |
| Server must run 24/7 | Paid hosting |
| Everyone's in the same house | Nothing needed: use your local IP |
What about Minecraft's "Open to LAN" or Realms?
Open to LAN only works on the same network and needs the host to be playing. Mods like Essential and e4mc can share a singleplayer world over the internet, which is great for a quick session but stops when the host leaves. Realms is Mojang's own paid hosting; it's easy, but doesn't support plugins or most mods on Java Edition. A dedicated server running through one of the options above gives you all of that, with plugins, mods and a world that keeps going when you're not playing.