Instalacja serwera Minecraft na Ubuntu Linux: przewodnik krok po kroku

Instalacja serwera Minecraft na Ubuntu Linux: przewodnik krok po kroku

Instalacja własnego serwera Minecraft na Ubuntu Linux daje pełną kontrolę nad pluginami, wydajnością i bezpieczeństwem. W MineGuard pomagamy setkom właścicieli serwerów i zdecydowana większość z nich działa właśnie na Ubuntu. W tym przewodniku przeprowadzimy cię przez wszystkie etapy: od czystego systemu do gotowego do pracy serwera.

Wymagania

Zanim zaczniesz, upewnij się, że masz:

  • Ubuntu 22.04 LTS albo Ubuntu 24.04 LTS (dla nowych serwerów polecamy 24.04)
  • Java 21 (obowiązkowa dla Minecrafta 1.21+)
  • Minimum 2 GB pamięci RAM (4 GB+ dla 10+ graczy)
  • VPS albo serwer dedykowany z dostępem root lub sudo
  • Stabilne łącze internetowe z prędkością co najmniej 10 Mbit/s

Jeśli uruchamiasz serwer w domu, trzeba będzie też skonfigurować przekierowanie portów. O tym piszemy na końcu.

Krok 1: Aktualizacja systemu

Zawsze zaczynaj od aktualizacji pakietów:

sudo apt update && sudo apt upgrade -y

To zapewni zainstalowanie wszystkich łatek bezpieczeństwa i aktualny indeks pakietów.

Krok 2: Instalacja Javy 21

Minecraft 1.21+ wymaga Javy 21. Zainstaluj JRE:

sudo apt install openjdk-21-jre-headless -y

Sprawdź instalację:

java -version

Powinieneś zobaczyć coś w stylu:

openjdk version "21.0.4" 2024-07-16

Jeśli w repozytoriach twojej wersji Ubuntu nie ma Javy 21, dodaj repozytorium Adoptium:

sudo apt install wget apt-transport-https -y
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /etc/apt/trusted.gpg.d/adoptium.asc
echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-21-jre -y

Krok 3: Utworzenie dedykowanego użytkownika

Nigdy nie uruchamiaj serwera Minecraft z konta root. Utwórz osobnego użytkownika:

sudo useradd -r -m -d /opt/minecraft -s /bin/bash minecraft

To utworzy systemowego użytkownika minecraft z katalogiem domowym /opt/minecraft.

Krok 4: Pobranie Paper (albo Purpur)

Polecamy Paper dla większości serwerów. Zapewnia najlepszą równowagę między wydajnością a kompatybilnością z pluginami. Dla dodatkowych możliwości dostosowania spróbuj Purpur.

Przełącz się na użytkownika minecraft i pobierz serwerowy jar:

sudo su - minecraft
mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
wget -O paper.jar https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/123/downloads/paper-1.21.4-123.jar

Zastąp URL najnowszą wersją ze strony pobierania Paper.

Krok 5: Akceptacja EULA

Uruchom serwer raz, żeby wygenerować pliki konfiguracyjne:

java -jar paper.jar --nogui

Serwer zatrzyma się i poprosi o akceptację EULA. Zedytuj plik:

nano eula.txt

Zmień eula=false na:

eula=true

Zapisz i wyjdź (Ctrl+X, Y, Enter).

Krok 6: Konfiguracja server.properties

Zedytuj główny plik konfiguracyjny:

nano server.properties

Kluczowe parametry:

server-port=25565
max-players=50
view-distance=10
simulation-distance=8
motd=My Minecraft Server
online-mode=true
enable-command-block=false
spawn-protection=16

Ważne: Zostaw online-mode=true, jeśli nie używasz proxy typu Velocity. Wyłączenie pozwoli każdemu wejść z dowolnym nickiem.

Krok 7: Flagi JVM Aikara

Te flagi JVM to złoty standard wydajności serwerów Minecraft. Optymalizują garbage collection i zużycie pamięci:

java -Xms2G -Xmx2G -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:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 \
  -XX:G1MixedGCLiveThresholdPercent=90 \
  -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 \
  -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
  -jar paper.jar --nogui

Zmień -Xms i -Xmx zgodnie z dostępnym RAM-em. Zawsze ustawiaj taką samą wartość. Nie przydzielaj całej pamięci, zostaw minimum 1 GB dla systemu operacyjnego.

Krok 8: Utworzenie usługi systemd

Użycie screen albo tmux nadaje się do testów, ale na produkcję lepiej użyć systemd. Zapewnia autostart przy ładowaniu i autorestart przy awariach.

Najpierw wróć do użytkownika z sudo:

exit

Utwórz plik usługi:

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

Wklej konfigurację:

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

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server

ExecStart=/usr/bin/java -Xms2G -Xmx2G -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:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 \
  -XX:G1MixedGCLiveThresholdPercent=90 \
  -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 \
  -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
  -jar paper.jar --nogui

Restart=on-failure
RestartSec=10

StandardInput=null
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Aktywuj i uruchom usługę:

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

Sprawdź status:

sudo systemctl status minecraft.service

Podgląd logów w czasie rzeczywistym:

