The most reliable way to make a Minecraft server is to use the dedicated software for the edition your group plays, run it on a computer that stays online, and configure the network port and firewall before inviting anyone. Java Edition uses an official server JAR and a Java runtime; Bedrock Edition uses Microsoft’s ZIP package and bedrock_server executable. A same-network (LAN) game needs little networking work, while internet play normally requires router port forwarding and a firewall rule. This guide walks through both setups, explains the exact defaults, and shows how to keep a private server compatible and safe.
Which Minecraft server should you make: Java or Bedrock?
Choose the server software that matches the edition installed by every player. Java and Bedrock are separate editions with different server programs, configuration files and network protocols; a normal Java server does not accept a Bedrock client, and a normal Bedrock Dedicated Server does not accept a Java client.
| Option | Players who can join | Host software | Typical setup burden | Who handles uptime and backups? |
|---|---|---|---|---|
| Java self-hosted | Java Edition clients on supported computers | Official Java server JAR and a compatible Java runtime | Moderate: runtime, EULA, properties, firewall and often port forwarding | You, on the host computer |
| Bedrock self-hosted | Bedrock clients that match the server protocol | Bedrock Dedicated Server ZIP and executable | Moderate: extraction, executable, firewall and version management | You, on the host computer |
| LAN play | Players on the same local network, using the same edition | Java’s Open to LAN feature or a local Bedrock server | Low; internet port forwarding is not required | The person who opens the world or runs the server |
| Realms | Players supported by the selected edition and Realm | Minecraft’s managed private-server service | Low; home-router changes are generally unnecessary | The service handles hosting; you manage the world and members |
| Managed hosting | Depends on the provider and selected edition | A provider-managed Java or Bedrock instance | Usually lower technical administration, but plan limits and policies vary | The provider handles infrastructure; you remain responsible for settings and content |
The official Minecraft server software for both Java and Bedrock is free to download. That does not make the game client, a Realm subscription or managed hosting free. Every player still needs a client for the correct edition, and all clients must be compatible with the server version.
What do you need before starting?
- A computer that can remain powered on for the hours your group wants to play. Self-hosting stops when the server process or host computer stops.
- A legal Minecraft client for each player, with the edition matching the server.
- Administrator access to install Java, extract files, create firewall rules and, for internet play, change router settings.
- A dedicated, writable folder for the server files. Keeping server files separate from downloads and personal documents makes backups and upgrades safer.
- A stable local address for the host computer when you use port forwarding. If the host’s local address changes, a router rule can point to the wrong machine.
- A plan for backups. Copy the world folder before upgrades or major configuration changes; choose the interval according to how much progress your group can afford to lose.
You do not need to expose the server to the internet for a LAN game. If your group cannot change router settings or you do not want to expose a home network, Realms or managed hosting is the simpler route.
How do I make a Java Edition server?
Java setup has five essential stages: install a compatible Java runtime, download the official server JAR, run it once, accept the EULA, and configure and launch the server. Perform these steps on the computer that will host the world.
1. Install and verify Java
Install a Java Runtime Environment (JRE) compatible with the Minecraft server release you plan to run. On Windows, the official server instructions note that Java may need to be added to the system PATH. Open PowerShell or Command Prompt and run:
java -version
The command should print a version instead of an error. If Windows reports that Java is not recognized, install the runtime again or correct PATH, open a new terminal window, and repeat the command. Do not continue until the host can invoke java from the terminal.
2. Download the official server JAR
Use Minecraft’s official Java server download page and save the JAR in a dedicated folder, for example C:Minecraft Server on Windows or ~/MinecraftServer on Linux and macOS. The download is for Java Edition only. Keep the original filename, or note any filename change because you will use it in the launch command.
3. Run the server once from a terminal
Open a terminal in the server folder. On Windows, you can open PowerShell in the folder; on Linux or macOS, use cd to change into it. Start the JAR with:
java -jar <server-jar-name>.jar nogui
Replace <server-jar-name>.jar with the actual filename. The nogui option runs the server without its graphical interface and leaves administration in the console. Omit nogui if you specifically want the graphical interface.
The first launch creates files and then stops because the EULA has not been accepted. That stop is expected.
4. Accept the EULA
Close the process if it is still running, open the newly created eula.txt in a text editor, change:
eula=false
to:
eula=true
Save the file. This is a required acceptance of Minecraft’s End User License Agreement; the server will not start normally while it remains false.
5. Configure server.properties
The first run also creates server.properties. Edit it with a plain-text editor while the server is stopped. The most useful settings are:
| Setting | What it controls | Practical guidance |
|---|---|---|
gamemode |
Default game mode for players | Choose the mode your group wants before inviting players. |
difficulty |
World difficulty | Set it deliberately; changing it later affects the existing world. |
pvp |
Player-versus-player damage | Disable it for cooperative groups that do not want accidental fights. |
allow-nether |
Whether Nether travel is enabled | Leave enabled only if the group wants Nether access. |
max-players |
Maximum simultaneous players | Set a limit appropriate to the host’s capacity and your group size. |
level-seed |
Seed used when generating a new world | Set it before the first world is generated if you need a particular seed. |
motd |
Message displayed in the server list | Use a short name that helps friends identify the server. |
server-port |
TCP port used by the Java server | The commonly documented default is 25565. If you change it, use the new value in the router and client. |
server-ip |
Local interface binding | Leave it blank unless you have a specific binding requirement. An incorrect value can prevent startup or connections. |
Save the file without adding formatting or changing the setting names. Make one change at a time when troubleshooting so you know which edit caused a problem.
6. Start the Java server again
Run the same command from the server folder:
java -jar <server-jar-name>.jar nogui
Keep the console open while hosting. It displays startup messages, player joins and errors, and it accepts administrative commands. To shut down safely, enter stop in the server console and wait for the save to complete instead of closing the window abruptly.
7. Let Java players join
For a same-network game, players can connect using the host computer’s local address and the configured port. For players outside your home, forward the configured port from the router to the host computer’s local IP, then allow the Java process through the operating-system firewall. With the default configuration, the port is 25565; a custom port must be used consistently in server.properties, the router rule and the address players enter.
In Java Edition, the joining player opens Multiplayer, selects Add Server, enters the host address and joins. The client version must match the server version; a mismatch produces an Outdated Client or Outdated Server message.
How do I make a Bedrock Dedicated Server?
Bedrock Dedicated Server uses a ZIP package rather than a Java JAR. Microsoft’s documented downloads support Windows and Linux environments, and Ubuntu is the only officially supported Linux distribution for this server. Check the published hardware, storage and network requirements for the release you download before choosing a small or low-power host.
1. Choose a supported platform
Use a supported Windows environment or Ubuntu. Other Linux distributions may run into compatibility problems and are not the officially supported Linux target. Make sure you have permission to create firewall rules and to run an executable from the server directory.
2. Download and extract the package
Download the Bedrock Dedicated Server ZIP from Minecraft’s official Bedrock server page. Extract it into an empty folder such as C:MinecraftServer on Windows or ~/MinecraftServer on Ubuntu. Do not mix the extracted files with unrelated applications or another server version.
3. Start the executable
On Windows, open PowerShell or Command Prompt in the extracted folder and run:
bedrock_server
On Ubuntu, run:
LD_LIBRARY_PATH=. ./bedrock_server
Leave the terminal running while the server is active. If the executable exits immediately, check that you are in the extracted directory and that the file has execute permission on Ubuntu.
4. Allow Bedrock traffic through the firewall
Permit the Bedrock server through Windows Defender Firewall or the Linux firewall. The documented defaults are UDP port 19132 for IPv4 and 19133 for IPv6. If you change either value in the properties file, update the firewall and router rules to match.
On Ubuntu, Microsoft’s documentation provides ufw allow commands for the Bedrock ports. Use the exact port values configured on your server and restrict rules to what your network requires rather than opening unrelated ports.
5. Configure Bedrock server.properties
Stop the server before editing its properties file. Important Bedrock controls include:
| Setting | Purpose | Trade-off or caution |
|---|---|---|
gamemode |
Default mode for players | Choose the mode that fits the group before distributing access. |
difficulty |
World difficulty | Changes the challenge level for the world. |
max-players |
Connection limit | Higher limits increase the work the host may need to perform. |
online-mode |
Authentication requirement | Keep it true for an internet-facing server. Remote clients require Xbox Live authentication, and Microsoft recommends online mode. |
allow-list |
Restricts access to named players | Turn it on for a private group and maintain allowlist.json. |
server-port |
IPv4 listening port | The documented default is 19132. |
server-portv6 |
IPv6 listening port | The documented default is 19133. |
view-distance |
How far terrain is sent to clients | Increasing it raises performance demands. |
tick-distance |
Radius in which world activity is processed | Increasing it also raises CPU and memory demands. |
Because view and tick distances affect workload, start with conservative values and increase them only if the host remains responsive for the group’s normal activity.
6. Test locally before inviting anyone
On the same Windows computer as the server, add a Bedrock server using address 127.0.0.1 and port 19132. Microsoft notes that Windows loopback may need to be enabled first. If the local test succeeds, test from another device on the same network before changing router settings for the internet.
7. Keep Bedrock versions synchronized
Bedrock protocol compatibility can change with minor and even some patch-version updates. An Outdated Server message means the client needs to be updated or the server needs to be brought to the client’s version; an Outdated Client message means the reverse. Update deliberately and back up the world before replacing server files.
How do I let friends join over the internet?
Remote access requires four things: a running server, the correct local destination, a firewall rule and a router port-forwarding rule. Java commonly uses port 25565; Bedrock uses 19132 for IPv4 and 19133 for IPv6 unless you configured different values.
- Confirm the server is listening. Start it and verify that the console completes startup without an error.
- Find the host’s local IP address. Use the address assigned to the computer running the server, not the router’s public address. Reserve or otherwise stabilize that local address so the forwarding rule does not silently point to another device later.
- Create the firewall rule. Allow the Java process or Bedrock executable and the configured port. Apply the rule only to the network profiles and ports you actually need.
- Forward the port on the router. Select the correct protocol and forward the server port to the host’s local IP. A changed server port requires a changed forwarding rule.
- Give trusted players the public address. They connect using your public address and, when needed, the non-default port. Do not post that address publicly.
- Test from outside the home network. A test made from the same LAN may not prove that the router’s internet forwarding works. Have a trusted player test while the server is running.
LAN players do not need internet port forwarding. They use the host’s local address, which keeps the server inaccessible from the public internet unless you deliberately add remote access.
What settings make a private server safer?
Self-hosting gives you control, but it also makes you responsible for access control and the host’s security.
- Keep Bedrock
online-mode=truefor an internet-facing server so remote clients authenticate. - Enable the Bedrock
allow-listfor a private group and keepallowlist.jsoncurrent. Java administrators should likewise grant access only to intended players using the server’s access controls. - Share the public IP only with trusted players. Minecraft Help warns that broad public-IP sharing creates a home-network security risk.
- Forward only the required Minecraft port. Do not expose administrative services or unrelated applications through the router.
- Keep the host operating system, Java runtime and server software patched. Schedule upgrades when nobody is playing and back up the world first.
- Use the server console for moderation and administration, and shut down with the server’s stop command so world data is saved cleanly.
How should I back up and update a server?
Stop the server before copying its world folder or replacing server files. A live copy can capture files while they are changing and leave you with an incomplete recovery point. Store at least one backup somewhere other than the host computer, and test that you can restore it before you need it.
There is no universal official backup interval because the right schedule depends on how much progress your group can lose. A small private world that plays occasionally may need a copy before every update; a frequently used world benefits from more regular copies. Keep a short history of backups rather than overwriting the only copy.
Before upgrading Java or Bedrock, record the current server version and configuration, stop the process, make a backup, install the new server files in a separate folder when practical, and test the world before inviting the group. If the update causes a compatibility or performance problem, you have a known restore point.
Why can nobody connect to my Minecraft server?
“Java is not recognized”
Install a compatible JRE and correct the Windows PATH configuration. Open a new terminal and run java -version again. The server JAR cannot start until that command works.
The Java server stops after the first launch
Open eula.txt, change eula=false to eula=true, save it, and relaunch the same JAR command. A first-run stop before accepting the EULA is normal.
Friends on the internet cannot connect
Check the server console first, then verify the host’s current local IP, the operating-system firewall rule and the router’s forwarding destination and port. Confirm that the router forwards the value shown in server.properties, not an old default. A LAN test can succeed even when the internet-facing rule is wrong.
Players see “Outdated Client” or “Outdated Server”
Make the client and server versions match. Bedrock can change protocol compatibility across minor and some patch releases, so update the side named by the error and retest.
A Bedrock client on the same Windows PC cannot connect
Enable the documented Windows loopback exemption, restart the Bedrock server, and connect to 127.0.0.1:19132. If you changed server-port, use that configured value instead.
Should I use LAN, Realms or managed hosting instead?
Use LAN when everyone is in the same home or office and the host can remain available. It avoids public exposure and port forwarding, but players outside that network cannot join.
Use Realms when you want a private Minecraft world without changing home-router settings or maintaining a server process. It is a subscription service, and the available features depend on the edition and plan.
Use managed hosting when you need a server online without leaving your own computer running or you want provider tools such as automated backups. Compare the provider’s Java or Bedrock support, player-slot limits, mod or add-on support, region, resource limits, backup policy and migration terms before committing. Those details vary by provider and can change, so verify them for the plan and region you will actually use.
Self-hosting is the best fit when you want maximum administrative control and are comfortable maintaining the operating system, firewall, router and backups. It has no universal player-capacity guarantee: the practical limit depends on the world, settings, software version and host hardware.
What is the simplest recommended setup for friends?
- Ask every player whether they use Java or Bedrock, then choose the matching server.
- For a one-evening same-network session, use LAN play and skip internet forwarding.
- For a recurring Java group, install Java, run the official JAR once, accept the EULA, set
server.properties, and test locally before forwarding port25565. - For a recurring Bedrock group, extract the official ZIP on supported Windows or Ubuntu, start the executable, set an allow-list and online mode, and test
19132locally before opening remote access. - Back up the world before updates, share the public address only with trusted players, and keep client and server versions synchronized.
Frequently Asked Questions
Can Java and Bedrock players join the same server?
Not with the official standalone server programs described here. Java and Bedrock use different server software and protocols, so everyone must use the edition supported by the server they are joining.
Do I have to buy separate server software?
No. Mojang/Microsoft states that the official Java and Bedrock server software is free to download. Players still need compatible Minecraft clients, and Realms or managed hosting may involve separate charges.
Does the host computer have to stay on?
Yes for a self-hosted server. If the server process stops or the host computer sleeps, shuts down or loses its network connection, players cannot join until you start it again.
How many players can my computer support?
The official material does not publish a universal player-count benchmark. Capacity depends on the edition, world activity, view and tick distances, configuration, software version and the host’s available resources, so set a sensible max-players value and increase it only after observing stable operation.
Can I hide my home IP while letting friends play?
Yes. Keep the world on LAN, or use Realms or a managed host so players connect through that service instead of directly to your home router. If you self-host over the internet, share the public address only with trusted people.