Best VPS for Minecraft Server (2025)

Hosting your own Minecraft server on a VPS gives you full control over your world, plugins, and community. For a broader game server guide, see Best VPS for Game Servers. Unlike managed Minecraft hosting providers that charge premium prices for limited resources, a VPS provides dedicated CPU cores, generous storage, and the freedom to install any server software, mods, or plugins you want. This guide covers everything you need to choose, set up, and optimize a Minecraft server on a VPS in 2025.

The most critical factor for a smooth Minecraft experience is choosing the right hardware. Minecraft's single-threaded nature means CPU single-core performance matters more than total core count. RAM determines your player capacity, and NVMe storage ensures fast chunk loading and world saves. For European players, a Germany VPS provides excellent latency across the continent, while a Netherlands VPS is ideal for UK and Western European players.

Player Count vs RAM Requirements

Minecraft's RAM requirements scale with player count, world size, and the number of plugins or mods installed. The vanilla server software is lightweight, but adding plugins (Bukkit/Spigot/Paper) and world generation features like pre-generation and chunk loading increase memory usage substantially.

Player CountRAM RequiredRecommended vCPUStorageInferno PlanPrice/mo
1-5 players2 GB1 vCPU20 GBStarter$3.49
10-20 players4 GB2 vCPU40 GBProfessional$6.99
30-50 players8 GB4 vCPU80 GBEnterprise$14.99
50-100 players16 GB4-6 vCPU160 GBElite$29.99
100+ players16-32 GB8 vCPU320 GBElite+$49.99
Important: These numbers assume PaperMC with moderate plugins (10-20). Modded servers (Forge/Fabric) can require 2-3x more RAM due to mod overhead. A 50-player vanilla server may need 8 GB, while the same player count with a modpack like All The Mods could require 16-24 GB. Always test your specific setup and monitor memory usage with the /spark command in-game.

RAM Allocation Best Practices

Never allocate all available RAM to Minecraft. The operating system, Java runtime, and other processes need memory too. A common mistake is assigning 8 GB to the JVM on an 8 GB VPS, which causes the server to crash under load. Leave 1-2 GB for the OS and allocate the rest to Minecraft.

For example, on a VPS with 8 GB RAM, allocate 6 GB to Minecraft using the -Xms6G -Xmx6G JVM flags. The remaining 2 GB handles the operating system, SSH, file system caching, and any background processes. Using the same value for initial (-Xms) and maximum (-Xmx) heap size prevents JVM resizing overhead during gameplay.

Java vs Bedrock Edition

Minecraft exists in two editions: Java Edition (PC/Mac/Linux) and Bedrock Edition (consoles, mobile, Windows 10+). They use different server software and have different performance profiles.

FeatureJava EditionBedrock Edition
Server SoftwarePaperMC, Purpur, Fabric, ForgeBedrock Dedicated Server (BDS)
Plugins/ModsExtensive ecosystem (50,000+)Limited addon support
RAM UsageHigher (Java overhead)Lower (C++ native)
CPU UsageSingle-threaded (1 core)Multi-threaded (uses multiple cores)
Platform SupportPC, Mac, Linux onlyCross-platform (consoles, mobile, PC)
Performance at Same PlayersRequires 20-30% more RAMMore efficient per player

Bedrock servers are approximately 30% more memory-efficient than Java servers and can utilize multiple CPU cores. If your player base uses primarily consoles and mobile devices, Bedrock is the better choice. For a PC-focused community that wants extensive plugin support, Java with PaperMC is the standard.

Step-by-Step Minecraft Server Setup

Step 1: Install Java (for Java Edition)

# Update system
sudo apt update && sudo apt upgrade -y

# Install Java 21 (required for Minecraft 1.20.5+)
sudo apt install -y openjdk-21-jre-headless

# Verify Java installation
java -version

Step 2: Create a Minecraft User and Directory

# Create dedicated user for security
sudo useradd -r -m -d /opt/minecraft -s /bin/bash minecraft

# Create server directory
sudo mkdir -p /opt/minecraft/server
sudo chown minecraft:minecraft /opt/minecraft/server

# Switch to minecraft user
sudo su - minecraft
cd /opt/minecraft/server

Step 3: Download PaperMC

# Download the PaperMC jar (check papermc.io for latest version)
wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/52/downloads/paper-1.21.1-52.jar -O paper.jar

# Accept the EULA
echo "eula=true" > eula.txt

Step 4: Create a Startup Script with Optimized JVM Flags

# Create startup script with Aikar's flags (industry standard optimization)
cat > start.sh << 'EOF'
#!/bin/bash
cd /opt/minecraft/server
java -Xms4G -Xmx4G \
  -XX:+UseG1GC \
  -XX:+ParallelRefProcEnabled \
  -XX:MaxGCPauseMillis=200 \
  -XX:+UnlockExperimentalVMOptions \
  -XX:+DisableExplicitGC \
  -XX:G1NewSizePercent=30 \
  -XX:G1MaxNewSizePercent=40 \
  -XX:G1HeapRegionSize=8M \
  -XX:G1ReservePercent=20 \
  -XX:G1HeapWastePercent=5 \
  -XX:G1MixedGCCountTarget=4 \
  -XX:InitiatingHeapOccupancyPercent=15 \
  -XX:G1MixedGCLiveThresholdPercent=90 \
  -XX:G1RSetUpdatingPauseTimePercent=5 \
  -XX:SurvivorRatio=32 \
  -XX:+PerfDisableSharedMem \
  -XX:MaxTenuringThreshold=1 \
  -Dusing.aikars.flags=https://mcflags.emc.gs \
  -Daikars.new.flags=true \
  -jar paper.jar nogui
