Technology Encyclopedia Home >Deploy a Minecraft Bedrock Edition Server on a VPS — Play with Console, Mobile, and PC Players Together

Deploy a Minecraft Bedrock Edition Server on a VPS — Play with Console, Mobile, and PC Players Together

Minecraft Bedrock Edition is the version that runs on Xbox, PlayStation, Nintendo Switch, iOS, Android, and Windows 10/11. The big advantage over Java Edition: Bedrock is cross-platform. You and your friends can play together regardless of what device they're on.

The Java Edition guide covered the Java server. This guide is specifically for Bedrock Dedicated Server (BDS) — the official Bedrock server software from Mojang — so your mobile, console, and PC friends can all join the same world.

I run the Bedrock server on Tencent Cloud Lighthouse. The 2 GB RAM / 2 vCPU plan handles 5–10 players on a vanilla world; 4 GB for more players or behavior packs. For cross-platform gaming (PC, Xbox, mobile, Switch), server region matters — Lighthouse's global data centers (US, Europe, Singapore, Tokyo) let you pick a location with low latency for your whole group, regardless of which devices they're using. The snapshot feature is also valuable before major game updates, which occasionally require world conversion steps.


Table of Contents

  1. Bedrock vs Java — Which Do You Need?
  2. Server Requirements by Player Count
  3. Part 1: Download and Install BDS
  4. Part 2: Configure the Server
  5. Part 3: Set Up as a System Service
  6. Part 4: Manage Your World
  7. Part 5: Add Behavior Packs and Resource Packs
  8. Part 6: Connect from Different Platforms
  9. The Thing That Tripped Me Up
  10. Troubleshooting
  11. Summary

  • Key Takeaways
  • Use the appropriate Lighthouse application image to skip manual installation steps where available
  • Lighthouse snapshots provide one-click full-server backup before major changes
  • OrcaTerm browser terminal lets you manage the server from any device
  • CBS cloud disk expansion handles growing storage needs without server migration
  • Console-level firewall + UFW = two independent protection layers

