Minecraft Linux



WARNING: Only download Forge from the official site at files.minecraftforge.net. Always beware of scam sites.

Buying Minecraft. Developed by Mojang, they released Minecraft back in 2009. Interested in a free Minecraft alternative? Here's a quick look at some clones and derivatives out. You can find the results here:Info:Resolution 1920x1080Linux Driver: Mesa 20.0.0, 10.0.0 LLVMWind.

TL/DR - Modded Linux Condensed Version - For Returning Users

Building a full Linux vanilla server? See the Linux server install documentation.
Building on Raspberry Pi 4? See the Raspberry Pi 4 install documentation.

Minecraft Server Version: 1.12.2
Minecraft Forge 1.12.2-14.23.5.2854
Java Version: OpenJDK version '1.8.0_282'

Approximate time to complete: 30 minutes depending on your server. This also depends on your comfort level working from the Linux command line. Give yourself plenty of time.

Youtube Channel - UnEssenced
Please support this youtube channel highlighting Hypixel Skywars play.
The speed at which he plays boggles my mind. Take a peek and leave some feedback.


Step 1 - Install Java
Step 2 - Setup Your Environment
Step 3 - Download the Forge Installer file
Step 4 - Configure your new Modded Minecraft Server
Step 5 - Optional-- Configure Minecraft to start on bootup
Step 6 - Connect to Your Server
Step 7 - Hardening Your Minecraft Server if Visible on the Internet
Step 8 - Backup Your Server Frequently
Step 9 - Recovering a Corrupted World
Step 10 - Creating Automatic Backups

Donate Your donations keep this site ad free -- Thank You

Things to consider...

These instructions are for building a modded Minecraft Java Edition Server. All players using your server must install the same mods locally on their own PC. Configuring your PC to play mods is outside the scope of this article.

These instructions won't work for PE or the Better Together version. The modding scene is almost entirely on the Java edition and you will need to be running Minecraft Java on PC (Windows, Linux or Mac) to connect to this server.You will not be able to connect to this with your Xbox or your Ipad or the Microsoft Windows 10 Edition.

Be careful when downloading mods. There are so many shady mod sites that use AdFly links that lead to porn ads, that rehost mods without permission from the authors and even host ads that lead to malware sites. It's a minefield, and for this reason, I highly recommend that you get your mods from CurseForge which uses the Twitch launcher. While Curse have a tonne of mods, they don't have everything. Minecraftforum.net seems fine too to get individual mods. I am sure there a other reputable places, but you are taking your chances.

You will also need the Forge Minecraft launcher to play mods. If you are new to mods, getting an account with Twitch/Curse and using their launcher and managing your mods there is much easier. You can't play on a modded server with the stock Mojang Launcher. You need to install Forge (or the Twitch Launcher) for the version you want to play.

Finally, these instructions are for version 1.12.2 of Minecraft. When it comes to mods version matters. There are many great mods at version 1.7.10 for example. No worries though, these instructions should work the same for any version you need. You just need to download the right version of Forge which I will get into later.

Why Linux and Not a Fully Managed Solution?

This is a valid question. A fully managed solution like one offered by the many dedicated Minecraft hosting companies out there can make sense. There is no need to secure the underlying Linux OS, this is all done for you.You get a nice graphical front end to manage your server, automated backups, DNS management to access your server, FTP access. They provide a GUI for managing your mods.

However, if you decide to go with a dedicated setup you can get a credit towards your server with DigitalOcean if you sign up through this referral link. Sizing of your server will depend on how many mods and users you intend to have.

Here are some of the reasons you may want to build your own;

1 - Maximum control right down to the OS level.
2 - Prefer working from the command line than from a Web browser to manage your server.
3 - High memory and cpu needs for your server and a VPS or dedicated server is cheaper than a higher end fully hosted solution.
4 - Have a server available which isn't costing you anything and a good internet link.
5 - Want to learn how to do it yourself from start to finish.
6 - Finally, the most important reason of all.....Because You Can!

Which Linux Distribution?

Minecraft

Recommending a specific Linuxdistribution as 'the best option' is like recommending a religion as the 'bestone to follow'. You will either be preaching to the converted or alienatingthe person you are having the discussion with.

For my purposes I like using Debian and its derivitaves. Specifically I likeUbuntu Server and XUbuntu Desktop LTS versions. However I have used otherdistributions and have liked them as well. This guide uses Ubuntu Server 16.04 LTS using the apt package manager. When a package manager is called for, just substitute the relevant commands for your favorite distro. They are all good.

Root Access to Your Server

