Kā uzstādīt Minecraft serveri uz CentOS 7: Java, ugunsmūris, systemd un rezerves kopijas

Kā uzstādīt Minecraft serveri uz CentOS 7

Minecraft servera uzstādīšana uz CentOS 7 ir labs risinājums lietotājiem, kuri vēlas pilnu kontroli pār versiju, modiem, pasaules failiem, backup procedūrām un servera veiktspēju. Atšķirībā no gataviem spēļu hostinga paneļiem, pašrocīgi uzstādīts serveris dod iespēju precīzi izvēlēties Java versiju, noteikt atmiņas limitus, sakārtot ugunsmūri un izveidot automātisku startēšanos pēc pārstartēšanas. Tas ir īpaši svarīgi, ja serveris nav tikai īslaicīgs tests, bet projekts, kuru plānots uzturēt ilgāk.

Praktiski jums ir nepieciešams CentOS 7 serveris, Java, atsevišķs sistēmas lietotājs, servera .jar fails, atvērts ports un systemd serviss. Šādu vidi visbiežāk veido uz virtuālā servera, jo tas dod root piekļuvi un ļauj pielāgot resursus. Ja plānota lielāka slodze, vairāk spēlētāju vai smagāki modpacki, piemērotāka var būt serveru īre. Rezerves kopiju glabāšanai ārpus paša servera noder arī mākoņu datu glabāšana.

Pirms instalācijas pārbaudiet, kādu Java versiju prasa jūsu izvēlētā Minecraft versija. Daļa vecāku serveru izmanto Java 8, bet jaunākiem vanilla, Paper vai citiem buildiem bieži vajag Java 17. Ja Java versija nesakrīt, serveris nestartēs vai apstāsies ar kļūdām. Tāpēc pareizā secība ir: vispirms Java, tad servera .jar, pēc tam konfigurācija un automātika.

1) Sistēmas sagatavošana

Sāciet ar pakotņu atjaunināšanu un dažiem rīkiem, kas noderēs administrēšanā. Tas palīdz izvairīties no problēmām, kad vēlāk pietrūkst wget, unzip vai teksta redaktora. Tajā pašā laikā ieteicams izveidot atsevišķu lietotāju minecraft, lai serveris nedarbotos kā root. Tas ir drošāk un sakārtotāk, jo visi faili atradīsies vienā kontrolējamā direktorijā.

sudo yum update -y
sudo yum install -y wget curl nano tar unzip screen

sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
sudo mkdir -p /opt/minecraft/server
sudo chown -R minecraft:minecraft /opt/minecraft

Šāda struktūra ir ērta arī nākotnē. Ja vēlāk gribēsiet turēt otru serveri testēšanai vai citu pasauli, pietiks izveidot papildu apakšdirektoriju. Tāpat būs vieglāk uzrakstīt backup skriptu, jo visi svarīgie faili glabāsies vienā vietā.

2) Java uzstādīšana

CentOS 7 parasti izmanto OpenJDK no repozitorijiem. Ja jūsu serverim vajag Java 17, uzstādiet tieši to. Ja izmantojat vecāku Minecraft versiju, iespējams, būs jāizmanto Java 8. Svarīgākais ir neuzminēt, bet pārbaudīt prasību un pēc instalācijas pārliecināties ar java -version, ka tieši pareizā vide ir pieejama.

sudo yum install -y java-17-openjdk java-17-openjdk-headless
java -version

Ja jums vajag Java 8, komanda būs līdzīga, tikai ar java-1.8.0-openjdk pakotnēm. Šis solis šķiet vienkāršs, taču praksē tieši nepareiza Java versija ir viens no biežākajiem iemesliem, kāpēc Minecraft serveris “neiet”.

3) Servera faila lejupielāde un pirmā palaišana

Pārslēdzieties uz minecraft lietotāju un lejupielādējiet izvēlēto servera .jar failu. Tas var būt vanilla, Paper vai cita dakša. Svarīgi izmantot uzticamu avotu un failu nosaukt vienkārši, piemēram, server.jar, lai systemd konfigurācija vēlāk būtu skaidra un viegli uzturama.

sudo su - minecraft
cd /opt/minecraft/server

wget -O server.jar YOUR_SERVER_JAR_URL
ls -lh

Pēc lejupielādes veiciet pirmo startu. Tas izveidos sākotnējos failus, tostarp eula.txt un server.properties. Pirmajam testam izmantojiet mērenu atmiņas apjomu. Mazam privātam serverim bieži pietiek ar 1–2 GB, un nav vērts uzreiz atdot Java procesam visu sistēmas RAM.

java -Xms1G -Xmx2G -jar server.jar nogui