Bedrock vs Java — Which Do You Need? {#bedrock-vs-java}

Feature Java Edition Bedrock Edition
Platforms PC only PC, Xbox, PlayStation, Switch, iOS, Android
Cross-platform play No Yes (all Bedrock platforms)
Mods Rich ecosystem (Forge, Fabric) Behavior packs / add-ons only
Server software Paper, Spigot, Vanilla Bedrock Dedicated Server (BDS)
Console players Cannot join Can join
Mobile players Cannot join Can join

If you have friends on Xbox, PlayStation, or mobile phones → Bedrock Edition server.
If you're primarily PC and want full mod support → Java Edition server (see guide #04).


Server Requirements by Player Count {#requirements}

Players RAM CPU
1–5 1 GB 1 vCPU
5–10 2 GB 2 vCPU
10–20 4 GB 2–4 vCPU
20–40 8 GB 4 vCPU

Part 1: Download and Install BDS {#part-1}

1.1 — Install Dependencies

BDS is a native Linux binary requiring minimal dependencies:

sudo apt update
sudo apt install -y curl unzip screen

1.2 — Create a Server Directory

sudo mkdir -p /opt/minecraft-bedrock
sudo chown ubuntu:ubuntu /opt/minecraft-bedrock
cd /opt/minecraft-bedrock

1.3 — Download Bedrock Dedicated Server

Get the latest download link from minecraft.net/download/server/bedrock.

# Check the Minecraft download page for the latest URL
# The URL format: https://minecraft.azureedge.net/bin-linux/bedrock-server-VERSION.zip

BDS_VERSION="1.21.50.07"  # Update to the latest version
wget "https://minecraft.azureedge.net/bin-linux/bedrock-server-${BDS_VERSION}.zip" \
  -O bedrock-server.zip

unzip bedrock-server.zip
rm bedrock-server.zip
chmod +x bedrock_server

1.4 — Test Run

LD_LIBRARY_PATH=. ./bedrock_server

Wait until you see: Server started.

Press Ctrl+C to stop. Now let's configure it properly.


Part 2: Configure the Server {#part-2}

2.1 — Edit server.properties

nano /opt/minecraft-bedrock/server.properties

Key settings to customize:

# Server name shown in the server list
server-name=My Bedrock Server

# Game mode: survival, creative, adventure
gamemode=survival

# Difficulty: peaceful, easy, normal, hard
difficulty=normal

# Allow players to use cheats
allow-cheats=false

# Maximum number of players
max-players=10

# Server port (default 19132)
server-port=19132
server-portv6=19133

# Online mode (require Xbox account)
online-mode=true

# White list - only allow listed players
white-list=false

# Level name (world folder name)
level-name=Bedrock level

# Level seed (leave empty for random)
level-seed=

# View distance in chunks
view-distance=10

2.2 — Open Firewall Ports

Bedrock uses UDP (not TCP like Java Edition):

sudo ufw allow 19132/udp
sudo ufw allow 19133/udp
sudo ufw reload

Also open ports 19132/udp and 19133/udp in your Lighthouse console firewall.

2.3 — Whitelist Players (Optional)

If white-list=true, add players via console:

whitelist add PlayerName
whitelist list
whitelist remove PlayerName

Part 3: Set Up as a System Service {#part-3}

3.1 — Create systemd Service

sudo nano /etc/systemd/system/minecraft-bedrock.service
[Unit]
Description=Minecraft Bedrock Server
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/opt/minecraft-bedrock
ExecStart=/bin/bash -c 'LD_LIBRARY_PATH=. ./bedrock_server'
Restart=on-failure
RestartSec=10

# Capture console output
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable minecraft-bedrock
sudo systemctl start minecraft-bedrock
sudo systemctl status minecraft-bedrock

3.2 — View Server Logs

sudo journalctl -u minecraft-bedrock -f

3.3 — Send Commands to the Server

With systemd, commands can be sent via stdin:

# Stop the server gracefully
sudo systemctl stop minecraft-bedrock

# For interactive console access, use screen instead:
screen -S bedrock bash -c "cd /opt/minecraft-bedrock && LD_LIBRARY_PATH=. ./bedrock_server"

# Reattach to the screen session
screen -r bedrock

Part 4: Manage Your World {#part-4}

4.1 — Backup Your World

# Stop the server, backup, restart
sudo systemctl stop minecraft-bedrock
tar -czf ~/bedrock-backup-$(date +%Y%m%d).tar.gz /opt/minecraft-bedrock/worlds/
sudo systemctl start minecraft-bedrock

Automate with a cron job:

crontab -e

Add:

# Daily backup at 3am
0 3 * * * sudo systemctl stop minecraft-bedrock && tar -czf ~/backups/bedrock-$(date +\%Y\%m\%d).tar.gz /opt/minecraft-bedrock/worlds/ && sudo systemctl start minecraft-bedrock

4.2 — Update the Server

When a new BDS version is released:

sudo systemctl stop minecraft-bedrock

# Backup worlds first
cp -r /opt/minecraft-bedrock/worlds ~/worlds-backup

# Download new version
BDS_NEW_VERSION="1.21.60.00"  # Update to latest
cd /opt/minecraft-bedrock
wget "https://minecraft.azureedge.net/bin-linux/bedrock-server-${BDS_NEW_VERSION}.zip" -O bedrock-server.zip
unzip -o bedrock-server.zip  # -o overwrites existing files
rm bedrock-server.zip
chmod +x bedrock_server

sudo systemctl start minecraft-bedrock

Part 5: Add Behavior Packs and Resource Packs {#part-5}

5.1 — Install Add-ons

Bedrock uses .mcaddon or .mcpack files (which are zip archives):

# Extract the pack
unzip MyPack.mcaddon

# Resource packs go here
mkdir -p /opt/minecraft-bedrock/resource_packs
cp -r ResourcePack/ /opt/minecraft-bedrock/resource_packs/

# Behavior packs go here
mkdir -p /opt/minecraft-bedrock/behavior_packs
cp -r BehaviorPack/ /opt/minecraft-bedrock/behavior_packs/

5.2 — Activate Packs for a World

Edit the world's world_behavior_packs.json or world_resource_packs.json:

ls /opt/minecraft-bedrock/worlds/
# Find your world name folder

nano /opt/minecraft-bedrock/worlds/WORLDNAME/world_behavior_packs.json
[
  {
    "pack_id": "PACK_UUID_FROM_MANIFEST",
    "version": [1, 0, 0]
  }
]

The UUID comes from the pack's manifest.json file.


Part 6: Connect from Different Platforms {#part-6}

Windows 10/11

  1. Open Minecraft (Bedrock Edition)
  2. Play → Servers → Add Server
  3. Server name: anything
  4. Server address: YOUR_SERVER_IP
  5. Port: 19132
  6. Click Save and connect

iOS and Android

  1. Open Minecraft
  2. Play → Servers → Add Server
  3. Same settings as above

Xbox, PlayStation, Nintendo Switch

Console players face a restriction: Microsoft's policy prevents adding custom server IPs through the normal UI. The common workaround is using a DNS modification approach.

The recommended method for console players:

  1. Use BedrockConnect (open source DNS-based solution)
  2. Or join through Realm invitations if you set up a Realm
  3. Or use a featured server slot workaround

For family/friend groups, the simplest approach is having console players connect through BedrockConnect or having them use the mobile/Windows version if available.


The Thing That Tripped Me Up {#gotcha}

My server was running fine and PC/mobile players could connect, but my friend on Xbox couldn't join. The console showed a connection error even though port 19132 was open.

The issue: Xbox and other consoles connect to servers through Microsoft's relay infrastructure, which uses specific port ranges. My server was responding correctly, but the console's network path was different from PC's direct connection.

Two things that helped:

  1. Make sure online-mode=true in server.properties — consoles require Xbox authentication.

  2. The server-portv6=19133 also needs to be open. Consoles sometimes prefer IPv6:

sudo ufw allow 19133/udp
  1. For Xbox specifically, the friend needs to connect while the server is on the friends list. Have them go to Play → Friends tab in Minecraft — if the server is running and they're Xbox friends, the world should appear there.

If none of that works, consider the BedrockConnect DNS approach as a fallback for console connections.


Troubleshooting {#troubleshooting}

Issue Likely Cause Fix
Server not found in server list Wrong IP/port or firewall Verify port 19132/UDP is open; check public IP
Can't connect from Xbox Console restrictions Ensure online-mode=true; try BedrockConnect
Server crashes on start Missing library Run ldd bedrock_server to check missing dependencies
Permission denied Wrong file permissions chmod +x bedrock_server
World not loading Corrupted world files Restore from backup
High latency Server too far geographically Switch to a Lighthouse region closer to your players
"Outdated server" error Version mismatch Update BDS to match client version

Summary {#verdict}

What you built:

  • Minecraft Bedrock Dedicated Server running 24/7
  • Systemd service for automatic startup and crash recovery
  • UDP firewall rules on ports 19132–19133
  • World backups via automated cron job
  • Cross-platform: PC, mobile, and console players can join together

Bedrock servers are notably lighter than Java Edition — the official dedicated server binary is efficient and well-optimized. A 2 GB RAM instance handles a typical friend group comfortably.

Frequently Asked Questions {#faq}

What server size do I need for a Minecraft Bedrock server?
Check the requirements section in this guide. Generally: more RAM = more players. Start with the recommended specs and monitor actual usage with htop before scaling up.

How do I keep the Minecraft Bedrock server running when I close my SSH session?
Use screen, tmux, or systemd to run the server as a background process. The guide covers setting up a systemd service for automatic startup and crash recovery.

How do I update the Minecraft Bedrock server software?
Stop the server, download the new version, replace the old binary or files, and restart. Always back up your world/save data first. Check the game's official documentation for version-specific migration notes.

How do I protect my server from unwanted players?
Use password protection and/or whitelist mode (if supported). Restrict the server port in UFW to known IP addresses if it's a private server for a small group.

What region should I choose for the server?
Choose the Lighthouse data center closest to where most of your players are located. Latency is directly tied to geographic distance from the server.

👉 Get started with Tencent Cloud Lighthouse
👉 View current pricing and launch promotions
👉 Explore all active deals and offers