The instructions assume that you have root (Administrator) access to your server. For simplicity I assume you are logging in as the root user. All of these commands will also work with sudo. If running sudo from your user account then make sure to add it when necessary. I will not be using sudo in front of these command line arguments throughout the document.

Step 1 - Install Java

Minecraft Server version 1.12.2 requires Java 8 to run. You can install it on Ubuntu as follows;

a) Login to your server via ssh or open a console window if this is a LinuxDesktop system.

b) Run the following commandc) Finally check your version to make sure all went well during install.If after installing you still see a different verison of java, run the following command and select java-8-openjdk-amd64/jre/bin/java

Step 2 - Setup Your Environment

a) This is a good time to do a full upgrade of your system. If using a Debianbased system you can use apt, otherwise use your distributions packagemanager.b) Install screen (This will be needed to run your minecraft server console while logged out of your Linux server).

Step 3 - Download The Forge Installer

a) create the folder

Now download the version 1.12.2 Forge Installer. Pick the Latest Installer file (not the Universal file) and copy it to your /opt/minecraft folder.

You should now have only one jar file in your /opt/minecraft folder.

Tip: If connecting to your server from a Windows based pc, use Filezilla or WinSCP to transfer the files to your Linux server

Step 4 - Configure your new Modded Minecraft Server

a) run the forge installer file with the --installServer flag.This will take a bit of time and will create a second file called forge-1.12.2-14.23.5.2854.jar.

Now run the newly created forge jar file as follows;

*Note: -Xms1024M and -Xmx2000M are parameters telling java to start with 1GB of ram as a minimum for the server jar file and let it grow to just under 2GB max as needed.If your server has more ram to dedicate then you can adjust these numbers. More players and more mods mean you need more. These are not constructs unique to Minecraft. Do a google search on (xms xmx jvm) and you will get some good information on how to manage a JVM's heap. From there you can make a better determination on what you should set this to for your servers resources and how you will be using your server.Minecraft Linux

For example, on a VPS with 1GB of ram I have set xms and xmx to 512M and 1008M respectively. So start the JVM with 512MB of ram and let it grow to just under 1GB max.

b) accept the EULA. The first time you try to run your minecraft server you will be required to accept the EULA.c) Change the following line to true and save the filed) copy your mods to the newly created mods folder.

e) Run the server again to generate your world. World generation will take a little longer the first time. Subsequent server starts will be much quicker.
Before doing this, you can download the following server.properties file and replace the one that was created automatically. (or copy/paste directly to your existing server.properties file from the console).
This server.properties file will give you a standard survival world on normal difficulty.
Edit the file with your preferred seed if you have one and it will generate the world that you specify.
Minecraft Atlas is great site to find new interesting seeds. Although the site says Minecraft 1.8, the seeds are compatible with 1.12.2
View the Wiki for all server.properties configuration options.On a low power system you can lower the view distance. Start with 10 for your modded server,and adjust it downward if you get some lag. If you have plenty of CPU and RAM you can increase it as well.

f) make things a little easier on yourself by using a script to start minecraft g) Copy and paste the following in your minecraft.sh file h) Save the file and make it executablei) Start your server

Step 5 - Optional-- Configure Minecraft to start on bootup.

a) Add a command to /etc/rc.local to start your Minecraft server everytime the server boots up.Right before the last line 'exit 0' add the following command, save and exit the file. This will allow the minecraft server to start in a detached screen session when the server boots up.Note: rc.local still works on some Debian derivitaves such as Ubuntu 16.04LTS. On Debian proper and Ubuntu 18.04 LTS, rc.local has been deprecated. To re-enable rc.local you can simply re-create /etc/rc.local file as follows;in the rc.local file copy and paste the followingSave the file and make it executable

If that doesn't work you may have to re-enable the rc.local service.Use the following set of instructions. However this should not be necessary.

Also note that I have not tested this on Ubuntu 20.04LTS but you should be able to re-enable rc.local there as well.

b) To access your console after bootup use the following command;

Note: Some people may question why I am using rc.local instead of an init script to start the minecraft server. I don't want to run the server in the background, I wanta full screen session accessible to view and interact with the minecraft server console. If I want to stop the server I want to issue a stop command there, not from a script in init.d. Also rc.local is one lineand is super easy. It just works well for this situation. I use init scripts for other things and they are great, but this is just a preference I have for a minecraft server. Do whatworks for you.

Step 6 - Connect to Your Server

Minecraft linux downloadIf you have made it this far then I assume you have already been playing mods on local single player worlds. You already know how to install mods locally. If not then just make sure that you have the same mods running on your PCthat you have installed on your server. Your server and local mods folders should have the same files in them.

