Advanced Minecraft Local Virtualization Multiplayer Setup

Virtualized Minecraft multiplayer control panel with NAT traversal

Zoran · 3 min read · 482 words

The Traditional Approach

The most common multiplayer setup online is to rent a VPS and use its public IP for port forwarding. This is the simplest method, but VPS performance is often tied to your budget. If you’re on a tight budget, the hardware struggles to keep up with Minecraft’s requirements.

So, can we leverage local computing power and use NAT traversal to improve performance and make the multiplayer experience smoother?

In this guide, I’ll use VMware Workstation to set up a local Minecraft server.

Note: The following setup requires foundational networking knowledge!


Installing Ubuntu

VM Configuration

SettingValue
OSUbuntu Server 22.04 LTS
CPU4 cores
RAM8 GB
Disk50 GB
NetworkBridged

After installation, update the system:

sudo apt update && sudo apt upgrade -y

Installing the Minecraft Server

Install Java

sudo apt install openjdk-21-jre-headless -y
java -version

Download and Set Up PaperMC

mkdir ~/minecraft && cd ~/minecraft
wget https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/latest/downloads/paper-1.21.4-latest.jar
echo "java -Xms4G -Xmx4G -jar paper-1.21.4-latest.jar nogui" > start.sh
chmod +x start.sh

Accept the EULA:

echo "eula=true" > eula.txt
./start.sh

NAT Traversal Setup

Since we’re running on a local machine behind NAT, external players need a way to connect. We’ll use frp (Fast Reverse Proxy).

Server Side (VPS with Public IP)

# Download frp
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
tar -xzf frp_0.61.0_linux_amd64.tar.gz
cd frp_0.61.0_linux_amd64

Configure frps.toml:

bindPort = 7000
vhostHTTPPort = 8080

Run:

./frps -c frps.toml

Client Side (Local Minecraft Server)

Configure frpc.toml:

serverAddr = "YOUR_VPS_IP"
serverPort = 7000

[[proxies]]
name = "minecraft"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 25565

Run:

./frpc -c frpc.toml

Now players can connect via YOUR_VPS_IP:25565.


Web Control Panel

Install Crafty Controller

Crafty provides a web-based management panel:

sudo apt install python3 python3-pip -y
cd ~
git clone https://gitlab.com/crafty-controller/crafty-4.git
cd crafty-4
python3 install.py

Access the panel at https://localhost:8443.


Performance Tips

OptimizationImpact
Use Paper/Purpur instead of Vanilla🔴 High
Pre-generate chunks with Chunky🟡 Medium
Limit entity spawns in bukkit.yml🟡 Medium
Use Aikar’s JVM flags🔴 High
Schedule restarts for memory cleanup🟢 Low

Conclusion

This setup gives you:

Local hardware performance — no budget VPS bottleneck
Full control — web panel for management
NAT traversal — friends can join from anywhere
Cost-effective — minimal VPS only for the proxy

The only ongoing cost is the minimal VPS for the frp server, which doesn’t need much CPU/RAM since it only handles network traffic.