How to Set Up a Minecraft Server on Ubuntu or Debian
Updated by Linode Written by Alex Fornuto
Dedicated CPU instances are available!Linode's Dedicated CPU instances are ideal for CPU-intensive workloads like those discussed in this guide. To learn more about Dedicated CPU, read our blog post. To upgrade an existing Linode to a Dedicated CPU instance, review the Resizing a Linode guide.
Minecraft is one of the most popular games in the world. In Minecraft you and other players are free to build and explore anything you want in a 3D generated world. If you host your own Minecraft server, you decide the rules, and you and your friends can play together in this interactive adventure game.
This guide shows you how to set up a personal Minecraft server on a Linode running Debian 9 or Ubuntu 18.04 LTS. We have updated this guide to be compatible with the major release of 1.13: Update Aquatic.
Prerequisites
To use a Minecraft server you must also have a version of the game client from Minecraft.net.
Complete our Getting Started and Securing Your Server guides.
Update your Linode’s software:
sudo apt update && sudo apt upgrade
Install OpenJDK, an open-source implementation of Java, and the GNU Screen package.
Note
Minecraft version 1.13 is only compatible with OpenJDK 8. If you are using OpenJDK 7 you must remove it using this commandsudo apt remove openjdk-7-\*
before continuing with this guide.In Ubuntu 18.04:
sudo apt install openjdk-8-jre-headless screen
In Debian 9:
sudo apt install openjdk-8-jre-headless screen
Create a new user for Minecraft to run as:
sudo adduser minecraft
Assign a secure password, and configure any additional SSH hardening options at this time.
NoteIf you have a firewall configured according to our Securing Your Server guide, add the following line to your
iptables.firewall.rules
file to add an exception for port 25565:-A INPUT -p tcp –dport 25565 -j ACCEPT
Install Minecraft
Exit your current SSH session and log back in to your Linode as the
minecraft
user.Download the latest version of the Minecraft Multiplayer Server from Minecraft.net. Replace the URL in this example to match the current version:
wget https://launcher.mojang.com/v1/objects/3737db93722a9e39eeada7c27e7aca28b144ffa7/server.jar -O minecraft_server.1.13.jar
Refer to the Minecraft server page to check for the latest release.
Create a script to run the Minecraft server:
- /home/minecraft/run.sh
-
1 2 3
#!/bin/sh java -Xms1024M -Xmx1536M -jar minecraft_server.1.13.jar -o true
Note
TheXms
andXmx
flags define the minimum and maximum amount of RAM the Minecraft server will use. The settings above are recommended for a Linode 2GB used solely for this purpose. Adjust these values to fit your needs.Make
run.sh
executable:chmod +x /home/minecraft/run.sh
Run Minecraft
The first time you run the Minecraft server it will create an EULA file and then exit:
$ ./run.sh [21:39:43] [Server thread/INFO]: Starting minecraft server version 1.13 [21:39:43] [Server thread/INFO]: Loading properties [21:39:43] [Server thread/WARN]: server.properties does not exist [21:39:43] [Server thread/INFO]: Generating new properties file [21:39:43] [Server thread/WARN]: Failed to load eula.txt [21:39:43] [Server thread/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info. [21:39:43] [Server thread/INFO]: Stopping server
Open the
eula.txt
file and change the value ofeula
to true:- /home/minecraft/eula.txt
-
1 2 3
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula). #Tue Jan 27 21:40:00 UTC 2015 eula=true
To ensure that the Minecraft server runs independent of an SSH connection, execute
run.sh
from within a GNU Screen session:screen /home/minecraft/run.sh
This time the Minecraft server console will generate a lot of output as it creates required configuration files and generates the Minecraft world:
[22:00:06] [Server thread/INFO]: Starting minecraft server version 1.13 [22:00:06] [Server thread/INFO]: Loading properties [22:00:06] [Server thread/INFO]: Default game type: SURVIVAL [22:00:06] [Server thread/INFO]: Generating keypair [22:00:07] [Server thread/INFO]: Starting Minecraft server on *:25565 .... [22:00:07] [Server thread/INFO]: Preparing level "world" [22:00:08] [Server thread/INFO]: Preparing start region for level 0 [22:00:09] [Server thread/INFO]: Preparing spawn area: 3% .... [22:00:21] [Server thread/INFO]: Preparing spawn area: 96% [22:00:22] [Server thread/INFO]: Done (14.737s)! For help, type "help" or "?"
Note
To disconnect from the screen session without stopping the game server, press CTRL+a and then d. To resume the running screen session, use the commandscreen -r
.Optionally, you can take this opportunity to disconnect from the screen session and customize your game settings. When the
run.sh
script is executed, a world is created with the default variables. If you would like to create a new world with updated variables (like world seeds), change thelevel-name
directive in theserver.properties
file and modify other settings accordingly.After stopping and restarting the server script with the
level-name
changed, a new directory is created that contains your game data for that world. For more information on available settings and how to modify them, refer to the Minecraft Wiki settings page.
Connect to your Minecraft Server
Open your local Minecraft client. After logging in, click on the Multiplayer option:
Click on Add server and enter your Linode’s IP address or domain name. When you’re finished click Done:
Your server is now available to incoming connections. Click Join Server to connect:
Congratulations! You can now play Minecraft in a persistent world with your friends. For more information on working with screen
, check out our guide on GNU Screen.
More Information
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
- Minecraft.net
- The Official Minecraft Wiki
- Official MineCraft Install Guide
- Documentation on the World of Color Update
Join our Community
Find answers, ask questions, and help others.
This guide is published under a CC BY-ND 4.0 license.