Blog / Tutorials

How to Setup a Minecraft Vanilla 1.17.1 Server (Java 16) on AlmaLinux, CentOS, Rocky Linux & Fedora

4 min read
VoxiHost Team
How to Setup a Minecraft Vanilla 1.17.1 Server (Java 16) on AlmaLinux, CentOS, Rocky Linux & Fedora

Minecraft 1.17.x originally required Java 16. However, since Java 16 was a short-lived release, it is rarely available in standard RHEL derivatives (AlmaLinux, Rocky Linux, CentOS 9 Stream). Therefore, we will use Java 17, which is fully backwards compatible with 1.17.1. For a broader overview of Java requirements, visit our Minecraft Java Server Compatibility Guide.

Safety first: Running public game servers as the root user exposes your entire system to unnecessary risk. Follow Step 2 carefully to setup a secure environment.

Supported Versions

This guide is fully compatible with:

  • 1.17 Era: 1.17.1, 1.17

To find the exact link for your version, visit our Minecraft Vanilla Server Download Links Archive.

Prerequisites

  • A VPS running AlmaLinux, Rocky Linux, or CentOS (Available on Premium VPS).
  • Root or sudo access via SSH (for installing Java).
  • A restricted non-root user to run the server software safely.

Step 1: Install Java 17 (Fallback)

Before proceeding, we recommend updating your system to ensure stability.

As mentioned, Java 16 is a legacy transitional version and is not in the default RHEL dnf repositories. Installing the standard LTS Java 17 is the safest and recommended approach.

sudo dnf check-update
sudo dnf install java-17-openjdk-headless wget -y

Terminal output showing the installation of OpenJDK on a Linux system

Step 2: Create a Dedicated User

For security, never run your server as root. If you are new to Linux permissions, check our guide on How to Create and Manage Users on AlmaLinux/Rocky.

Creating a dedicated 'minecraft' user for secure server hosting

sudo useradd -m -r -s /bin/bash minecraft
sudo su - minecraft
mkdir server && cd server

Step 3: Download 1.17.1

Looking for a different version? You can find direct Mojang download links for all releases in our Minecraft Server Download Archive.

Downloading the Minecraft 1.17.1 server.jar from Mojang servers using wget

wget https://piston-data.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar

Step 4: Accept the EULA

First launch of the 1.17.1 JAR to generate configuration files and accept the EULA

Run the server once to generate the required configuration files:

java -jar server.jar nogui
sed -i 's/eula=false/eula=true/' eula.txt

Step 5: Create Launch Script

Pro Tip: Using the Nano Editor
Nano is a beginner-friendly text editor for the terminal. If the nano command is not found, install it using sudo dnf install nano -y.

  • To Save: Press CTRL + O, then hit ENTER.
  • To Exit: Press CTRL + X.

Paste the following (Aikar's Flags optimized for G1GC):

Using the nano editor to create and configure the start.sh launch script

nano start.sh

In the editor, paste:

#!/bin/bash
java -Xmx4G -Xms4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikar.for.v1.20=false -jar server.jar nogui

Setting executable permissions on the start.sh script

Make it executable:

chmod +x start.sh

Step 6: First Launch & Administrator Setup

Before setting up the automatic background service, you should run the server manually at least once to grant yourself administrator (OP) rights.

1. Start the server manually

Starting the Minecraft 1.17.1 server manually to access the console

Run the launch script you just created:

./start.sh

2. Grant Administrator (OP) rights

Using the op command in the console to grant administrator privileges

Once the server has finished loading (you see the "Done!" message), type your command directly into the console:

op your_minecraft_username

3. Stop the server

Executing the stop command to safely shut down the server process

To save the world data and prepare for background hosting, type:

stop

This will return you to the normal Linux command line.

Step 7: Configure Systemd Service

For a professional setup, we use systemd. This ensures your server starts automatically if the VPS reboots and handles crashes gracefully.

Exit the minecraft user back to your root/sudo account:

exit

Creating the minecraft.service file for professional background hosting

Create the service file:

sudo nano /etc/systemd/system/minecraft.service

Paste the following configuration:

[Unit]
Description=VoxiHost Minecraft 1.17 Server
After=network.target

[Service]
User=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/home/minecraft/server/start.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Enabling and starting the minecraft systemd service in terminal

Enable and start your server:

sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft

Managing Your Server

  • Check Status: sudo systemctl status minecraft
  • View Logs: sudo journalctl -u minecraft -f
  • Stop Server: sudo systemctl stop minecraft

Next Steps: Security & Management

Now that your server is running, don't forget to:

  1. DDoS Protection: All VoxiHost servers include automatic VoxiShield protection. Your server is already being monitored to prevent downtime during attacks.
  2. Open the Firewall: Allow traffic on port 25565 by running: sudo firewall-cmd --permanent --add-port=25565/tcp followed by sudo firewall-cmd --reload. For more details, see our Firewalld Setup Guide.
  3. Transfer Files: Want to upload an existing world? Use SFTP as explained in our FileZilla Tutorial.
  4. Hardening & Monitoring: Protect your VPS further by securing SSH and setting up Fail2ban. You can also monitor your system resources using htop.

Looking for a stable home for your world? Check out Premium VPS.

Languages