9 min read

How to Make a Minecraft Server for Free

Make a free Minecraft Java server on your PC — install the right JDK, run the jar, set eula=true, allocate RAM, and let friends in over LAN or a tunnel.

How to Make a Minecraft Server for Free

The server software is free — you download Mojang's server.jar or PaperMC's paper.jar, point Java at it, and run it on the computer you already own. The only real cost of hosting at home is that your server is online exactly as long as that machine is powered on and connected, since it's running on your hardware and your upload bandwidth. If you'd rather not leave a PC on, a free hosting tier like Aternos covers that, with trade-offs of its own. Either way you can list it on the owner dashboard once it's up.

Start with self-hosting — it's the path you control end to end. Vanilla and Paper install and run the same way; the difference is that vanilla gives you a plain server and Paper gives you better performance plus plugin support. For a plugin server, use the newest stable Paper build your plugins support; as of September 2026 that's 26.2, since Paper's 26.3 builds are still experimental, and 26.1 remains a valid compatibility fallback. A plain vanilla server can run the latest release, 26.3, when its own Java and system requirements are met.

Install the right Java first

This is where most "it won't even start" problems begin. Minecraft's server jar is a Java program, and the Java version has to meet that jar's requirement. Current Paper 26.x builds require Java 25; other server software and older versions may require a different major version, so check the download page or startup error instead of assuming.

Grab a JDK matching the jar's requirement (Adoptium/Temurin and Microsoft's OpenJDK are both free), install it, then open a terminal and run java -version to confirm the major version. For current Paper 26.x, that means Java 25. If it still shows an old number, that old install is first on your system path, and that mismatch is the single most common beginner snag.

Drop the jar in its own folder and run it once

Make a new, empty folder for the server and put the jar inside it. The server scatters its files into whatever folder it runs from — the world, the configs, the logs all land right next to the jar — so a dedicated folder keeps the mess contained.

Now run it once. Open a terminal in that folder and launch the jar:

java -jar server.jar --nogui

--nogui skips the little server window and keeps everything in the console, which is lighter and what you'll usually want. On this first run the server won't fully start: it writes a file called eula.txt into the folder, then shuts itself down. That's expected, not a failure. Open eula.txt, change eula=false to eula=true, save, and you're ready for the real launch.

Run it again and set up server.properties

Launch the same command a second time:

java -jar server.jar --nogui

This time it boots properly. It generates server.properties, builds the world/ folder, creates a logs/ directory, and starts listening for connections. The first boot takes a minute while it generates the spawn area.

Open server.properties and you'll find the settings worth knowing:

  • server-port=25565 — the default Java port (TCP). Leave it unless you have a reason to change it; if a player types just your address with no port, the Java client assumes 25565 anyway.
  • max-players=20 — connection cap.
  • gamemode=survival and difficulty=easy — the basics.
  • view-distance and simulation-distance — how far the server loads and ticks chunks. Lower numbers ease the load on a home machine.
  • white-list=true plus online-mode=true — turn the whitelist on if you only want named friends in, and keep online-mode true so only real authenticated accounts connect.
  • level-name=world and motd — the world folder name and the line that shows in the server list.

Allocate RAM with -Xms and -Xmx

You set memory with Java flags at launch, not in a config file. -Xms is the starting heap and -Xmx is the maximum. PaperMC's docs example hands the server 4 GB:

java -Xms4G -Xmx4G -jar paper.jar --nogui

The Minecraft Wiki's example is smaller and uneven:

java -Xms1024M -Xmx2048M -jar server.jar --nogui

Both are valid. Setting -Xms equal to -Xmx is common practice for servers but not required. For a handful of friends at default view and simulation distance, around 2 GB is plenty; bump it up for a big modpack or a bigger crowd, but never hand the server all your system RAM — leave a comfortable buffer for the operating system and your own game client. If you're sizing for a real crowd, how much RAM a 20-player server needs breaks the tiers down.

Let your friends in

