Get your free server today! View Plans →
Home Plans Blog About Contact Panel Join Discord
Minecraft

How to set up a Minecraft Bedrock dedicated server

Run your own Minecraft Bedrock Edition server for phone, console, and Windows players. A clear, followable guide from download to first join.

How to set up a Minecraft Bedrock dedicated server

By the end of this guide you'll have a dedicated Minecraft Bedrock server running on your own machine, with a few friends able to join from their phones, an Xbox, a Switch, or a Windows 10 or 11 PC. This is for anyone who plays Bedrock Edition and wants a world that stays online even when nobody is hosting from inside the game. No coding experience needed, just a willingness to edit a couple of text files.

Bedrock is not Java, and that matters

Minecraft comes in two flavours. Java Edition runs on desktops and uses one set of server software. Bedrock Edition runs on phones, consoles, and the Windows store version, and it uses a completely different server program. The two do not talk to each other out of the box. So if your friends play on an iPad or an Xbox, a Java server will not help them, and a Bedrock server will not let Java players in either.

The good news is that Mojang publishes a free, official Bedrock server program. It's a single file called bedrock_server on Linux or bedrock_server.exe on Windows. It's lightweight, it runs from the command line, and it doesn't need much hardware. A small world for four or five people is happy on 1 to 2 GB of RAM and a couple of CPU cores.

One thing to know up front. Bedrock servers communicate over UDP port 19132, not TCP. That single detail trips up more people than anything else, so keep it in mind for later.

What you'll need

Step 1: Download the official Bedrock server

Mojang hosts the download on the official Minecraft site under the dedicated server section. The file is a zip. Grab the build that matches the platform you're running on, Linux or Windows, and note the version number in the file name. You want the server version to match the game version your friends are on, or they'll get a version mismatch when they try to join.

On a Linux server you can pull it straight down with wget. Replace the URL and version with the current one from the download page.

mkdir ~/bedrock
cd ~/bedrock
wget https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-1.21.0.03.zip
unzip bedrock-server-1.21.0.03.zip

After it unzips you'll see bedrock_server, a server.properties file, and a couple of JSON files. Those JSON files are how you control who's allowed in and who gets admin powers. We'll get to them.

Step 2: The server.properties settings that actually matter

Open server.properties in a text editor. On Linux that's nano server.properties. It's a plain list of key=value lines. Most of the defaults are fine. Here are the ones worth changing.

SettingWhat it doesSensible value
server-nameThe name shown in the server list and the world titleMy Bedrock World
gamemodeDefault mode for new playerssurvival
difficultyHow hard the world isnormal
max-playersHow many can join at once10
server-portThe IPv4 port, leave at the default19132
server-portv6The IPv6 port19133
allow-listIf true, only listed players can joinfalse (true for private worlds)
online-modeVerify accounts against Xbox Livetrue

A trimmed down example looks like this.

server-name=My Bedrock World
gamemode=survival
difficulty=normal
max-players=10
server-port=19132
server-portv6=19133
allow-list=false
online-mode=true
view-distance=10

Leave server-port on 19132 unless you have a real reason to change it. A lot of clients assume that default, and changing it means everyone has to type the port by hand. Save the file and close the editor.

Step 3: Run it on Linux

The Bedrock server needs to find some shared libraries that ship inside its own folder, so you start it with a small environment tweak. From inside the ~/bedrock folder, run this.

LD_LIBRARY_PATH=../bedrock_server

You should see lines scroll past as it loads, ending with something like this.

[INFO] Starting Server
[INFO] Version 1.21.0.03
[INFO] Server started.
[INFO] IPv4 supported, port: 19132
[INFO] IPv6 supported, port: 19133

That last block is what you want. The server is up. To stop it cleanly, type stop at the prompt and press Enter, which saves the world before shutting down. Don't just kill the process, since that can lose recent changes.

One catch. The moment you close your terminal, the server stops. To keep it running after you log out, use a tool like screen or tmux, or set it up as a service. A quick way with screen:

sudo apt install screen
screen -S bedrock
LD_LIBRARY_PATH=../bedrock_server

Press Ctrl+A then D to detach and leave it running in the background. Come back to it later with screen -r bedrock. If you'd rather skip all of this, a managed panel like the one at panel.bytte.cloud handles the start, stop, and auto restart for you, but everything here works fine by hand.

Step 4: Run it on Windows

On Windows the steps are similar but simpler. Unzip the Windows download into a folder, for example C:\bedrock. Open that folder and double click bedrock_server.exe. A console window opens and the server starts.

The first time you run it, Windows Defender Firewall will probably pop up asking whether to allow the program. Tick the boxes for both private and public networks and click Allow. If you miss that prompt, nobody outside your PC will be able to connect, and you'll have to add a firewall rule by hand later.

To stop the Windows server, click into the console window and type stop, same as on Linux. Edit server.properties with Notepad exactly as described above.

Step 5: The allow list and setting operators

If you set allow-list=true in step 2, only named players can get in. You manage that list from the server console while it's running. With the server up, type these commands one at a time.

allowlist add SteveBuilds
allowlist add AlexMines
allowlist reload

Use the exact Xbox gamertag, spelled the way it appears in game. Now for admin powers. Operators (ops) can run commands like changing the time, the weather, or the game mode. You grant op the same way from the console.