EOF

chmod +x start.sh
Aikar's Flags: These JVM flags are the industry-standard optimization for Minecraft servers. They configure the G1 garbage collector for low pause times (reducing lag spikes), optimize heap region sizes for Minecraft's memory access patterns, and minimize GC overhead. Always use these flags unless you have a specific reason to modify them.

Step 5: Start the Server

# Start the server (runs in foreground for testing)
./start.sh

# Once confirmed working, set up systemd for background operation
exit  # Return to root user

# Create systemd service
sudo tee /etc/systemd/system/minecraft.service << 'EOF'
[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/opt/minecraft/server/start.sh
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=10
StandardInput=null
StandardOutput=journal
StandardError=journal

# Security settings
NoNewPrivileges=true
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

# Enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft

# Check server status
sudo systemctl status minecraft

# View server logs
sudo journalctl -u minecraft -f

Step 6: Configure Server Properties

# Edit server.properties for optimal performance
sudo nano /opt/minecraft/server/server.properties

# Key settings to modify:
# view-distance=8              (reduce from 10 for better performance)
# simulation-distance=6        (reduce from 10 for fewer loaded chunks)
# network-compression-threshold=256
# max-tick-time=60000
# sync-chunk-writes=false      (use async chunk saving)
# max-players=30               (set to your expected peak)
# enable-command-block=true

Performance Optimization with PaperMC

PaperMC is the recommended server software for Java Edition. It includes significant performance improvements over vanilla and Spigot, including optimized chunk loading, reduced garbage collection pressure, entity activation range improvements, and async chunk generation.

Paper Configuration (paper-global.yml)

# Edit Paper's global configuration
sudo nano /opt/minecraft/server/config/paper-global.yml

# Recommended optimizations:
# chunks:
#   entity-tick-range: 2
#   auto-save-interval: 6000
#   max-auto-save-chunks-per-tick: 6
# entities:
#   despawn-ranges:
#     monster: 28
#     animal: 32
#     ambient: 32
#   tick-rates:
#     monster: 1
#     animal: 400
#     ambient: 400

Pre-generate Chunks

Pre-generating chunks eliminates lag caused by on-demand world generation when players explore new areas. Use the Chunky plugin to pre-generate a spawn area of 5000 blocks in each direction.

# Download Chunky plugin
cd /opt/minecraft/server/plugins
wget https://modrinth.com/plugin/chunky/version/2.2.0/download -O Chunky.jar

# Restart the server
sudo systemctl restart minecraft

# In-game commands to pre-generate:
# /chunky radius 5000
# /chunky start
# /chunky center 0 0
# Monitor progress with: /chunky progress

DDoS Protection for Minecraft Servers

Minecraft servers are frequent targets for DDoS attacks. A disgruntled player or a rival server operator can launch an attack that makes your server inaccessible. Unlike web applications that can use CDN protection, Minecraft uses TCP connections on port 25565 that cannot be easily proxied through Cloudflare.

Choose a VPS provider that includes network-level DDoS protection. Inferno VPS includes DDoS mitigation on all plans, which filters malicious traffic before it reaches your server. This is critical for public servers — a single DDoS attack on an unprotected VPS can cause hours of downtime and may lead to your IP being null-routed by the hosting provider.

For additional protection, consider running your Minecraft server behind a TCP proxy like TCPShield or using a dedicated gaming DDoS protection service. These services filter traffic at the network edge and only forward legitimate connections to your server.

Provider Comparison for Minecraft Hosting

Provider4 GB Plan8 GB Plan16 GB PlanCPUDDoS ProtectionNVMe Storage
Inferno VPS$6.99/mo$14.99/mo$29.99/moRyzen 9 7950XIncludedYes
Hetzner$8.86/mo$17.73/mo$35.46/moAMD EPYCIncluded (basic)Ceph NVMe
Apex Hosting$12.99/mo$24.99/mo$47.99/moSharedIncludedSSD
BisectHosting$7.99/mo$15.99/mo$31.99/moSharedIncludedNVMe
DigitalOcean$24/mo$48/mo$96/moIntel XeonNoNVMe

Inferno VPS offers the best price-to-performance ratio for Minecraft hosting. The Ryzen 9 7950X processor delivers industry-leading single-thread performance, which directly translates to higher server tick rates (TPS) and smoother gameplay. At $14.99/month for 4 vCPU and 8 GB RAM, Inferno supports 30-50 players comfortably with PaperMC and moderate plugins — a configuration that would cost $25-50/month with managed Minecraft hosting providers.

Bedrock Server Setup

For Bedrock Edition, the setup is simpler since the server software is compiled natively for Linux.

# Download Bedrock Dedicated Server
cd /opt/minecraft
wget https://minecraft.azureedge.net/bin-linux/bedrock-server-1.21.50.07.zip
unzip bedrock-server-1.21.50.07.zip -d bedrock-server
cd bedrock-server

# Set permissions
chmod +x bedrock_server

# Edit server.properties
nano server.properties
# Set: server-name=My Server, max-players=20, view-distance=8

# Start with screen (for background operation)
sudo apt install -y screen
screen -S bedrock
LD_LIBRARY_PATH=. ./bedrock_server

# Detach from screen: Ctrl+A, then D
# Reattach: screen -r bedrock

Pros and Cons: VPS Minecraft Hosting

Advantages

  • Full root access — install any plugins, mods, or server software
  • Significantly cheaper than managed Minecraft hosting providers
  • Dedicated CPU cores ensure consistent tick rates under load
  • NVMe storage for fast chunk loading and world saves
  • Can run multiple servers on the same VPS (Java + Bedrock)
  • DDoS protection included on most VPS providers
  • Easy to scale — upgrade RAM/CPU without migrating worlds
  • Full control over firewall, backups, and server configuration

Disadvantages

  • Requires Linux command line knowledge for initial setup
  • No one-click control panel (unless you install Pterodactyl or Multicraft)
  • You handle security patches, Java updates, and troubleshooting
  • No managed backups — you must configure your own backup strategy
  • Customer support is general VPS support, not Minecraft-specific
  • Shared CPU on budget plans may cause tick rate drops during peak usage

Backup Strategy

World data is irreplaceable. Set up automated backups using a simple cron job that creates compressed archives of your world directory.

# Create backup directory
mkdir -p /opt/minecraft/backups

# Add to crontab (daily backups at 4 AM)
crontab -e
# Add: 0 4 * * * tar -czf /opt/minecraft/backups/world-$(date +\%Y\%m\%d-\%H\%M).tar.gz -C /opt/minecraft/server world --exclude=world/*/region/r.*.mca.tmp

# Keep only last 7 backups (add another cron job)
# 0 5 * * * find /opt/minecraft/backups -name "world-*.tar.gz" -mtime +7 -delete

# For off-site backup, sync to a remote server:
# rsync -avz /opt/minecraft/backups/ user@remote:/backups/minecraft/

Frequently Asked Questions

How many players can a 4 GB VPS handle in Minecraft?

A 4 GB VPS running PaperMC with Aikar's flags and 10-15 lightweight plugins can handle 15-25 simultaneous players with stable 20 TPS. Without optimization (vanilla server), expect 10-15 players. With heavy modpacks, the same hardware may only support 5-10 players. Pre-generating chunks and optimizing view distance significantly increase capacity.

What is the best server software for Minecraft in 2025?

PaperMC is the recommended choice for most servers in 2025. It provides the best balance of performance, plugin compatibility, and stability. Purpur (a Paper fork) adds additional optimizations for high-player-count servers. Fabric is recommended for modded servers. Avoid vanilla server software for production servers due to its poor performance characteristics.

Can I run both Java and Bedrock on the same VPS?

Yes. Use GeyserMC to allow Bedrock players to connect to your Java server. GeyserMC translates Bedrock protocol to Java protocol and requires an additional 200-500 MB of RAM. Alternatively, run separate Java and Bedrock servers on different ports. A VPS with 8 GB RAM can comfortably run both simultaneously.

How much bandwidth does a Minecraft server use?

A typical Minecraft server uses 50-100 MB per hour per player for standard gameplay. A 20-player server running 24/7 consumes approximately 25-50 GB of bandwidth per month. Most VPS plans include more than enough bandwidth. However, world downloads, modpack distribution, and player map rendering plugins can increase bandwidth usage significantly.

Do I need DDoS protection for a private Minecraft server?

Even private servers with whitelists can be DDoS attacked if the IP address is leaked. Choose a VPS provider with built-in DDoS protection. The cost of unprotected downtime and IP null-routing far exceeds the small premium for a DDoS-protected VPS. Inferno VPS includes DDoS mitigation on all plans at no additional cost.

Can I install a control panel like Pterodactyl on a VPS?

Yes. Pterodactyl is a free, open-source game server control panel that provides a web interface for managing Minecraft servers. It requires a separate VPS for the panel (1 vCPU, 1 GB RAM minimum) and supports multiple game servers across multiple nodes. Pterodactyl also supports SFTP file access, scheduled tasks, and player activity monitoring.

What CPU is best for Minecraft servers?

Minecraft is single-threaded, so single-core clock speed matters more than core count. AMD Ryzen 9 7950X processors (used by Inferno VPS) offer the best single-thread performance available on VPS platforms, resulting in higher and more stable TPS. Intel Xeon and AMD EPYC server processors have lower clock speeds and typically deliver 15-30% lower single-thread performance, which manifests as reduced TPS under player load.

Launch your Minecraft server today

Get a high-performance VPS with Ryzen 9 processors, NVMe storage, and built-in DDoS protection. Perfect for PaperMC, modded servers, and growing communities.

Get Your VPS →