How to Set Up a Minecraft Dedicated Server (Home, VPS or Managed)
A Minecraft dedicated server keeps your world online for friends whether or not you are playing. Here is how to choose between hosting at home, on a VPS or with a managed host, then set up the server step by step, open the right ports and change the first settings.
Home, VPS and managed hosting all run Minecraft, but they fail in different places: home on uptime and networking, VPS on Linux admin, managed on reduced low-level control.
Minecraft server performance is mostly about one fast CPU core. More cores do less for tick speed than strong single-thread performance.
View distance increases how much world data the server sends. Simulation distance increases how much world logic, mobs and redstone the main thread must tick.
Keep online-mode on, use the whitelist, avoid RCON unless you need it, and restart after changing server.properties so you know your changes really applied.
Pick your hosting path before you install anything
The biggest mistake with a Minecraft dedicated server is starting with Java and a server file, then realising later that the machine choice was wrong. The server needs to be available whenever people want to join, not only when your main PC happens to be awake, free, and still on the same public IP address. It also needs decent single-thread CPU speed, because Minecraft’s tick loop mostly leans on one CPU core rather than spreading cleanly across many.
If you only need occasional sessions rather than an always-available server, there are simpler ways to play Minecraft with friends. If you do want a proper dedicated setup, compare the three paths by what you personally have to manage.
| Job | Home PC | VPS | Managed server |
|---|---|---|---|
| Hardware, power and uptime | Yes | No | No |
| Router port forwarding | Yes | No | No |
| Installing Java and server.jar | Yes | Yes | No |
| Firewall rules for the port | Yes | Yes | No |
| Keeping it running after you log off | Yes | Yes | No |
| Backups | Yes | Yes | Partly |
| server.properties and the whitelist | Yes | Yes | Yes |
| Path | What you manage | What it costs | Uptime | Best for | Main catch |
|---|---|---|---|---|---|
| Home on your own PC or spare machine | Java runtime, server files, firewall, router port forwarding, updates, backups, power state, your home network | Nothing beyond electricity | Only as good as your hardware, router and household power/internet staying up | Private groups where cost matters most and the admin is happy to tinker | Dynamic public IPs, weaker upload, sleep/restarts, and your server disappears if the host machine is unavailable |
| Linux VPS you install yourself | Java runtime, Linux admin, firewall, start-up, updates, backups, security, monitoring | Varies by CPU, storage and location | Usually steadier than home if you configure the service properly | People comfortable with SSH who want full control without running hardware at home | You are responsible for the whole software stack and the server’s security |
| Managed game server | Mainly the Minecraft settings, world, mods or plugins, and routine admin inside a panel | From £2.25/month ($2.99) for 2GB; 4GB with a UK node from £3.75/month ($4.99) | Usually the easiest route to a server that stays on and stays reachable | Most friend groups and small communities | Less low-level control, and quality depends on CPU allocation, panel features and how oversold the node is |
A practical decision rule
- Choose home hosting if saving money matters more than guaranteed availability, and you can deal with firewall rules, router port forwarding and a public IP that may change.
- Choose a VPS if you want a stable internet-facing machine and full control over Java, backups and start-up, and you are comfortable doing Linux admin over SSH.
- Choose managed hosting if you want the least friction and you care more about uptime and convenience than OS-level control.
Home hosting breaks first when your friends expect the server to be there at any time, because consumer upload, dynamic IP addressing and everyday PC restarts get in the way. A VPS breaks first when the owner stops maintaining it. Managed hosting breaks first when you want deeper system access than the panel exposes.
Choose Java or Bedrock first
Before you download anything, decide which edition you are actually serving. Java Edition and Bedrock Edition do not use the same server program, the same ports, or the same connection rules.
- Java Edition: Mojang distributes the vanilla server free as a single file called
server.jar. It runs on Windows, macOS and Linux. The default port is25565over TCP. - Bedrock Edition: use the separate Bedrock Dedicated Server program. It is for Windows
10+, Windows Server2016+and Linux, with Ubuntu22.04or later officially supported. The default ports are19132for IPv4 and19133for IPv6, both over UDP.
That port difference matters because firewalls and router rules must match the protocol as well as the number. Opening TCP for a Bedrock server does not help, and forwarding the Java port does nothing for Bedrock.
Console access is the other big split. Xbox, PlayStation and Switch players can only join custom Bedrock servers through a custom DNS setup or LAN, so a Bedrock server can be technically correct and still awkward for console users. If you want both editions to meet in one place, read our guide to Java and Bedrock crossplay before you commit to a hosting plan. If you already know you want Bedrock specifically, compare what providers expose in Bedrock server hosting.
For the rest of this guide, the full step-by-step uses the vanilla Java server because that is the most common route for a Minecraft dedicated server. The same hosting-path logic still applies to Bedrock.
What hardware the server actually needs
Minecraft server performance is driven less by flashy hardware specs and more by a few specific bottlenecks. The important question is not “how powerful is the whole machine?” but “how fast is the main game thread, and how much memory is available for the world and players?”
CPU: single-thread speed first
The server mostly uses a single CPU core, so single-thread performance matters more than core count. For small servers, budget Intel 8th gen or Ryzen 2000 series is enough according to the wiki guidance. More cores still help the operating system, backups and other tasks, but they do not rescue slow tick speed if the main thread is weak.
RAM: enough heap to avoid constant cleanup
At least 2 GB is enough for small servers, and 4 GB is quite possibly needed for larger ones. The memory you assign with -Xmx becomes the Java heap the server uses for chunks, entities and other game data. If that heap is too small, Java spends too much time doing garbage collection, which feels like short freezes and lag spikes because the server stops useful work to free memory.
The wiki example start line uses -Xmx2G, which it says is more than enough for a home server with 5 players on the default simulation distance, calculated as 5 x 21^2 = 2205 chunks simulated. That example matters because it shows the right way to think about memory: size it for your actual simulation load, not for an imagined maximum that never happens.
Disk, network and location
Reserve at least 5 GB of disk for the world. Disk is used whenever chunks are generated, saved or loaded, so a struggling disk shows up as slower world loading and save pressure. A GPU does not matter here because the server is not rendering the game. Use a wired network rather than Wi‑Fi so latency and packet loss stay predictable, and keep the machine physically close to your players if you want lower ping.
Why view distance and simulation distance change everything
view-distance controls how much world the server sends to each player. Raising it costs bandwidth and memory because more chunk data has to be loaded and sent. simulation-distance controls how far away entities and game logic still tick. Raising it costs main-thread CPU because more mobs, redstone and other systems stay active. If you get major lag, these are the first settings to reduce because they attack the load at its source rather than treating symptoms.
Path A: set up a Minecraft server at home
Home hosting is the cheapest proper route because it costs nothing beyond electricity, but it asks the most from your home network. You are exposing a service from inside your house to the public internet, so getting the basics right matters.
- Install the right Java runtime. For Minecraft
26.1and newer, use Java25. For Minecraft1.20.5to1.21.x, use Java21. You only need a JRE, not a full JDK. - Create a dedicated folder for the server. Keeping the world, logs and config together makes backups and later moves much easier.
- Place
server.jarin that folder and run it once. The first launch creates the EULA file and the rest of the server structure.
java -Xms1024M -Xmx2048M -jar server.jar --nogui
That command matters for two reasons. First, --nogui avoids wasting resources on a local graphical wrapper. Second, -Xms and -Xmx control the heap. If the machine exists mainly for Minecraft, Xms can match Xmx so Java does not keep resizing the heap, but the trade-off is that the RAM stays reserved all the time.
- Minecraft 26.1 and newer: Java 25
- Minecraft 1.20.5 to 1.21.x: Java 21
- A JRE is enough, no JDK needed
- Open
eula.txtand accept the EULA. If you skip this, the server closes straight away by design.
eula=true
- Run the server again to generate the world. When you want to stop it, type
stopin the console so the world saves cleanly. A forced close risks incomplete disk writes. - Allow the Java server through the host firewall on
25565/TCP. Without this, your PC may reject inbound traffic even if the router is correct. - Create a router port-forwarding rule. Forward external
25565/TCP to the server machine’s internal IP on the same port. This is what tells your router which device inside the house should receive Minecraft traffic.
- Find your external IP and give that address to friends. Your local address inside the house is not enough for people outside it.
- Expect the dynamic IP problem. Most ISPs change the external IP every few days to few weeks. When that happens, the address your friends saved no longer points at your house, even if the server itself is still fine.
- Use a VPN as a fallback if port forwarding is impossible. This is a workaround, not the cleanest long-term setup, but it can get a private server reachable when the router or ISP blocks the normal route.
How do you know this path is working properly? Friends should connect consistently with the same address until the ISP changes it, chunk loading should feel stable, and the server console should stay active without closing when you log off your own desktop session. If the machine sleeps, reboots for updates, or shares too much household bandwidth, you have found the limits of home hosting rather than a Minecraft problem.
Path B: install the server yourself on a Linux VPS
A VPS removes the home-network issues: no router port forwarding on your own house, no dependence on your gaming PC staying on, and usually a steadier public address. In exchange, you become the system administrator.
- Choose a VPS location near your players. Physical distance still affects latency.
- Connect over SSH and install the correct Java runtime. Use Java
25for Minecraft26.1and newer, or Java21for Minecraft1.20.5to1.21.x. - Create a server directory, upload
server.jar, and run the same first-launch command. The EULA and world-generation steps are the same as on a home PC. - Keep it running after you log out. A terminal multiplexer such as
screen, or a propersystemdservice, stops the server process dying with your SSH session. The trade-off is a little more admin work now so the server is reliable later. - Open
25565/TCP in the VPS firewall. Many VPS setups have both a provider-level firewall and an OS firewall. If either blocks the port, friends time out. - Handle backups and updates yourself. The VPS will not automatically preserve your world unless you set that up. Backups cost storage, and updates cost your time, but both are cheaper than losing a long-running world.
- Take security seriously. Keep the OS updated, use sensible SSH practices, and do not treat the VPS like a throwaway box. A Minecraft server on the public internet is still a public internet service.
This route suits people who want full control over Java versions, start-up methods and file access. It breaks when that same control becomes a burden: if updates, logs, backups and firewall rules sound like chores you will postpone, a managed server is often the better choice.
Path C: use a managed Minecraft server
Managed hosting is the shortest path to a server that is on, reachable and easy to maintain. The panel usually handles the repetitive jobs: selecting the Java version, assigning the port, starting and stopping the server, installing common server software, and exposing backups and file access. For many private groups, that is exactly the right trade: less low-level control in exchange for less avoidable admin work.
If you plan to move beyond vanilla later, check support for the software you actually want before buying. That matters for things like Paper, Fabric, Forge or proxy setups, and it matters even more if you expect snapshots or modpacks. Our guide to modded server hosting covers the extra checks that become important once you leave vanilla behind.
| What to check | Why it matters |
|---|---|
| Single-thread CPU performance | Minecraft mostly leans on one main thread, so weak per-core speed causes lag even when total core count looks generous. |
| Guaranteed vs shared resources | Oversubscribed plans can feel fine when idle and fall apart under load because your server is competing for CPU time. |
| Server location close to players | Shorter network distance usually means lower ping and fewer complaints that feel like “lag” even when the server tick rate is fine. |
| Server software support | You do not want to discover after purchase that the panel only supports vanilla when you need Paper, Fabric, Forge or Velocity later. |
| Version support, including snapshots | Fast update support matters when a new Minecraft release lands and your group wants to move quickly. |
| SFTP and full console access | Without proper file access and console output, backups, logs and troubleshooting become much harder than they should be. |
| Backups: frequency, retention and downloads | A backup only helps if it exists before the problem and can be restored or downloaded when you need it. |
| Refunds and trials | They reduce the risk of getting stuck on a weak node or a panel that does not suit the way you admin servers. |
Managed hosting breaks when you want to control the entire OS, write your own automation, or treat the server like a broader Linux project. For everyone else, the panel doing the routine work is usually a benefit, not a compromise.
The first settings to change on any path
Once the server has generated its files, open server.properties. Any changes here need a full server restart before they take effect. Make small changes, restart, and test one thing at a time so you know which change actually helped.
motd=Private Minecraft server difficulty=easy white-list=true online-mode=true enable-rcon=false
On Minecraft 26.3, white-list=true is now the default. That is good for private servers because strangers cannot join just because they know the address, but it also means your friends must be added before they can connect. If you make yourself an operator, that op account is whitelisted automatically.
/whitelist add Alex
| Setting | Default | What to set and why |
|---|---|---|
motd | A Minecraft Server | Set a clear name or message so players know they reached the right server. It has no real performance cost, so keep it simple and readable. |
max-players | 20 | Set this to the real size of your group, not an aspirational crowd size. It does not reserve slots in RAM by itself, but it sets expectations and caps accidental overload. |
difficulty | easy | Choose the experience your group wants. This is more about play style than performance, though calmer worlds can indirectly reduce active entities and pressure. |
white-list | true | Leave it on for a private server. It blocks unknown accounts before they become an admin problem. |
online-mode | true | Keep this true on any internet-facing server. It checks players against Mojang’s account service and prevents fake accounts from joining under made-up identities. |
view-distance | 10 | Reduce this first if players report heavy lag while exploring. It lowers chunk sending, which cuts bandwidth use and memory pressure, but players see less of the world at once. |
simulation-distance | 10 | Reduce this if mob AI, redstone and general ticking are the problem. It cuts main-thread CPU load, but farms and contraptions work over a smaller area around players. |
enable-rcon | false | Leave it off unless a remote admin tool genuinely needs it. RCON exposes remote control of the server; with a weak password, that is an unnecessary security risk. |
Common problems: symptom, likely cause, first fix
| Symptom | Likely cause | First fix |
|---|---|---|
| Server closes instantly after launch | eula.txt still says eula=false | Edit the file to eula=true, save it, and start again. This works because the server intentionally refuses to finish booting until the EULA is accepted. |
| A Java version error as soon as the server starts | Wrong Java runtime for that Minecraft version | Use Java 25 for Minecraft 26.1 and newer, or Java 21 for 1.20.5 to 1.21.x. The server cannot run bytecode built for a newer Java than the runtime understands. |
| Friends time out when joining | Wrong IP, missing port forward, blocked firewall, or the wrong protocol/port for the edition | Check the public address, confirm 25565/TCP for Java or 19132/19133 UDP for Bedrock, and check both the host firewall and router or VPS firewall. If this helps, the server becomes reachable from outside your network. |
| “You are not white-listed on this server” | white-list=true, which is the default on 26.3 | Add the player with /whitelist add. This is not a network problem; the server is reachable and deliberately refusing entry. |
| It worked, then stopped working days later | Your home public IP changed | Check whether your external IP is different and give friends the new address. This happens because many home internet connections use dynamic public IPs. |
| Lag even with only a few players | View distance or simulation distance is too high for the CPU and RAM available, or the heap is too small | Reduce view distance or simulation distance first, then review your -Xmx setting. If players stop rubber-banding and chunk loading steadies, you have removed load from the main thread or from memory pressure rather than masking it. |
Tune it first or move to rented hosting?
Do not move hosts at the first sign of trouble. A lot of small private servers become stable just by lowering distance settings, matching the Java version properly, and fixing the network path. Move only when the limit is structural rather than a bad setting.
| If this is happening | Tune it first | Move when… |
|---|---|---|
| Exploration causes lag spikes | Lower view-distance; it reduces chunk send/load pressure on bandwidth, RAM and disk activity | The server is still struggling after sensible distance reductions and clean Java heap settings |
| Mobs, farms or redstone feel delayed | Lower simulation-distance; it cuts main-thread ticking load | Your group wants those systems active over a wider area than the home machine can handle |
| Friends regularly cannot connect | Recheck firewall rules, port forwarding and the current public IP | You are tired of fighting dynamic IP changes or cannot make port forwarding work reliably |
| The server disappears after reboots or sleep | Stop using your everyday gaming PC as the host, or improve start-up handling | You need the server available independently of your own machine usage |
| You keep delaying updates and backups | Set a routine and test it | You want the panel to handle more of the maintenance burden for you |
| You want mods, proxies or more admin features | Check whether your current path supports the software stack cleanly | The current path makes every change harder than it should be |
As a rule, stay at home if the only issues are configuration mistakes you can fix once. Move to rented hosting when your friction is permanent: unreliable availability, awkward networking, or more Linux and backup admin than you actually want to own.
If home hosting looks fragile or a VPS feels like too much maintenance, compare managed plans by CPU quality, location, backups and panel access rather than headline RAM alone.
Compare the best Minecraft server hostsMinecraft server FAQ
Can I host a Minecraft server for free?
Yes, at home it costs nothing beyond electricity if you already have suitable hardware and internet. The trade-off is that you must handle uptime, port forwarding, firewall rules, backups and a dynamic public IP yourself. If you are comparing no-cost approaches more broadly, look at these free Minecraft server options with the same question in mind: who is managing the hard bits?
How much does it cost to run a Minecraft server?
At home, nothing beyond electricity. Managed plans in our comparison start at £2.25/month ($2.99) for 2GB, and a 4GB plan with a UK node starts at £3.75/month ($4.99). A VPS varies, but the important point is that cheaper is not always better if single-thread CPU performance is weak or the node is oversubscribed.
What Java version does a Minecraft server need?
Minecraft 26.1 and newer require Java 25. Minecraft 1.20.5 to 1.21.x require Java 21. You only need a JRE for the server, not a full JDK.
Why can’t my friends join my Minecraft server?
The usual causes are a blocked firewall, missing port forwarding on a home router, the wrong public IP, the wrong port or protocol for the edition, or the whitelist refusing them. On a home connection, another common cause is that the public IP changed since last week. Start with reachability first, then check whitelist and version details.
Should I host at home or rent a Minecraft server?
Host at home if cost matters most and you are happy to manage networking and downtime risk yourself. Rent a VPS if you want full control and are comfortable with Linux admin. Use managed hosting if you mainly want the server to stay available with the least routine maintenance.
More Minecraft server guides
More Minecraft guides, plus our host comparisons for each edition.
Written for Minecraft Java Edition 26.3 and Bedrock Dedicated Server. Java versions and default settings are from the official server documentation.