Advanced Minecraft Local Virtualization Multiplayer Setup
Virtualized Minecraft multiplayer control panel with NAT traversal
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
| Setting | Value |
|---|---|
| OS | Ubuntu Server 22.04 LTS |
| CPU | 4 cores |
| RAM | 8 GB |
| Disk | 50 GB |
| Network | Bridged |
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
| Optimization | Impact |
|---|---|
| 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.