sudo journalctl -u minecraft.service -f

Screen/tmux czy systemd

Wiele przewodników nadal poleca screen albo tmux. Nadają się do developmentu, ale mają wady w zastosowaniach produkcyjnych:

  • Nie startują automatycznie po restarcie
  • Nie restartują serwera przy crashu
  • Trzeba ręcznie podłączać się do sesji

systemd rozwiązuje wszystkie te problemy automatycznie. Jeśli potrzebujesz dostępu do konsoli, użyj mcrcon do wysyłania komend przez RCON.

Krok 9: Konfiguracja firewalla

Ubuntu jest dostarczane z ufw (Uncomplicated Firewall). Zezwól na ruch Minecrafta:

sudo ufw allow 25565/tcp

Jeśli potrzebujesz dostępu SSH (raczej tak):

sudo ufw allow ssh

Włącz firewall:

sudo ufw enable

Sprawdź status:

sudo ufw status

Port 25565/tcp powinien być na liście ALLOW.

Jeśli twój serwer używa GeyserMC dla graczy Bedrock, otwórz też port UDP:

sudo ufw allow 19132/udp

Krok 10: Uprawnienia plików

Upewnij się, że wszystkie pliki serwera należą do użytkownika minecraft:

sudo chown -R minecraft:minecraft /opt/minecraft

Ustaw poprawne uprawnienia:

sudo find /opt/minecraft -type d -exec chmod 750 {} \;
sudo find /opt/minecraft -type f -exec chmod 640 {} \;
sudo chmod 750 /opt/minecraft/server/paper.jar

To zapobiegnie odczytowi lub modyfikacji plików serwera przez innych użytkowników systemu.

Połączenie z zewnątrz

VPS / Serwer dedykowany

Jeśli twój serwer działa na VPS albo serwerze dedykowanym z publicznym IP, gracze mogą się podłączać bezpośrednio po adresie IP i porcie 25565. Dodatkowa konfiguracja nie jest potrzebna, wystarczą reguły firewalla powyżej.

Sieć domowa

Jeśli uruchamiasz serwer w domu, trzeba skonfigurować przekierowanie portów:

  1. Sprawdź lokalny IP serwera: ip addr show
  2. Wejdź w panel routera (zazwyczaj 192.168.1.1 albo 192.168.0.1)
  3. Znajdź sekcję przekierowania portów (port forwarding)
  4. Przekieruj zewnętrzny port 25565 (TCP) na lokalny IP serwera, port 25565
  5. Udostępnij publiczny IP graczom (sprawdzisz go na whatismyip.com)

Dla bardziej profesjonalnego rozwiązania rozważ wynajem VPS. Dostawcy tacy jak Hetzner, OVH i Netcup oferują budżetowe opcje od 5$/miesiąc.

Autorestart przy crashach

Utworzona przez nas usługa systemd już obsługuje restarty parametrem Restart=on-failure. Jeśli proces Javy padnie, systemd poczeka 10 sekund i uruchomi go ponownie.

Dla większej niezawodności można dodać watchdog. Dodaj tę linię w sekcji [Service]:

WatchdogSec=120

To nakaże systemd zrestartować usługę, jeśli nie odpowiada przez 120 sekund. Pamiętaj, że Paper domyślnie nie wysyła sygnałów watchdog, więc działa to jako skrajny timeout.

Chroń serwer z MineGuard

Gdy twój serwer Minecraft zacznie działać, stanie się celem ataków. Ataki DDoS są niesamowicie powszechne w społeczności Minecrafta, i nawet małe serwery dostają oberwać. Stworzyliśmy MineGuard właśnie po to, żeby rozwiązać ten problem.

Nasz darmowy plan zapewnia ochronę DDoS bez żadnej konfiguracji. Po prostu wskaż swoją domenę na nasz filtr, a my zajmiemy się resztą. Bez pluginów, bez zmian w oprogramowaniu serwera. Konfiguracja zajmuje około 5 minut i działa z Paper, Purpur, Velocity i dowolnym innym oprogramowaniem serwerowym.

Podsumowanie

Oto, co omówiliśmy w tym przewodniku:

  1. Zaktualizowaliśmy Ubuntu i zainstalowaliśmy Javę 21
  2. Utworzyliśmy dedykowanego użytkownika minecraft (nigdy nie uruchamiaj z root)
  3. Pobraliśmy serwer Paper
  4. Zaakceptowaliśmy EULA i skonfigurowaliśmy server.properties
  5. Zastosowaliśmy flagi JVM Aikara dla optymalnej wydajności
  6. Utworzyliśmy usługę systemd dla autostartu i odzyskiwania po awariach
  7. Skonfigurowaliśmy reguły firewalla ufw
  8. Ustawiliśmy poprawne uprawnienia plików
  9. Omówiliśmy przekierowanie portów dla sieci domowych

Twój serwer jest gotowy na przyjmowanie graczy. Jeśli masz pytania o ochronę przed atakami, zajrzyj do naszej dokumentacji albo napisz do nas przez panel. Zawsze chętnie pomożemy.


Chroń swój serwer przed atakami DDoS

Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.

Wypróbuj za darmo


Powiązane artykuły