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:

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:

  1. Log in to your router and find the status page. Note the WAN IP or "Internet IP".
  2. 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.

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.

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?

SituationBest option
Friends want to just type an addressplayit.gg
A few friends happy to install somethingTailscale or ZeroTier
Bedrock friends on console or phoneplayit.gg with a UDP tunnel for Geyser
Server must run 24/7Paid hosting
Everyone's in the same houseNothing 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.