How to Setup a Minecraft Bedrock Server on a Mac

Surprised by this week’s topic?

Sure, technically speaking playing Minecraft and setting up private Minecraft servers doesn’t fall into the realm of “musings on startups, the business of venture capital and tech ecosystems.” (And no, this isn’t going to be a post on “5 things founders can learn from playing Minecraft.”) But I’m willing to bet I’m not the only person in Startupland™ who has kids obsessed with Minecraft.

I’m also pretty sure I’m not the only person who thought to themselves,

Gee, I’d really like for my kids to be able to safely play Minecraft with their siblings/friends/cousins without having to worry about all the creepers, inappropriate content and unrelenting pressure to make in-game purchases.

So, of course, the next logical step is to setup a private server. It can’t be that hard, right..?

 
 

My naive, reasonably tech-savvy self figured this would be a fairly straight-forward task (after all, I’ve got a Computer Science degree from Stanford, for crying out loud). But lo and behold, I soon found myself falling deeper and deeper down a rabbit hole of antiquated tech, questionable design decisions and classic corporate walled gardens. Amazingly, after three weeks of late nights and weekends (and more than a few skeptical looks from my wife), I came out victorious!

…or, as victorious as you can be given the aforementioned corporate walled gardens.

So in the hopes of saving a few of you some time, headaches and despair, here is a start-to-finish tutorial on how to setup and run a Minecraft Bedrock server on a Mac.

 

The Basics

Let’s start with the basics. For some historical reason I have no interest in digging into, there are two versions of Minecraft, Minecraft: Java Edition and Minecraft: Bedrock Edition.

Minecraft: Java Edition is, as the name suggests, an easy-to-install version of Minecraft that runs on Java. This is the version most commonly used when playing on a computer (and the version that YouTubers are referring to when discussing their custom mods).

Minecraft is also available to play on consoles — like Playstation, Xbox and Nintendo Switch. Those systems don’t support Java, so instead they run a version of Minecraft called Minecraft: Bedrock Edition.

Unfortunately, the folks behind Minecraft decided to not put in the work to make these two versions compatible with each other. Minecraft Java players are unable to play with Minecraft Bedrock players and vice versa.

 
 

As a result of this, there are two different versions of the Minecraft server software: Minecraft: Java Edition Server and Minecraft: Bedrock Edition Server.

Like the Java edition client, Minecraft: Java Edition Server is easy-to-install on any computer that runs Java (which includes Windows, MacOS and Linux machines). Most of the tutorials you’ll find online about “how to setup a Minecraft server on a Mac” refer to Minecraft: Java Edition.

If you want to setup a server that supports console players, you need install Minecraft: Bedrock Edition Server. Unfortunately, there is no native MacOS version of Minecraft: Bedrock Edition Server 🤦‍♂️.

And with that as background, let’s dive into our rabbit hole…

 

Overview

This tutorial is fairly technical and assumes that you have some prior background working with Linux. You will be setting up a virtual machine running Ubuntu on MacOS. If you don’t know what these words mean, I highly recommend you forgo this exercise.

In my case, I setup the Minecraft: Bedrock Edition server on an old Intel-based Macbook Pro. I’ve done my best to also include the appropriate links and instructions for using a Mac with Apple silicon, but there may be some slight differences not listed.

Setting up Minecraft: Bedrock Edition Server on a Mac consists of the following steps:

  1. Erasing the Mac and Re-Installing MacOS

  2. Installing UTM

  3. Installing Ubuntu

  4. Installing Minecraft: Bedrock Edition Server

  5. Testing the Minecraft: Bedrock Edition Server on Your Local Network

  6. Obtaining and Configuring a Static IP

  7. Testing the Minecraft: Bedrock Edition Server on the Internet

  8. Connecting to the Minecraft: Bedrock Edition Server on Nintendo Switch (or Xbox or Playstation)

 

1. Erasing the Mac and Re-Installing MacOS

Strictly speaking, it isn’t necessary to completely erase your Mac in order to install a Minecraft: Bedrock Edition server. However, if your goal is to have a dedicated server that is available 24/7 and you won’t be using it for anything else, I highly recommend it.

Why?

Because anytime you run a server, there’s a potential for security issues. The last thing you want is someone hacking into your Minecraft server and having access to your personal emails, files, etc.

To erase (format) the built-in startup disk of an Intel-based Mac, follow these instructions.

To erase (format) the built-in startup disk of a Mac with Apple silicon, follow these instructions.

Once that’s done, you can reinstall MacOS according to these instructions.