op SteveBuilds

Behind the scenes this writes to permissions.json, which lives in the server folder. You can edit that file directly too if you prefer. It maps a player's XUID (a unique account ID) to a permission level. After a player has joined once, their XUID shows up in the logs, and the file looks like this.

[
  {
    "permission": "operator",
    "xuid": "2535412345678901"
  },
  {
    "permission": "member",
    "xuid": "2535419876543210"
  }
]

The three levels are visitor, member, and operator. Most people stay member. Give operator only to people you trust, because it includes the ability to change other players' permissions.

Step 6: Open the port so people can join

This is the step that decides whether anyone outside your home or your server can actually connect. Bedrock uses UDP on port 19132. Not TCP. If you forward the wrong protocol, the server stays invisible.

If you're hosting from home, log into your router and add a port forward rule that sends UDP 19132 to the local IP of the machine running the server. On a Linux VPS with a firewall, allow the port like this.

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

The status output should now list 19132/udp as allowed. If you also want IPv6, the 19133 line covers that.

Step 7: Connect from a phone or console

On a phone or tablet, open Minecraft, tap Play, then the Servers tab, scroll to the bottom, and tap Add Server. Fill in a name, the server's public IP address, and 19132 as the port. Save it and tap to join.

Consoles are a little more locked down. Xbox, PlayStation, and Switch don't give you an easy box to type an IP into. The common workaround is to add your server as a DNS entry through a third party app or a free service that lets consoles see custom servers, then it appears in the Servers list. On the same local network, the server often shows up automatically under the Friends or LAN section.

If you only ever play together on the same Wi-Fi, you don't need to forward any ports at all. The server will appear on the LAN tab for devices on the same network.

A note on mixing Java and Bedrock players

Sometimes half your group is on Java and half is on Bedrock, and you want everyone in one world. The official Bedrock server can't do that on its own. The usual answer is a plugin called Geyser, which acts as a translator. You run a Java server (Paper or Spigot) with the Geyser plugin, and Bedrock players connect to it through Geyser as if it were a Bedrock server. A companion plugin called Floodgate lets Bedrock players join without needing a Java account.

That's a different setup from this guide, and it's heavier, but it's the right path if a single shared world for both editions is your goal. If everyone's on Bedrock, the plain official server you just built is simpler and faster.

Troubleshooting

The server is up but nobody can find it. Nine times out of ten this is the port. Confirm you forwarded UDP 19132, not TCP. Double check that you used the machine's correct local IP in the router rule, and that your friends are typing your public IP, not the local one. You can look up your public IP by searching "what is my IP" from the host machine.

"Unable to connect to world" or a version mismatch. The server build and the player's game version need to match. If your friends just got a game update from the app store, you'll need to download the newer server build too. Check the version line in the server's startup output against what the client is running.

The server won't start on Linux and complains about a missing library. You forgot the LD_LIBRARY_PATH=. part. The server bundles its own libraries and needs to be told to look in the current folder. Run it from inside the bedrock folder with that prefix.

A player is on the allow list but still can't join. Run allowlist reload after adding them, and confirm the gamertag is spelled exactly right, including spaces and capitalisation. Gamertags are matched precisely.

The world is laggy with a few people. Lower view-distance in server.properties from 10 to 8 or 6. The view distance has a big effect on how much work the server does per player, and trimming it is the quickest win.

Changes to server.properties did nothing. The file is only read at startup. Stop the server with the stop command, save your edits, then start it again.

Wrapping up

You now have a Bedrock dedicated server that your friends can join from any device that runs Bedrock Edition. The pieces that matter most are getting the version right, leaving the port on UDP 19132, and remembering to forward that port. Once it's running, the same world stays available whether or not you're online, which is the whole point of a dedicated server. Edit server.properties to shape the rules, use the allow list and operators to control who gets in and who runs commands, and back up your world folder now and then so a bad day doesn't cost you your build.

Common questions

Can Java Edition players join a Bedrock server?

No. Java and Bedrock use different server software and cannot connect directly. To put both in one world you need a Java server running the Geyser and Floodgate plugins, which translate Bedrock players onto a Java server.

What port does a Bedrock server use?

Bedrock uses UDP port 19132 for IPv4 and UDP port 19133 for IPv6. It is UDP, not TCP, so make sure your router or firewall rule forwards UDP or the server will stay invisible.

How much RAM does a Bedrock server need?

A small world for four or five players runs fine on 1 to 2 GB of RAM and a couple of CPU cores. Larger or busier worlds benefit from more memory and a lower view distance.

How do I make my Bedrock server private?

Set allow-list=true in server.properties, then add each player from the console with allowlist add followed by their exact gamertag, and run allowlist reload. Only listed players can then join.

Why can my console not connect to the server?

Consoles do not offer a box to type an IP into. On the same network the server appears under LAN automatically. Off network, players usually add the server through a third party DNS app so it shows in the Servers list.

ML
Marcus Lee
Infrastructure Lead at Bytte.cloud

Part of the Bytte.cloud team. We run game servers, bots and websites for a living, and we write these guides from what we see day to day in support and on our own servers.

Want to try this on real hardware?

Bytte.cloud has free plans for game servers, bots and websites. No credit card, set up in seconds.

Start for free See the plans