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.
- Key Takeaways
| 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).
| 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 |
BDS is a native Linux binary requiring minimal dependencies:
sudo apt update
sudo apt install -y curl unzip screen
sudo mkdir -p /opt/minecraft-bedrock
sudo chown ubuntu:ubuntu /opt/minecraft-bedrock
cd /opt/minecraft-bedrock
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
LD_LIBRARY_PATH=. ./bedrock_server
Wait until you see: Server started.
Press Ctrl+C to stop. Now let's configure it properly.
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
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.
If white-list=true, add players via console:
whitelist add PlayerName
whitelist list
whitelist remove PlayerName
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
sudo journalctl -u minecraft-bedrock -f
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
# 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
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
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/
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.
YOUR_SERVER_IP19132Console 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:
For family/friend groups, the simplest approach is having console players connect through BedrockConnect or having them use the mobile/Windows version if available.
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:
Make sure online-mode=true in server.properties — consoles require Xbox authentication.
The server-portv6=19133 also needs to be open. Consoles sometimes prefer IPv6:
sudo ufw allow 19133/udp
If none of that works, consider the BedrockConnect DNS approach as a fallback for console connections.
| 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 |
✅ What you built:
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.
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.
👉 Get started with Tencent Cloud Lighthouse
👉 View current pricing and launch promotions
👉 Explore all active deals and offers