After that, you will need to setup MacOS as you otherwise would. I strongly recommend that you setup a new Apple ID for this server, in order to ensure no inadvertent links to your existing accounts, data stored in iCloud, etc.

 

2. Installing UTM

UTM is an open source virtualization software that we will use to run Ubuntu. There are other virtualization frameworks for MacOS, such as Parallels, but this one is free.

There are two ways to install UTM:

  1. Install via the Mac App Store

  2. Download and install from GitHub

The App Store version costs $9.99, which provides a small amount of funding to the organization that supports UTM. That version also comes with automatic updates. The GitHub version is free. It does not include automatic updates.

Both are straightforward to install — just click the button on the UTM homepage for the approach you want to take.

 

3. Installing Ubuntu

Now that you’ve got UTM installed, the next step is to create a virtual machine and install Ubuntu on it.

First, download the version of Ubuntu that you want to install from the Ubuntu download page. You’ll need to choose between Ubuntu Desktop and Ubuntu Server. Historically, there were some considerable differences between these, but at this point they’re effectively the same. The main practical difference is that Ubuntu Desktop comes with an IDE and some preinstalled applications. If you aren’t a Linux expert, I recommend using Ubuntu Desktop as the IDE can make life easier during setup.

Whichever edition you choose, download the version labelled “LTS” (for “long-term support”). This isn’t the latest-and-greatest version of Ubuntu. Rather, it’s the most recent version that is considered long-term stable. For an Intel-based Mac, you should download an “AMD64” ISO. If you are installing Ubuntu on a Mac with Apple silicon, make sure you download an “ARM” image.

After your download is complete, hit the plus button in UTM to create a new virtual machine and select “Virtualize” from the options:

 
 

Select “Linux” as the operating system that you want to use for your virtual machine:

 
 

If you are setting up Ubuntu on Apple silicon, select “Use Apple Virtualization” Otherwise, leave this unchecked.

Use the “Browse” button to select the Ubuntu .iso file that you downloaded as the boot image:

 
 

After this, you’ll be presented with several screens to configure your virtual machine (how much memory, storage, etc. to allocate for it). You’ll need to base these decisions on the resources of your particular Mac, but something in the range of 4GB / 4096 MB of RAM and 20+ GB or storage should be sufficient (this also depends on how many concurrent users you intend to host on your server).

Next, UTM gives you the option to assign a “shared directory”. This is a directory within MacOS that will be accessible from within the virtual machine. I used the Downloads folder for this.

 
 

On the next screen, give your virtual machine a name and select “Save”. After that, you can hit the big shiny “play” button to launch your new VM:

 
 

Once your virtual machine has booted up, you need to setup Ubuntu. Refer to these instructions on the Ubuntu website for guidance. Make sure you select “Erase disk and install Ubuntu” when prompted for the type of installation (this is referring to the virtual machine disk — not your Mac — so it will ensure a clean installation).

After you’ve installed Ubuntu, make sure that all of the packages are up-to-date with the following command:

$ sudo apt update

Next, we’re going to download the Java Development Kit software required to run Minecraft: Bedrock Edition Server:

$ sudo apt install default-jdk

Finally, if you chose to install Ubuntu Desktop, you need to disable the automatic sleep functionality or else your server will periodically go down. To do this, issue the following command:

$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

You can verify that the sleep commands have been disabled (“masked”) as follows:

$ systemctl status sleep.target
 

4. Installing Minecraft: Bedrock Edition Server

Now that we’ve got our virtual instance of Ubuntu running, we can finally move on to installing Minecraft: Bedrock Edition Server.

Before we actually install the server, there are a few preparation steps necessary:

Create a Dedicated User to Run the Server

It is a general best practice to create a dedicated, non-admin user and permission group to run a server. The following command will create a user minecraft and an associated group minecraft:

$ sudo useradd -m -r -d /opt/minecraft minecraft

In addition to creating a new user, the above command creates a home directory /opt/minecraft, where we’ll install the Minecraft: Bedrock Edition Server software.

Download Minecraft: Bedrock Edition Server

Next, download the Minecraft: Bedrock Edition Server software.

Start by visiting this website, where the various versions of Minecraft: Bedrock Edition Server can be found. You’re looking for the one labelled “Minecraft Dedicated Server software for Ubuntu (Linux)”:

 
 

After you click the checkbox to agree to the Minecraft EULA and Privacy Policy, you’ll be able to download a .zip file containing the server software. If you’re using the browser on Ubuntu Desktop, you can save the file directly into the /opt/minecraft folder. If you’re using the browser on the Mac, save the file in the shared directory you selected with UTM and then move it into /opt/minecraft.

