![]() |
VOOZH | about |
This tutorial takes you through the steps of setting up your own Bedrock Edition server using the default server software that Mojang Studios distributes free of charge. The software may be installed on Windows and Linux operating systems. For a tutorial about installing Java Edition server software, see Tutorial:Setting up a Java Edition server.
A Minecraft server provides a game environment for players to play multiplayer with others connected through the Internet or a local area network (LAN). Players are connected to a server using the Minecraft client software, and the server hosted using the Bedrock Dedicated Server.
This tutorial is meant to show and explain the basics and recommendations of setting up a Minecraft server, from installing and running the server for the first time, to maintaining and connecting to it. Setting up a server can be done very quickly, but you need some technical knowledge. Take time to research any concepts you found unsure or uncertain before or while reading this tutorial.
In order to run your server correctly, we highly suggest that you should at least know about the following:
The performance of your Minecraft server can be influenced by many factors, but the two key elements that commonly affect all servers are the player count and the world size. The higher these numbers, the more hardware power you will need.
It depends on your player base's play styles, but each player can affect your server's resource:
Typically, a survival server with 4โ8 players can run on most modern hardware.
CPU
Most modern CPUs should suffice for a small to medium size server. For reference, starting with budget Intel 8th gen or Ryzen 2000 series CPU is good enough for small servers. Note that Minecraft servers mostly utilize a single core. If your server grows larger, you should ideally find a CPU with high single-thread performance.
The minimum CPU requirement for Bedrock Dedicated Server is Intel Core i3 3210 or AMD A8 7600 APU or equivalent.
RAM
Depending on your size of the world, you would need more RAM memory to run the server. For all servers, it is required to have at least 1 GB RAM on your device, and for very large servers, 4-8 GB is recommended.
Storage
Your Minecraft worlds can grow large over time, so make sure to reserve at least 1GB of disk space for it, although 180MB is sufficient for small servers.
Networking
Bedrock Dedicated Server needs a stable internet connection. You typically won't need to worry about the bandwidth unless you run a large server. To make sure you have a low and consistent ping, it is recommended that your server's physical location be as close to your players as possible.
Other
The minimum operator system requirements are Ubuntu 22.04 (LTS version) for Linux, and Windows 10 version 10.0.15063 or Windows Server 2016 for Windows.
You don't need extra hardware to run a server, including a GPU.
You can learn more about the system requirements to run a server on the download page.
If you still want to manage a server, but not from home, you might want to look for Minecraft server hosting services, which provide a machine and sometime a quick way to setup your Minecraft server. Expect to pay monthly for this type of server since finding free hosting is a rarity, but you save the hassle of constantly maintaining a server and ensure it is always online for your players.
Alternatively, you can pay for Realms, the official subscription-based server hosting service by Mojang Studios with some additional functionalities (although comes with limitations unlike a normal server).
If you want to setup a quick and simple multiplayer server in your home, check out Tutorial:Setting up a LAN world. Note that players must be connected to the same local network, usually in the same network from Wi-Fi or router.
If you decide you don't want to host, but still want to play online, check out the official featured servers.
Bedrock Dedicated Server can be downloaded and unzipped without the need of any further installation.
bedrock-server.exe file in the main directory of the server on Windows. On Linux, you need to run the server from a command prompt:
LD_LIBRARY_PATH=. ./bedrock_server to launch the server.bedrock-server.exe file in the working directory of the server.The server does not need any further configuration before running it for the first time, but it is highly recommended to configure some files in the server, because a world with default settings will be generated as soon as the server starts for the first time.
You can configure the server by editing the server.properties file, the format for which is explained on that article. Be certain to edit the file with a text editor that does not add formatting (e.g., for italics), such as Windows Notepad. Additional configuration may not be necessary as many servers run fine from the default values.
The server will create a world with the selected world options (including world name, world seed, and game mode), some of which can't be changed after first launch. A new world can be created by changing level-name to a different name than existing world files.
Allowlist is a feature that allows and blocks specific players in a configured list to join the server. By default, this feature is disabled, but can be changed in the server.properties by setting allow-list=true.
Configuring allowlist is easy, you can add a player to the list by typing /allowlist add <gamertag> into the server console. If there is a whitespace in a player's gamertag, you need to enclose it with double quotes. You can also directly edit the allowlist.json file in the server directory by manually adding their username. Adding an XUID is optional, if only the gamertag is added, the XUID will be added automatically when someone with a matching gamertag connects. You can set ignoresPlayerLimit to true if you want the player to be able to enter the server even if the specified player limit has been reached on the server.
allowlist.json contentsallowlist.json[ { "ignoresPlayerLimit":false, "name":"MyPlayer" }, { "ignoresPlayerLimit":false, "name":"AnotherPlayer", "xuid":"274817248" } ]
You can adjust player permissions by assigning them roles in the permissions.json file in the working directory of the server. You need to specify the permission and the XUID of the player in a simple JSON object. Valid permissions are operator, member, or visitor. If you change the permissions file while the server is running, you need to run the command permission reload in the server to reload the in-game player permissions. Note that online-mode in server.properties needs to since XUID requires online verification of the user account. If a new player that is not in this list connects, the default-player-permission-level option will apply.
permissions.json contentspermissions.json[ { "permission":"operator", "xuid":"451298348" }, { "permission":"member", "xuid":"52819329" }, { "permission":"visitor", "xuid":"234114123" } ]
After successfully configuring and starting up your Minecraft server, you now must publish your Minecraft server, so players can see and join your server through the Internet or locally.
There are several methods of publishing your Minecraft server:
Local Area Network (LAN, or local network) is a computer network that is used to connect between devices and communications in a limited area, such as personal home, university campus, or office building. When your device is connected to your router, it is participating in the router's LAN, this includes other devices connected into the router. As such, using the LAN, you can connect and communicate to other devices or applications hosted on the network, such example is a Minecraft server. Computer network like LAN is usually considered a private network.
Each device in the network is given an unique identifier called IP address. When used in a LAN setting, these IP addresses are often referred to as internal IP address, as they belong to private IP ranges. Applications in these devices can listen for and send communications with other devices in the LAN through specific ports opened by their host devices.
When you start a Minecraft server on your device, the server requests a specific port number to the server host's operating system in order to communicate with other devices in the network. The host then assigns, and listens for all upcoming connections from the port, directing them to the Minecraft server to process. The default port for a Minecraft server is 19132, but can be configured in the server.properties file.
When the server allows LAN connections, which can be specified in server.properties, the world is visible for every player on the same local network and appears at the top of the "Play" screen.
Port forwarding is a special network configuration that redirects or forwards connections from an IP address and port number to another. This can be useful for a Minecraft server, as port forwading lets players connect to your server remotely, over long distance through the Internet.
When you create a port forwarding configuration[a], it essentially creates a bridge for connections between the Internet and your server in the local area network. The router forwards connections from your external IP address on the Internet to your server's internal IP address on the local network. This, in turn, allows players to connect to your Minecraft server on the Internet through your external IP address.
External IP address (also known as public IP) is a public facing address of your home network on the Internet. It allows communications remotely over the Internet. It is typically assigned to a router or network switch in a home network, not per devices, so port forwarding is needed to assign available ports from the external address to devices on the local network. You can find your external IP by searching "what is my IP" in Google, or in websites such as IP Chicken. Note your external IP address may be a dynamic IP configuration, see below.
As router interfaces vary significantly depending on the manufacturer and model, specific menu layouts may differ from the descriptions provided here. However, the general configuration steps should remain consistent across devices. The following steps show the general process for port forwarding a Minecraft server on most standard routers:
ipconfig, and find the IP address next to Default Gateway column.Getting your server host's internal IP address is important for connecting to your server in LAN. It is also used in port forwarding, specifying which internal IP and port for your router to port forwards to.
With that in mind, here are the steps to retrieve the internal IP address:
cmd and hit .ipconfig and press . You should be given a list of text.ip address (or ip addr for short).
ethX or enpXsX, and for wireless, wlanX or wlpXsX. Notice the "X" on the device names, they usually indicate the bus and the slot number.inet, which will look like inet xxx.xxx.xxx.xxx, copy the xxx.xxx.xxx.xxx numbers down.If your internal or external IP changes, this means the current IP you have is a dynamic IP. This can cause problems to the port forwarding rules. Here are some workarounds and fixes you can do to resolve this issue:
localhost, your internal IP (192.168.x.x) or your external IP.Virtual Private Network (VPN) can be used to let players connect to your server through a secure connection or a private network.
VPN simulates LAN connections between the players and the server over the Internet. Players can join a server hosted on the network by first connecting to the network via VPN software, and then accessing the server using the internal IP address provided by the VPN. This method serves as an alternative to port forwarding, which directly hosts and connects the server on the Internet.
However, this may be inconvenient for many players, as it typically requires everyone to download and install the same software the host uses in order to join the server.
There are four common VPN software you can use for connecting your Minecraft server: LogMeIn Hamachi, Radmin VPN, Tailscale , and ZeroTier. The following steps below are tutorial for setting up VPN for your server depending on the provider you use:
.deb and .rpm packages are available. For Gentoo, you can install it by emerging "net-misc/logmein-hamachi".
ipconfig, and look for IPv4 address in "ZeroTier One" ethernet adapter.Bedrock Dedicated Server server can be connected through an Internet domain name, which is a custom string you can insert in the server address. You'll commonly see usage of domain name when visiting websites, for example, youtube.com, hypixel.net, minecraft.net, etc. These domain names are used in place of an IP address, where typing and remembering them is easier than numerical IP. For connections using a domain name, the server needs to be accessible from the Internet using port forwarding or a VPN.
In order to use a custom domain name, you would need to register first through a domain registrar. Registering a domain name is often paid, and rarely ever free. You can register a custom domain name that ends with a prefix (e.g. "<your-domain-name>.net"), like ".com", ".org", ".net", and much more. Alternatively, you can get a free custom domain through a dynamic domain service, such as NoIP. These services would typically give you a custom sub-domain, which ends with another string before the prefix (e.g. "<your-domain-name>.example.com").
After registering a domain, you can use it to point to your Minecraft server's IP address, so when player connect to your server, they can type your domain name instead of the server's IP address. This can be done by adding an A record (stands for address record) to your domain, which tells the game of the server's actual IP address from the domain name.
To do this, visit your domain's DNS records. This is usually provided through your domain registrar's website, in domain management or settings menu. If you haven't found it yet, please contact your registrar or visit their knowledge base for help.
In the DNS records, add a new A record with these values:
After adding the A record for your domain, wait for up to 10 minutes, as any DNS record updates are not instantaneous on other devices, including yours. When updated, players can connect to your server using your domain name, as specified in the "Host", or if blank, your root domain. The port still needs to be specified since Bedrock Edition does not support connections without a specified port.
To learn more about A record, see this Cloudflare article.
To manually verify whether your DNS record has been updated, you can run the following command: nslookup-q=<record-type><domain-name> (for Windows) or dig<domain-name><record-type> (Linux, macOS).
For A record, the <record-type> should be "a" and your <domain> needs to be the domain name you have specified in the A record. If your server's IP address is not included in the "Address" field under "Non-authoritative answer" section from the output, then it has not been updated yet.
An example output for your A record would be:
> nslookup -q=a YOUR.DOMAIN.com Server: UnKnown Address: 192.168.0.1 Non-authoritative answer: Name: YOUR.DOMAIN.com Address: 172.65.197.160
> dig YOUR.DOMAIN.com A ; <<>> DiG 9.20.16 <<>> YOUR.DOMAIN.com A ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55270 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;YOUR.DOMAIN.com. IN A ;; ANSWER SECTION: YOUR.DOMAIN.com. 115 IN A 23.192.228.84 ;; Query time: 4 msec ;; SERVER: 10.255.255.254#53(10.255.255.254) (UDP) ;; WHEN: Mon Dec 01 19:44:27 +07 2025 ;; MSG SIZE rcvd: 136
After setting up your server, it is recommended to follow these practices:
/allowlist command.
Depending on which method you use to publish the server, here are couple of ways to connect into your Minecraft server:
Console versions of Bedrock Edition can not connect to external servers and always need to connect via LAN. Minecraft on Nintendo Switch cannot connect to a user-hosted server at all and is limited to Realms or featured servers.
World files on the server are stored in the worlds directory. Upon starting, the server checks for files in that directory with the same name as the value for level-name in server.properties. If a corresponding world file is found, that world will be used on the server session and can't be changed during the session. If no corresponding world file is found, the server will create a new file with the name specified in level-name.
Existing worlds can be imported to the server from your Minecraft files. To do this, you need to manually export the world by copying the world files from the minecraftWorlds directory in ๐ File directory.png: Sprite image for directory in Minecraft
com.mojang. Note that each world directory does not show the world name. To find the world you want to import, you can edit the world in-game and sort the directory from last edited, or you can open the levelname.txt file in each world to see the name.
Paste the world directory into the worlds directory in the server and rename the world files to the name specified in level-name.
Worlds from the server can also be imported into your Minecraft files by pasting the world into the minecraftWorlds directory.
Any custom add-on can be applied to worlds on the server. You need to manually import resource packs and behavior packs to the server by pasting the add-on directories the appropriate directories in the server. Behavior packs need to be placed in the development_behavior_packs directory, and resource packs need to be placed in the development_resource_packs directory.
To enable a resource or behavior pack in a world, you need to specify the pack in the world_behavior_packs.json and world_resource_packs.json files respectively. These files need to be created in the working directory of the world in which you want to activate the pack. In this JSON file, you need to specify the UUID of the pack you want to activate, and the version of the pack. The UUID of a pack can be found in the manifest.json file in the directory of the pack.
Example
world_behavior_packs.json[ { "pack_id":"33556fcf-d192-4d5f-96a0-29357702af7b", "version":[1,0,0] } ]
Note that when you are using multiple packs that can conflict with each other, the highest pack will be prioritized over any following packs.
Enabling add-ons on a world can also be done by applying resource packs or behavior packs in-game in a singleplayer world and then importing the world to the server. This will automatically generate the required JSON files, but the packs themselves still need to be imported to the server.
You can force players to download the server's resource packs by setting texturepack-required in server.properties to true.
Marketplace packs cannot be applied to the server. Players can still enable any client-side resource pack by activating it in the game's global resources, including Marketplace packs. This does not work if texturepack-required is set to true.
Players can only connect to the server if their Minecraft client is on the same version as the server. Bedrock Edition does not support older versions of the game, so it is highly recommended to keep the server up-to-date. Follow these steps to update the server:
server.properties, allowlist.json, permissions.json, and the worlds, world_templates, development_behavior_packs, development_resource_packs, and development_skin_packs folders. If a file already exists in the new server, replace the new file with the copied file. Empty folders do not need to be moved.It is recommended to keep the old server in another directory until you've successfully started the updated server, to prevent loss of world or server data.