Pirmā palaišana parasti apstāsies ar paziņojumu par EULA. Tas ir normāli. Atveriet eula.txt un nomainiet eula=false uz eula=true. Bez šī soļa serveris nepalaidīsies normāli.

nano eula.txt
# nomainiet:
eula=false

# uz:
eula=true

4) server.properties iestatīšana

Failā server.properties atrodas galvenie spēles servera iestatījumi. Tur var definēt servera nosaukumu, spēlētāju limitu, portu, grūtības līmeni, redzamības attālumu, whitelist un citus parametrus. Mazam privātam serverim ieteicams sākt ar konservatīvām vērtībām, lai slodze būtu saprātīga un serveris būtu stabils jau no pirmās dienas.

nano server.properties
motd=CloudHosting Minecraft Server
server-port=25565
max-players=10
online-mode=true
white-list=true
view-distance=8
simulation-distance=6
difficulty=normal
spawn-protection=0

Ja serveris paredzēts draugiem, whitelist ir laba ideja. Ja plānojat publisku serveri, jāpadomā par papildu aizsardzību, rezerves kopijām un iespējamu proxy vai pluginu slāni. Taču sākumā visdrošāk ir panākt stabilu bāzes servera darbību bez liekām komplikācijām.

5) Systemd serviss automātiskai startēšanai

Lai serveris automātiski celtos pēc VPS vai hosta restarta, izmantojiet systemd servisu. Tas ir uzticamāk nekā paļauties uz screen sesiju. Systemd vienība ļauj ātri pārbaudīt statusu, pārstartēt servisu un nodrošina sakārtotu ekspluatāciju ilgtermiņā.

sudo nano /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xms1G -Xmx2G -jar /opt/minecraft/server/server.jar nogui
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
RestartSec=20
Nice=1
NoNewPrivileges=true
ProtectHome=true
ProtectSystem=full
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Pēc faila saglabāšanas pārlādējiet systemd konfigurāciju un palaidiet servisu. Ja kaut kas nav korekti, systemctl status uzreiz parādīs, kurā solī ir problēma. Tas ir viens no lielākajiem ieguvumiem, salīdzinot ar manuālu palaišanu.

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

6) Ugunsmūris un pieslēgšanās

Minecraft Java Edition izmanto portu 25565/TCP. Ja serveris ir palaists, bet klients nevar pieslēgties, vispirms jāpārbauda ugunsmūris. CentOS 7 vidē bieži tiek lietots firewalld, un ports jāatver gan lokālajā sistēmā, gan dažreiz provider līmeņa ugunsmūrī, ja tāds tiek izmantots.

sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
ss -lntp | grep 25565

Pēc tam varat pieslēgties no Minecraft klienta uz servera IP. Ja plānojat izmantot domēnu, vienkāršākais risinājums ir izveidot A ierakstu uz servera IP. Privātiem serveriem ieteicams saglabāt online-mode=true un whitelist, lai nejauši neatvērtu vidi visiem interesentiem internetā.

Veiktspēja, drošība un rezerves kopijas

Minecraft servera veiktspēja nav atkarīga tikai no RAM. Ļoti liela nozīme ir CPU viena pavediena veiktspējai, diska ātrumam, pasaules izmēram, izmantotajiem pluginu/modu komplektiem un view-distance iestatījumiem. Pārāk liels Java heap izmērs ne vienmēr uzlabo darbu; dažkārt tas pat palielina aiztures. Tāpēc resursus labāk palielināt pakāpeniski, sekojot reālajai slodzei.

Drošības ziņā laba prakse ir izmantot atsevišķu lietotāju, neatvērt liekus portus un regulāri atjaunināt Java. Ja lietojat pluginus vai modifikācijas, lejupielādējiet tās tikai no uzticamiem avotiem. Nepārbaudīti pluginu faili var radīt ne tikai stabilitātes problēmas, bet arī drošības riskus.

Rezerves kopijas ir īpaši svarīgas, jo pasaules faili ir servera galvenā vērtība. Serveri pārinstalēt ir salīdzinoši viegli, bet atjaunot zaudētu pasauli bez backup gandrīz nav iespējams. Vienkāršākais variants ir periodiski arhivēt servera direktoriju uz citu glabātuvi vai citu serveri.

tar -czf /tmp/minecraft-backup-$(date +%F).tar.gz /opt/minecraft/server

Ja serveri plānojat uzturēt ilgtermiņā, pierakstiet izmantoto Minecraft versiju, Java versiju, systemd konfigurāciju, portus un backup procedūru. Šāda dokumentācija ļoti palīdz atjauninājumos, migrācijā un kļūdu novēršanā. Uzticams Minecraft serveris ir nevis tas, kas vienreiz palaidās, bet tas, kuru iespējams saprotami administrēt, atjaunot un attīstīt arī pēc vairākiem mēnešiem.