Inside of Ubuntu, navigate to /opt/minecraft and unzip the compressed file (replace bedrock-server-1.21.61.01.zip with the correct name of the file):

$ unzip bedrock-server-1.21.61.01.zip

At this point, all of the files you need to run your server will be present.

Configure Your Minecraft: Bedrock Edition Server

The next step is to configure your Minecraft: Bedrock Edition server.

The file /opt/minecraft/server.properties contains all of the settings used to configure your server. There download includes an HTML file, /opt/minecraft/bedrock_server_how_to.html, which describes all of the settings available to you. You can open this with a web browser to review all of the options, but here are a few notable ones:

  • gamemode: Minecraft game mode (survival, creative or adventure)

  • difficulty: Level of difficulty (peaceful, easy, normal or hard)

  • allow-list: Whether or not players must be included on a whitelist in order to play (true or false)

If you want to make sure that the only players on your Minecraft server are you kids and their friends, then you want to make use of an allow list. The bedrock_server_how_to.html file describes the format of the allow list file and how to set it up.

Review the How To file for everything you need about configuring your server.

Start Your Server

Finally, it’s time to start your Minecraft: Bedrock Edition server!

From the /opt/minecraft folder, issue the following command:

$ LD_LIBRARY_PATH=. ./bedrock_server
 

5. Testing the Minecraft: Bedrock Edition Server on Your Local Network

The easiest way to test your server setup is using a copy of Minecraft: Bedrock Edition on a PC or Mac. Connecting from a console is more involved (if you only have a console, skip ahead to section 8).

To connect to your Minecraft: Bedrock Server, start by hitting the Play button:

 
 

After that, select the “Server” tab at the top-right:

 
 

Scroll to the bottom of the list on the left and press the “Add Server” button:

 
 

A popup will then appear for you to enter the server details. Enter a name for the server where it says “Server Name” and the local IP address for “Server Address”. Make sure that the Port number is 19132. Then hit “Play”:

 
 

After that, your Minecraft client will attempt to connect to the server. If everything goes according to plan, your client will connect to your newly-created Minecraft server and you’ll be able to play! On the server, you should see some log messages indicating that a new player has connected:

[INFO] Player connected: <player name> <xid>
[INFO] Player spawned: <player name> <xid> <pfid>

(If your Minecraft client doesn’t successfully connect to the server, start by looking at the server terminal. If you don’t see the above messages, it suggests that there was something wrong with the network connectivity — either you entered the wrong IP address or there’s something in your network setup preventing your client from connecting the server. Unfortunately, it’s outside of the scope of this post to explore all of the things that could possibly go wrong here, so if things aren’t working you’ll have to put on your detective hat.)

 

6. Obtaining and Configuring a Static IP

Obtaining a Static IP Address

If your goal is for people outside of your house to be able to use the server, then you have to obtain a static IP address. Most internet service providers (ISPs) use dynamic IP addresses, which simply means that they regularly change the address that computers on your home network use to access the internet.

The process of obtaining a static IP address is going to differ for each internet provider, so you’ll have to contact them. In my case, it involved calling the ISP and providing the configuration details over the phone.

The one piece of information that you will need before you do this is the MAC address of the computer you installed the server on. It is a coincidence that this is called a “MAC address” and we’re installing Minecraft: Bedrock Edition Server on a Mac. The acronym stands for “medium access control” and is a globally unique ID used to identify the network interface that’s being used.

To get your MAC address, go into System Settings on your Mac, click on “Network” and then select the interface you’re using (“Wi-Fi” if you’re using a wireless interface, “Ethernet” if you’re Mac has a built-in Ethernet port, or “USB 10/100/1000 LAN” if you’re using a USB-Ethernet adaptor). Then click “Details…” and select the tab at the left labelled “Hardware”. You will then see the MAC address for the interface:

 
 

The MAC address consists of 12 hexadecimal digits in the form XX:XX:XX:XX:XX:XX. Your ISP will map the static IP address to this value, ensuring that every time this computer connects to the internet, it will be assigned the same IP address.

At this point — a completely optional step — you can register a domain name (e.g. mysupercoolminecraftbedrockserver.com) and set it up to point to the static IP address you just registered. This is in no way, shape or form necessary for your server to work, but a domain name can be easier for folks to remember and access. I won’t include the steps to do so here but will leave them as an exercise for you to explore.

Configuring Your Server to be Accessible from the Internet

Your ISP will provide you with the settings necessary to utilize the static IP address on your computer (as these are often dependent on the systems that they use). Once that’s done, you need to setup your network so that the server is accessible from the outside world.

