How to Make a Minecraft Server for Friends (Java & Bedrock)
Quick answer: first confirm whether your group plays Java Edition or Bedrock Edition. They use different dedicated-server software and cannot join each other natively. For Java, download the official server JAR, accept the EULA, configure server.properties, and make TCP port 25565 reachable. For Bedrock, run the official Bedrock Dedicated Server and make its UDP port reachable. A managed host removes the always-on computer, router, update and backup work.
Skip the home setup with managed Minecraft hosting
Choose Java or Bedrock before you create the world
This is the decision that prevents most early mistakes. Java Edition servers accept Java Edition clients. Bedrock Dedicated Server accepts Bedrock Edition clients. They are separate editions with separate networking, world formats and server software, so a normal Java server does not let a Bedrock player join and vice versa.
- Choose Java when the group plays Minecraft: Java Edition on PC, macOS or Linux. Pick the official Java server for an unmodified baseline, or Paper when you want compatible server plugins and practical performance improvements.
- Choose Bedrock when the group uses Minecraft: Bedrock Edition. Bedrock is the edition used across supported Windows, console and mobile devices. Custom-server address support can differ by platform, so check what every player can join before committing a world to it.
Ask everyone to check the edition shown on their title screen. It is easier to settle this now than after players have built a world on the wrong server.
What a home server needs
A dedicated server needs more than a spare computer. It needs to stay online while friends play, have enough CPU and memory for world generation, and be reachable from outside your home. An Ethernet connection, an SSD, a stable private network address and a backup destination make the experience much less fragile.
For a small new world, allow at least 4 GB of free RAM for the server and leave memory for the operating system. CPU is often the first limit: generating new chunks, players exploring in different directions, redstone and mobs can hurt responsiveness before the machine technically runs out of RAM. Our Minecraft RAM guide helps with the starting size.
Set up an official Java server
Download the current server JAR from Minecraft's official Java server download page. Create a folder that belongs only to this server, then place the downloaded JAR in it. Install the Java runtime required by the current Minecraft release before continuing.
From a terminal in that folder, start the server once. This example reserves up to 4 GB for Minecraft, so only use it on a machine with additional RAM for the operating system:
java -Xms1G -Xmx4G -jar server.jar nogui
The first launch creates files including eula.txt and server.properties, then stops until the EULA is accepted. Read the linked EULA and change eula=false to eula=true. Start the same command again to create the world.
Set a memorable motd, sensible max-players, difficulty, gamemode, view-distance and simulation-distance in server.properties. Keep online-mode=true for a public Internet server so joining players are authenticated.
Make a Java server reachable outside your home
Java uses TCP port 25565 by default. Allow that TCP port through the computer firewall, then forward the same port in your router to the server machine's reserved local address. Test with a friend on a different network, not only from a computer connected to the same Wi-Fi.
If the server works locally but nobody outside the house can connect, check the router destination address, the machine firewall and whether your connection uses carrier-grade NAT (CGNAT). CGNAT means your router does not receive a public IPv4 address, so ordinary port forwarding cannot work. Your ISP may offer a public address, or a hosted server may be the simpler answer.
Set up a Bedrock Dedicated Server
For Bedrock, use the official Bedrock Dedicated Server package rather than a Java JAR. Microsoft's getting-started guide covers the Windows and Ubuntu Linux downloads. Unzip it into an empty server folder, run bedrock_server on Windows or LD_LIBRARY_PATH=. ./bedrock_server on Ubuntu Linux, and let it create its folders.
Configure the world in server.properties. The important values are the server name, level name, game mode, difficulty, player limit and port. The normal IPv4 default is UDP 19132. Allow the configured UDP port through the machine firewall and forward it in the router to let players outside your home join. Keep the client and dedicated server current: a protocol mismatch causes the familiar outdated-client or outdated-server error.
Back up before updates and experiments
A persistent world is the part worth protecting. Stop the server cleanly with its stop command before copying its world data, and retain backups somewhere other than the host machine. Take a new backup before a game update, a large plugin change, a datapack change, or an upload that changes the world.
For Java, keep the world folder, player data and configuration together in your backup. For Bedrock, the active world is the folder selected by level-name below worlds. A short restore test on a copy is the best confirmation that a backup is useful.
When a hosted Minecraft server is worth it
Self-hosting is a good project when you enjoy keeping a machine running and your home connection supports it. It becomes less fun when the host PC needs an update, the router changes, somebody needs the world while you are away, or the same person becomes responsible for every backup and restart.
With GHosting Minecraft server hosting, choose a plan and region, then select Paper, official Java Vanilla or official Bedrock Dedicated Server in the dashboard. Each server targets the current stable release, keeps authenticated play on, provides settings, Files/SFTP and a writable console, and checks the real public protocol before marking the install ready. Plans are prepaid and do not renew automatically.