Skip to main content
← All Guides
Bedrock · 6 min read

How to Install Bedrock Dedicated Server on Linux

Step-by-step walkthrough for downloading, configuring and running a Bedrock Dedicated Server on Linux with systemd, firewall rules and automatic updates.

Why Run a Bedrock Dedicated Server on Linux

If your players are on phones, consoles or Windows 10/11, a bedrock dedicated server linux setup gives you full control over performance, mods and player limits without paying for Realms. Linux is the go-to choice for hosting because it uses less RAM than Windows, handles networking more efficiently and runs headless without a desktop environment eating resources. Most hosting providers ship Ubuntu or Debian by default, which makes this the most common deployment path.

This guide covers the entire process from downloading the official BDS binary to running it as a managed service. If you are looking to let Java players join as well, pair this with our crossplay guide after you finish here.

System Requirements

Mojang's official Bedrock Dedicated Server is an x86_64 binary. ARM boards like a Raspberry Pi will not work without emulation, and emulation adds enough overhead that we do not recommend it for production. Here is what you need:

  • Ubuntu 22.04+ or Debian 12+ (other distros work, but these have the smoothest dependency story)
  • At least 1 GB of RAM for a small server, 2 GB or more for 20+ players
  • 2 CPU cores minimum
  • A stable network connection with UDP port 19132 open

Downloading the Server Binary

Mojang distributes the bedrock dedicated server linux binary as a zip archive from minecraft.net/download/server/bedrock. You can grab it directly with curl or wget. Create a directory first to keep things tidy:

mkdir -p ~/bds && cd ~/bds
wget https://minecraft.net/bin-linux/bedrock-server-1.21.62.01.zip
unzip bedrock-server-1.21.62.01.zip

Replace the version number with whatever the latest release is. The zip extracts into the current folder, giving you the bedrock_server executable, a default server.properties file, resource and behavior pack directories, and a worlds folder.

Installing Dependencies

BDS requires a few libraries that may not be present on a minimal server install:

sudo apt update
sudo apt install -y libcurl4 openssl unzip

On CentOS or RHEL, swap apt for dnf and install the equivalent packages (libcurl, openssl).

Configuring server.properties

Open server.properties in your preferred editor. The most important keys for a new bedrock dedicated server linux setup are:

server-name=My Bedrock Server
gamemode=survival
difficulty=normal
max-players=20
server-port=19132
server-portv6=19133
level-name=MyWorld
online-mode=true
view-distance=10

Keep online-mode set to true unless you have a specific reason to disable Xbox Live authentication. For a deeper look at every property, see our server.properties reference.

Host any Bedrock or crossplay server with zero config headaches. Astroworld Hosting supports Geyser, BDS, and every server type on every plan.

Running the Server

Make the binary executable and start it:

chmod +x bedrock_server
LD_LIBRARY_PATH=. ./bedrock_server

The LD_LIBRARY_PATH=. prefix tells the linker to look in the current directory for shared libraries bundled with BDS. Without it, you will get missing library errors on most systems.

You should see log output showing the world loading and the server listening on port 19132. Connect from your Bedrock client using your machine's public IP and port 19132 to confirm everything works.

Running as a systemd Service

Running the server in a terminal session means it dies when you disconnect. A systemd unit file keeps it alive, restarts it on crashes and starts it automatically on boot.

[Unit]
Description=Bedrock Dedicated Server
After=network.target

[Service]
User=minecraft
WorkingDirectory=/home/minecraft/bds
Environment=LD_LIBRARY_PATH=/home/minecraft/bds
ExecStart=/home/minecraft/bds/bedrock_server
Restart=on-failure
RestartSec=5
StandardInput=null

[Install]
WantedBy=multi-user.target

Save this as /etc/systemd/system/bds.service, then enable and start it:

sudo systemctl daemon-reload
sudo systemctl enable bds
sudo systemctl start bds

Check status with systemctl status bds. Logs are accessible through journalctl -u bds -f.

Firewall and Port Configuration

BDS uses UDP, not TCP. If your firewall blocks UDP 19132 your players will never see the server in their friends list. On Ubuntu with ufw:

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

If you are behind a NAT router, forward UDP 19132 to your server's local IP. Console players on the same LAN can connect directly, but external players need that port forwarded. Our port forwarding guide covers router-specific steps.

Automatic Updates

Mojang does not ship an auto-updater for BDS. You can write a small bash script that checks the download page, pulls the latest zip and replaces the binary while preserving your worlds folder. A basic approach:

#!/bin/bash
cd /home/minecraft/bds
systemctl stop bds
cp -r worlds worlds_backup
wget -q LATEST_URL -O update.zip
unzip -o update.zip -x worlds/*
systemctl start bds

Run this on a cron schedule (weekly is usually fine) or trigger it manually when Mojang announces a new version.

Backups

The worlds directory contains all your map data. Back it up before every update and on a daily schedule. A simple tar command works:

tar -czf backup-$(date +%F).tar.gz worlds/

Store backups off-server if possible, either on a mounted volume or synced to cloud storage with rclone.

See crossplay in action: Astroworld MC, IP play.astroworldmc.com, Java + Bedrock.

Troubleshooting Common Issues

  • Server starts but nobody can connect: Check that UDP 19132 is open in both your OS firewall and your router/hosting panel.
  • Missing library errors: Make sure you include LD_LIBRARY_PATH=. when launching, or set it in your systemd unit.
  • Performance drops with 10+ players: Lower view-distance to 6 or 8, and make sure tick-distance is set to 4 (the default).
  • Cannot run on ARM: BDS is x86_64 only. Consider Nukkit or PocketMine-MP if you need ARM support.

With your bedrock dedicated server linux instance running behind systemd, firewall rules in place and backups scheduled, you have a production-ready setup. From here you can layer on add-ons, connect a Geyser proxy for Java players, or scale to a multi-server network.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe