How to set up a private server for friends?

private server

Running a private server means your rules, your mods, your whitelist. No strangers griefing your Minecraft builds. No random Rust raids at 3am from people who shouldn’t even be in your lobby. In 2026, the hardware is cheaper, the software is better, and the guides are still hopelessly outdated. Let’s fix that.

Why bother with a private server?

Public servers are fine until they’re not. Ping spikes. Admin abuse. Plugins you didn’t ask for. A private server gives you total control over the experience — the player list, the tick rate, the rules. You decide who gets OP. You decide when to reset the world.

Total control
Whitelist, mods, difficulty, tick rate — every setting is yours to own.
Custom mods
Run any modpack or plugin stack without a host’s approval process.
Low latency
A server close to your group means lag stops being a conversation topic.

Method 1: local hosting — your own hardware

This is where most people start. Your gaming PC is already on — why not make it the server too? The logic holds until it doesn’t. Running a Minecraft Java server for 5–8 players requires at minimum 6–8 GB of RAM just for the server process, plus your OS and background tasks. For Palworld or Rust, double that.

Minimum — small group
Home PC setup
CPU6-core / 3.5GHz+
RAM16GB (8 for server)
Upload50 Mbps+
StorageSSD required
Recommended — 10+ players
Dedicated home box
CPU8-core / 4GHz+
RAM32GB
Upload100 Mbps symmetric
StorageNVMe SSD

Three ways to let friends connect

A
Hamachi or Radmin VPN
Install, create a network, share the ID. Friends join a virtual LAN. No router config needed. Radmin is more stable than Hamachi for gaming in 2026. Gets flaky above 5 players.
Easy
B
Port forwarding
Log into your router (usually 192.168.1.1), open the game’s port, point it to your local IP. The real way to do it — no third-party dependency.
Moderate
C
Playit.gg / Ngrok tunnels
No port forwarding, no router access required. Playit.gg offers permanent static addresses on the free tier. Best option for apartments, dorms, or ISP-locked modems.
Easy

Common ports to forward:

port reference
Minecraft Java TCP 25565 Minecraft Bedrock UDP 19132 Palworld UDP 8211 Rust UDP 28015 + TCP 28016 (RCON) Valheim UDP 2456–2458

Most residential ISPs rotate your public IP periodically. Set up DuckDNS (free) for a stable hostname your friends can bookmark instead of chasing a new IP every week.

Method 2: cloud VPS — the professional approach

Renting a cloud VPS is how dedicated server hosting is supposed to work. Your machine runs 24/7 with no impact on your gaming PC, lives in a data center with symmetrical gigabit fiber, and has a static IP baked in. When your friends ask why the server is offline, the answer is never “I turned off my PC.”

Clock speed beats core count for most game servers — a 4-core VPS at 4.5GHz outperforms an 8-core at 2.8GHz for Minecraft and similar single-threaded workloads.

Budget
$5–12/mo
  • 2 vCPU / 4GB RAM
  • Minecraft vanilla (10 players)
  • Hetzner, Contabo, DigitalOcean
  • Light modpacks only
Sweet spot
$20–40/mo
  • 4 vCPU / 8–16GB RAM
  • Modded Minecraft, Palworld, Valheim
  • OVHcloud, Linode, Vultr
  • Most friend groups live here
Performance
$60–120/mo
  • 8+ vCPU / 32GB RAM
  • Rust (100+ players), ARK, DayZ
  • Dedicated CPU, not shared
  • Competitive communities

1-click installers vs. manual setup

Game-specific hosts5 min setup
Bisect, Apex Hosting, Nodecraft. Dashboard-driven. Limited deep config. Best for non-technical users who just want it working.
PteroPanel / AMP2–4 hrs
Full-featured multi-game server manager. Self-hosted on your VPS. Great if you’re running more than one game.
Manual CLI on Linux1–2 hrs
Raw control, no overhead. Ubuntu + screen/tmux + the game binary. Steepest learning curve, lowest runtime cost.
Docker containers30–60 min
Portable, reproducible, easy to swap versions. itzg/minecraft-server on Docker Hub handles nearly everything automatically.

Quick-start checklists by game

Minecraft
Roblox
Palworld / Rust

