To praktyczny towarzysz naszej strony VPS pod serwer gier. Tamta jest o tym, który plan pasuje; ta jest o faktycznym postawieniu serwera — Paper, właściwa usługa systemd, konfiguracja, która oszczędza Ci RAM, zapora i kopie zapasowe. Na końcu będziesz miał serwer Minecraft, który przetrwa awarię, przetrwa restart i nie zjada po cichu całej maszyny.
Jedna uczciwa uwaga, zanim zaczniemy: granice CPU i RAM ze strony use-case wciąż obowiązują. Paper na planie Small lub Medium jest świetny dla grupy znajomych. Paczka 150 modów dla dużej społeczności nie jest tym, do czego te plany służą, i żadna konfiguracja tego nie naprawi. Mając to jasne, budujmy.
1. Zainstaluj Javę
Paper działa na Javie. Zainstaluj headless JDK — dla bieżącej wersji Minecrafta to Java 21:
sudo apt update
sudo apt install -y openjdk-21-jre-headless
java -version
Jeśli Twoja wersja Minecrafta jest starsza, zainstaluj Javę, której wymaga (17 dla ery 1.18–1.20). Logi serwera głośno się poskarżą, jeśli wersja jest zła.
2. Skonfiguruj katalog serwera i Paper
Uruchamiaj serwer jako własny użytkownik, nie root — jeśli coś kiedyś pójdzie źle, chcesz mieć mały promień rażenia.
sudo adduser --system --group --home /opt/minecraft minecraft
sudo -u minecraft mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
Pobierz plik jar Paper dla swojej wersji Minecrafta (chwyć URL z ich strony pobierania) i zapisz jako server.jar:
sudo -u minecraft wget -O server.jar "PASTE_PAPER_DOWNLOAD_URL_HERE"
Uruchom go raz, by wygenerować pliki konfiguracji, potem zaakceptuj EULA:
sudo -u minecraft java -Xms1G -Xmx3G -jar server.jar --nogui
# zatrzymuje się natychmiast, prosząc o akceptację EULA
sudo -u minecraft sed -i 's/eula=false/eula=true/' eula.txt
-Xmx3G to sufit heapu JVM. Na planie Small 4 GB ~3 GB dla JVM zostawia systemowi przestrzeń do oddychania. Nie ustawiaj go na cały RAM — JVM ma narzut poza heapem, a zabójca OOM nie negocjuje.
3. Dostrój server.properties, by oszczędzić RAM
Tu kupujesz sobie wydajność za darmo. Otwórz server.properties i ustaw:
view-distance=8
simulation-distance=6
max-players=10
view-distance— chunki trzymane załadowane wokół każdego gracza. Domyślne 10 jest hojne; 8 (lub nawet 6) znacząco tnie RAM i CPU, a prawie nikt nie zauważa różnicy.simulation-distance— jak daleko encje, redstone i wzrost upraw faktycznie tykają. Niżej jest taniej. 6 to rozsądny punkt startu.max-players— ustaw na to, czego faktycznie oczekujesz, by niespodziewany tłum nie wysadził Twojego budżetu RAM.
Pamiętaj o rzeczywistości jednego wątku: tick Minecrafta opiera się na jednym rdzeniu. Jeśli TPS spada, więcej RAM nie pomoże — pomogą niższy simulation-distance i limity mobów.
4. Uruchom go jako usługę systemd
To część, która zamienia „plik jar, który uruchomiłem raz” w „serwer”. Utwórz /etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft Paper Server
After=network.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx3G -jar server.jar --nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 143
[Install]
WantedBy=multi-user.target
Restart=on-failure to linia, która ma znaczenie — jeśli JVM się wywali, systemd przywraca go w dziesięć sekund. SuccessExitStatus=... 143 powstrzymuje systemd przed traktowaniem normalnego wyłączenia SIGTERM jako awarii. Włącz i uruchom:
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft
sudo journalctl -u minecraft -f # logi na żywo
Teraz uruchamia się przy rozruchu, restartuje przy awarii, a logi idą do journald.
5. Otwórz port zapory
Minecraft nasłuchuje domyślnie na TCP 25565. Otwórz tylko to:
sudo ufw allow 25565/tcp
sudo ufw enable
Daj znajomym IP serwera (i :25565, jeśli zmieniłeś port). Nie otwieraj niczego, czego nie potrzebujesz — całym sensem prowadzenia własnej maszyny jest to, że Ty decydujesz, co jest osiągalne.
6. Twórz kopię zapasową świata
Ta, którą ludzie pomijają aż do dnia, w którym żałują. Prosty skrypt:
#!/bin/bash
cd /opt/minecraft/server
TS=$(date +%Y%m%d-%H%M)
tar czf /opt/minecraft/backups/world-$TS.tar.gz world world_nether world_the_end
Uruchom go z crona i — to ważna połowa — skopiuj archiwum z serwera, do magazynu obiektowego lub na inną maszynę. Kopia na tym samym dysku co świat umiera razem z dyskiem. Jeśli Twój świat ma znaczenie, uruchom save-off i save-all w konsoli serwera przed tar, byś nigdy nie robił migawki w środku zapisu.
To cała rzecz
Java, Paper, dostrojona konfiguracja, usługa systemd, która auto-restartuje, port zapory i kopie zapasowe, które żyją gdzie indziej. To serwer Minecraft, który zachowuje się jak serwer.
Jeśli nie masz jeszcze maszyny: wybierz plan — Small (8 $) dla małej grupy, Medium (12 $), jeśli pchasz dziesięciu graczy — płać w USDC lub USDT (bez KYC, bez dokumentów), a będziesz miał root w około 60 sekund. Potem przejdź po tej stronie. I uczciwe przypomnienie ostatni raz: to właściwa konfiguracja dla vanilla lub Paper ze znajomymi. Ciężki modpack dla dużej społeczności potrzebuje innego sprzętu, i wolimy, byś usłyszał to od nas najpierw.
Komentarze
Brak komentarzy. Bądź pierwszy.