The exact steps to make your server accessible from the internet will depend on three things:

  1. Your internet server provider (and how their infrastructure works)

  2. The hardware provided by the internet server provider

  3. Any additional networking hardware that you have setup (e.g. a wireless mesh network, like Eero)

It is beyond the scope of this post to anticipate and solve for every possible combination of the above three. So rather, I’ll provide high-level guidelines on what you need to accomplish:

In an ideal setup, your home network should remain completely locked down except for incoming connections to ports 19132 and 19133 (the ports used by Minecraft: Bedrock edition). Those connections should go directly to the computer running your server with no other connections permitted to enter your network.

If your computer is connected directly to the router provided by your internet service provider, then you should only need to change the settings there. The admin panel for that route should provide some ability to configure the router’s firewall settings to allow incoming connections. Refer to the documentation provided by your ISP on how to do so.

If you have additional networking equipment between your server and the internet, you will need to make similar changes to those routers.

However, even in the case that you are using additional networking equipment, I highly recommend that you connect the server directly to the ISP’s router — outside of the rest of your home network. This ensures that if the server is hacked, the attackers do not have access to anything else on your network.

In my case, I have the following setup:

 
 

With this setup, I have ports 19132 and 19133 open on the ISP modem/router and redirecting to the Minecraft: Bedrock Edition server, while all other ports closed. All ports remain completely locked down on my mesh network router.

 

7. Testing the Minecraft: Bedrock Edition Server on the Internet

To test that your server is accessible from the internet, follow the steps in Section 5, but replace the local IP address with the static IP address that was assigned by your ISP (or the domain name you setup).

Don’t be surprised if things don’t work perfectly the first time — there are a number of overlapping pieces when it comes to network setup and security. This is another step where you may need to pull out your detective hat once or twice (or, as was my case, spend an hour on the phone with your ISP only to discover that they misconfigured your router 🤦‍♂️).

 

8. Connecting to the Minecraft: Bedrock Edition Server on Nintendo Switch

Congratulations! You’ve finally made it to this point.

You’ve successfully installed Minecraft: Bedrock Edition Server on a Mac and made it available over the internet. Now you can sit back and relax while your kids and their friends safely play together on their consoles.

Not so fast…

 
 

Microsoft, in their wise walled-garden ways, decided to remove the “Add Server” button from the console versions of Minecraft. When you click on the “Servers” tab after selecting “Play”, the only option is to connect to one of their “featured” servers (i.e. servers that have been pre-selected due to their status as healthy sources of revenue).

Not cool.

Thankfully, a workaround is possible by redirecting your console to “BedrockConnect”, a Minecraft server proxy that was created by a programmer who goes by the name of Pugmatt to solve this problem. You can read more about his solution in this Reddit thread (or download the source code if you want to run your own BedrockConnect instance from GitHub), but the gist of it is as follows:

  • BedrockConnect uses a DNS redirection method so that your console connects to the BedrockConnect server before looking elsewhere for content.

  • If you’re attempting to connect to a Minecraft Bedrock server, it will present you with an option to specify a custom server address

The whole workaround is annoying AF, but it’s the only way to trick a Minecraft console edition into letting you connect to a “non-featured” server, so here we go:

Update Your Console’s DNS Settings

Follow the instructions that map to your console to update your primary DNS settings:

Connect to Your Minecraft: Bedrock Edition Server

Press the Play button in Minecraft then select the Server tab at the top-right. Unlike the PC / Mac edition, there is no “Add Server” button at the bottom.

 
 

Next, select any of the available servers and press “Join Server”.

After connecting, you will see a new “Connect to a Server” button that is generated by BedrockConnect. Choose this button, then enter the address of your Minecraft: Bedrock Edition server.

 
 

Voila!

(See…I told you it was annoying. But it works!)

 

Conclusion

There you have it 💥.

It’s certainly not an easy (or painless) path, but if you want to setup your own custom Minecraft: Bedrock Edition server on a Mac, this post should hopefully get you there (though expect to encounter at least a handful of trials and tribulations not covered in this post).

And if you’ve made it to the finish line…if you’ve managed to setup your own custom Minecraft: Bedrock Edition server so that your kids, their cousins and friends can all safely play together. Well, kudos to you my friend 🍸

 
 
 

References

I started off this post by saying that this project was a deep rabbit hole. Suffice to say, it involved reading dozens of articles and blog posts and watching more than a few YouTube videos. In the spirit of giving credit where credit is due, here are some of the key resources I relied on to create this guide (you may find some of them helpful should you encounter challenges):

Next
Next

American VCs Aren’t the Reason Your Startups are Leaving