If you have friends that want to join your server they will also need to have the same mods and mod versions on their computers. If they need help setting things up you can direct them to the How to Install and Play Mods page.

a) In Minecraft select the Multiplayer button

b) Click the Add Server button
c) Edit the Server Info as follows (insert the IP address of your Linux server)

d) Enter your world for the first time and have fun!!!

Step 7 - Hardening Your Minecraft Server if Visible on the Internet

If you want friends to access the server from outside your home network you will have to forward external requests to port 25565 on your router to your server. Check the documentation for your router.

a) If you are installing this on a VPS or dedicated server you will most likely want to enable the firewall with netfilter/iptables. You should be blocking ports that are not used orthat you do not want to expose to the internet. An example rule for a minecraft server would be as follows;This rule says to accept all new tcp packet requests to the minecraft server listening on port 25565.

To help you get started please refer to my article on setting up The Linux Five Minute Firewall.

Note:If you are not comfortable doing this then a VPS or dedicated server solution may not be a good one for you. If you manage a full Linux server connected directly to the internet with a public IP address, it is your responsibility to ensure you are hardening and securing it properly. If this is not something you want to do then a fully managed solution with a Minecraft server hosting company may be a better option for you. They take care of all the dirty work like this.

b) Activate whitelisting. It is extremely important to activate whitelisting if your server is visible on the internet. Port 25565 is a popular port and is actively scanned by all kinds of people using automated scripts.They are looking for open servers so they can login and cause havoc on your world. Whitelisting will stop unauthorized users from joining your world.
In your server.properties set the following value to true;When an unauthorized user tries to connect to your server they will simply get a message that they are not whitelisted and will be turned away.

Step 8 - Backup Your Server Frequently

To backup your server do the following; Copy the minecraft_backup.tar.gz to a safe location, preferably another computer. This file can be used to restore your world if needed. Get into the habit of doing this regularly. You can even use the cron scheduler to automate the process at a specified time each day as explained in Step 10.

Step 9 - Recovering a Corrupted World

The importance of regular backups cannot be overstated. It happens, you try to log into your awesome minecraft world and you see exception errors only. Or you enter the world and all kindsof things have disappeared, your sweet enchanted sword is gone, your diamonds chest is empty. Hours of work and play are now destroyed. Your world may have corrupted for any number of issues such as software problems or disk errors.

If you did your backups like we discussed in Step 8 then you are laughing. To restore your previous backup do the following;

That's it, restart your server and you have successfully restored from your last good backup. Any changes you made since that backup are gone, so it is important to do your backups regularly.

Step 10 - Creating Automatic Backups

These instructions will help you create automatic backups of your minecraftworld, so that you don't have to worry about remembering. These instructionswill do the following;

1) Provide a ready to use script to initiate the backup
2) Configure the cron scheduler to start the backup at 2:02am everyday
3) Name the backup day_of_week-minecraft-.tar.gz

This will create a 7 day rotation of backups with the oldest being overwrittenwith a new one.

a) Create your script.b) copy and paste this script into your mcbackup.sh file you have open in thenano editor. Change the dest= line to point to the folder you want your backups to reside in.

c) Save the file by pressing CTRL-X and entering Y

d) Make the file executableStep 12e) Test your script. Before creating the scheduled task ensure your scriptworksYou should see the backup happening. Once completed open the file it createdwhich should be in the location that you specified. Once you have confirmedthat your backup works, create a scheduled task to automate the backups.

Minecraft Linux Launcher

f) Create a scheduled task with the cron scheduler
Make sure you are logged in as root so that it writes to your root user crontab.Enter this line at the end of your root crontab and then save it. This will create your backup every day at 2:02 am. That's it, in your folderwhere you specified your backups to be created you will have the followingafter one week;Every day your oldest file will be replaced with the new backup giving you a sevenday rotation of backups.

That's it! Now have fun! I hope these instructions were helpful and that you learned a bit of how a Minecraft server functions.

Donate

If you found these instructions helpful a small donation is appreciated. I will be keeping these instructions up to date with the latest versions of Forge for 1.12.2.

PayPal

Copyright © 2021 Al Audet

Note: This post shows you how to install a Minecraft server on your host machine. If you prefer using Docker, see this post.

In the previous post, I showed you how to setup your own Linux based cloud server. This post will show you how to install Minecraft Bedrock on your server. I don’t know anything about Minecraft, but I knew our kids would like a way to play Minecraft with their friends without physically being in the same location, so I setup a server for them. For this tutorial, I’m using the VPS from OVHcloud that I setup in the previous post.