Minecraft’s server ecosystem is the most mature in gaming. Java and Bedrock run on completely different server software — don’t mix them up. PaperMC (Java) and PocketMine-MP (Bedrock) both significantly outperform vanilla.

  • Download PaperMC (Java) or PocketMine-MP (Bedrock)
  • Edit server.properties — set max-players, difficulty, level-name
  • Allocate RAM in startup: java -Xms2G -Xmx6G -jar paper.jar
  • Whitelist friends via console: /whitelist add PlayerName
  • Forward TCP 25565 (Java) or UDP 19132 (Bedrock)
  • Add plugins via /plugins folder — EssentialsX + LuckPerms cover 80% of needs

Roblox manages infrastructure differently — you’re not running a binary. For most friend groups, a Private Server (100–200 Robux/month depending on the game) is the right answer. For building and testing your own experience, use Roblox Studio’s local server simulator which runs up to 8 client instances on one machine.

  • Navigate to the game page → Servers tab → Create Private Server
  • Share the private server link directly — only invited players can join
  • For custom games: publish from Studio, configure server scripts, test with Play Solo first
  • Use server-side Scripts (not LocalScripts) for any logic that must be authoritative
  • Test with Studio’s multi-client simulator before publishing to friends

Palworld‘s server process wants 8GB RAM and a real CPU. Rust is worse. For serious groups, you need dedicated CPU hosting or a machine that’s not doubling as your gaming rig. Both use SteamCMD for server file management.

  • Download via SteamCMD: +app_update 2394010 validate (Palworld) or 258550 (Rust)
  • Palworld: set ServerPlayerMaxNum to 10–16 — higher tanks performance
  • Rust: disable unused Oxide plugins, cap at 50 players, set wipe schedules
  • Run in a screen or tmux session so it survives SSH disconnect
  • Schedule automated restarts every 6–12 hrs via cron — memory leaks are real

Troubleshooting “can’t connect” errors

Server isn’t actually running
Check the console output. A server that crashed silently looks identical to one that never started. Look for error messages, not just absence of output.
Wrong IP or port
Your local IP (192.168.x.x) only works for same-network players. Everyone else needs your public IP or DuckDNS hostname. Confirm the port matches the exact game — Minecraft Java clients can’t connect to a Bedrock address.
Firewall blocking the port
Even with port forwarding set correctly, Windows Defender or UFW on Linux may be silently dropping packets. On Windows: add an inbound firewall rule for the port. On Ubuntu: sudo ufw allow 25565/tcp
connectivity check
# Verify the port is actually open and listening Linux: sudo ss -tulnp | grep [PORT] Windows: netstat -an | findstr [PORT] # If port shows LISTEN → server is up # If empty → process isn’t running or bound wrong

Private server security basics

Running your own server makes you responsible for its security. That’s not scary — but don’t skip this part.

DDoS protection
If hosting at home, your residential IP is exposed when shared. Route traffic through Cloudflare’s free proxy, or use a DDoS-protected game host at the performance tier.
Don’t run as root
Create a dedicated Linux user for the server process. If someone exploits a vulnerability, they shouldn’t get root access to the entire machine.
Firewall from day one
Block everything, then open only what the game needs. UFW on Ubuntu makes this simple — two commands and you’re protected.
Automate backups
A corrupted world file from a bad shutdown can wipe months of builds. Weekly rsync to a separate location costs nothing. Snapshot it.
ufw setup
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow ssh sudo ufw allow 25565/tcp # your game port here sudo ufw enable

The verdict: which setup is right for you?

Match your budget and technical comfort to the right approach.

Zero budget, non-technical Use Playit.gg or Radmin VPN. No router access needed, free tier covers small groups, ready in 20 minutes.
Zero budget, technical Oracle Cloud Always Free tier + Linux. 24GB RAM ARM instance. Takes a few hours but costs nothing ongoing.
Small budget ($10–20/mo) Hetzner or DigitalOcean VPS. Best price-to-performance in 2026. Covers most games for groups under 15 players.
Serious community Dedicated CPU hosting — OVH Game, Hetzner Dedicated. Real hardware, no shared resources, DDoS protection included.

Whatever path you pick, the first session on a server you built yourself hits different. There’s something satisfying about knowing exactly why the world exists, who’s on it, and that nobody’s going to shut it down because a host pivoted their business model. That part hasn’t changed since the early days of private servers — and it’s still the whole point.

Scroll to Top