How you do this depends on where they are.

Same house (LAN)

If everyone's on your home network, they connect straight to your machine's local IP — Multiplayer -> Add Server, then something like 192.168.1.20:25565. No router setup, nothing to forward. Find your local IP with ipconfig on Windows or ifconfig/ip addr on macOS and Linux.

Over the internet, the router way

To let people outside your network in, you forward TCP port 25565 on your router to your PC's local IP, and friends connect to your public IP. It's free and direct, but it exposes your IP and it won't work if your internet provider puts you behind CGNAT (shared public addressing), which a lot of home connections now use. The full walkthrough is in how to port forward a Minecraft server.

Over the internet, the tunnel way

A free tunnel like playit.gg sidesteps all of that. You run a small client app on your PC; it opens an outbound connection to playit.gg's network and hands you back a public address — something like something.gl.at.ply.gg:<port> — that you share with friends. It needs no port forwarding, exposes no IP, and works behind CGNAT because nothing on your router changes. The free tier covers a few tunnels (around three). The cost is that traffic relays through their servers, adding roughly 10–50 ms of ping, and it's still your hardware doing the hosting. Running a server without port forwarding covers this route in depth.

Whichever way you go, everyone connecting has to be on the same game version as the server, because the client and server must share the same network protocol. A mismatch shows up as Outdated client! (your side is behind) or Outdated server! (the server is behind, which you'll see right after you update your game but not the server). For a Paper server on the stable 26.2 line, that means everyone picks 26.2 in the launcher instead of the default latest release.

The honest trade-off, and the free hosting option

Self-hosting is genuinely free, but the server only exists while your PC is on. It runs on your electricity and shares the computer's CPU and RAM with whatever else you're doing, and your home upload speed caps how many players feel smooth.

That's the gap free hosting tiers fill. An Aternos-style service runs the server on shared hardware so you don't keep your own PC on — but the catch is real. RAM is capped (typically around 2–2.5 GB), the server auto-sleeps a few minutes after the last player leaves (the world saves, the process stops), and at peak times you wait in a startup queue, often a couple of minutes and sometimes much longer. If your friends play in short bursts on a schedule, the sleep-and-queue cycle gets old; if you have a spare machine, self-hosting stays up.

Once it's running and you've decided it's worth sharing publicly, add it from the dashboard so players can find it on the full server list and vote it up the monthly rankings.

FAQ

My friend gets "Connection timed out" but it works on my own PC — what's wrong?

That pattern — fine locally, dead from outside — almost always means the connection never reaches your machine. If you went the router route, the port forward is wrong or your provider has you behind CGNAT, in which case no forward will ever work and you want a tunnel instead. Confirm your firewall allows inbound TCP 25565, double-check the public IP you handed out, and if it's CGNAT, switch to playit.gg.

Do I have to keep the terminal window open?

Yes. The server runs inside that console session, so closing the window kills the server. Leave it open while people are playing, and type stop in the console to shut down cleanly — that saves the world properly. To run it without an open window, people use a service wrapper or screen/tmux, but for friends-only play, an open console is fine.

Can I switch a vanilla server to Paper later without losing my world?

Yes. The world/ folder is the save, and it's portable. Stop the server, drop a compatible paper.jar into the same folder beside your existing world/ and server.properties, and launch Paper instead of the vanilla jar — it reads the same files and keeps your world and settings. Do not load a world last saved by a newer Minecraft version into an older server build; make a backup first and choose a Paper build that supports the world version. The dedicated Paper setup guide covers the move in full.

What's the difference between online-mode and the whitelist?

They solve different problems. online-mode=true checks every connecting account against Mojang/Microsoft's auth servers, so only legitimate paid accounts get in — leave this on. white-list=true is a named guest list on top of that: even a valid account can't join unless its name is on the list. Add people with /whitelist add <name> in the console. So online-mode keeps fake accounts out, and the whitelist narrows real accounts down to the friends you've named.