Steps for setting up your own Minecraft Bedrock server:

1. Start a Cloud Server. Something like the $3.50/month starter VPS from OVHcloud will work fine for a few players on a vanilla (unmodified) Minecraft server.

2. Create an Xbox Live account if you don’t already have one. You will need the gamertag and xuid associated with your Xbox Live account. You can use the gamertag that is generated or customize it. The gamertag I created for this tutorial is “lukesblog”.

3. Login to your server that you setup in step 1 via Putty if you are using a Windows PC or from a terminal window if you are working from a Linux PC.

4. Create a user to run Minecraft that is separate from other users. This step is optional, but I like doing this for security reasons. Do not add the new user to the sudo group. I will create user “minecraft”. Set a separate password for this user and press enter through the name and phone numbers section.

5. Create a directory for the minecraft server

6. Install unzip

7. From your PC, open a browser and go the Minecraft Bedrock server download page. Click “I agree…” and then put your mouse pointer over the download for Ubuntu button. Right click on the download button and click “copy link address”.

Open notepad or some other text editor on your PC and paste that link to the text editor. You will use the link later.

8. From Putty, change into the directory that you made in step 5.

9. Download the server by typing “sudo wget” in front of the download link from step 7. Replace the link below with the current link that you copied.

10. Unzip the file. Replace the filename below with the current version that you just downloaded.

11. At this point, I like to change back into the root directory by typing “cd”. Note that you will have to type the full file path instead of “./” after getting out of the working directory.

12. Set server properties by editing the “server.properties” file. I changed the name of the server to “LukesBlog Server”, changed difficulty to “normal”, changed the max-players to “50”, and changed white-list to “true”. Make sure online-mode is set to “true” to make everyone be authenticated to Xbox Live. If you want to limit the people that can connect, set white-list to “true”.

Once you are finished setting the properties, save the file with “Ctrl + O” and then press enter. Exit the file by pressing “Ctrl + X”.

13. Now, edit the whitelist.json file. You will need the Xbox gamer tag for everyone you want to allow in the server. This step is not needed if you set white-list to “false” in the server.properties file.

Add the gamertags of all of the people you want to allow in the server. It has to be in this format:

Once you are finished, save the file with “Ctrl + O” and then press enter. Exit the file by pressing “Ctrl + X”.

14. Set the owner and file permissions of the Minecraft folder.

Change the owner of the minecraft_server folder and all files in it to owner “minecraft” and group “minecraft”.

Set file permissions of the minecraft_server folder and all files in it to 775. See this Chmod calculator for more explanation.

Minecraft

Minecraft Linux Client

15. Add ports 19132 and 19133 to your firewall allow list. Note that these ports must match the ports listed in your server.properties file.

16. Start minecraft at server boot.

Copy the text below into the file. Change the user, group, and working directory as needed to match what you created earlier. Once you are finished, save the file with “Ctrl + O” and then press enter. Exit the file by pressing “Ctrl + X”.

17. Test to see if the server is working:

If it is working correctly, you should see this:

Set the server to start at boot with this command:

18. Now that the server is running, go ahead and join it from your Minecraft Bedrock app. I will use my phone for this.

Open your Minecraft app, and click “Play”. Then click the “Servers” tab. Then, click “Add Server”.

Enter the server name, Server IP (same IP that you login through Putty with), and port number that matches the server.properties file.

Click “Save” once you are done.

Now, join the server by opening your Minecraft app, and click “Play”. Then click the “Servers” tab. Your new server should now be listed under “More Servers” at the bottom.

19. Now, go back to Putty and add permissions for individual players. You only have to do this if you want to give some players permissions that are different from the default set by the server.properties file. The reason we are doing this last is that you need the xuid for each player that you want to set permissions for. One way to get the xuid is to look at the whitelist.json file. After each player joins for the first time, their xuid will be added to the whitelist.json file.

Open the whitelist.json file and copy the player’s xuid. It will be a string of numbers.

Exit the file without saving with “Ctrl + X”.

Now open the permission.json file and add the permissions in this format.

Once you are finished, save the file with “Ctrl + O” and then press enter. Exit the file by pressing “Ctrl + X”.

Restart Minecraft for the settings to take effect.

Minecraft Linux Service

20. Finally, reboot your cloud server, give it a few minutes, and then see if you can still join the server on your Minecraft app.

Minecraft Linux Edition

Note: The Minecraft Bedrock server is still in “A” testing. It will be updated often. See this post for instructions on updating your server.