ეს არის პრაქტიკული თანამგზავრი ჩვენი VPS თამაშის სერვერისთვის გვერდისა. ის არის იმაზე, რომელი ტარიფი ჯდება; ეს არის სერვერის რეალურად აწყობაზე — Paper, სათანადო systemd სერვისი, კონფიგი, რომელიც გიზოგავთ RAM-ს, firewall და სარეზერვო ასლები. ბოლოს გექნებათ Minecraft სერვერი, რომელიც გადარჩება crash-ს, გადარჩება გადატვირთვას და არ ჭამს ჩუმად თქვენს მთელ box-ს.
ერთი გულწრფელი შენიშვნა დაწყებამდე: CPU-სა და RAM შეზღუდვები use-case გვერდიდან მაინც მოქმედებს. Paper Small ან Medium ტარიფზე შესანიშნავია მეგობრების ჯგუფისთვის. 150-mod pack დიდი საზოგადოებისთვის არ არის ის, რისთვისაც ეს ტარიფებია, და არავითარი კონფიგი ამას არ ასწორებს. ამის ნათლად, მოდი ავაშენოთ.
1. დააინსტალეთ Java
Paper მუშაობს Java-ზე. დააინსტალეთ headless JDK — მიმდინარე Minecraft ვერსიისთვის ეს Java 21-ია:
sudo apt update
sudo apt install -y openjdk-21-jre-headless
java -version
თუ თქვენი Minecraft ვერსია უფრო ძველია, დააინსტალეთ Java, რომელსაც ის ითხოვს (17 1.18-1.20 ეპოქისთვის). სერვერის log-ები ხმამაღლა იჩივლებენ, თუ ვერსია არასწორია.
2. დააყენეთ სერვერის დირექტორია და Paper
გაუშვით სერვერი საკუთარ მომხმარებლად, არა root-ად — თუ ოდესმე რამე ვერ წავა, გინდათ blast radius პატარა.
sudo adduser --system --group --home /opt/minecraft minecraft
sudo -u minecraft mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
გადმოწერეთ Paper jar თქვენი Minecraft ვერსიისთვის (აიღეთ URL მათი downloads გვერდიდან) და შეინახეთ ის როგორც server.jar:
sudo -u minecraft wget -O server.jar "PASTE_PAPER_DOWNLOAD_URL_HERE"
გაუშვით ის ერთხელ კონფიგ ფაილების გენერაციისთვის, შემდეგ მიიღეთ EULA:
sudo -u minecraft java -Xms1G -Xmx3G -jar server.jar --nogui
# it stops immediately asking you to accept the EULA
sudo -u minecraft sed -i 's/eula=false/eula=true/' eula.txt
-Xmx3G არის JVM heap ჭერი. 4 GB Small ტარიფზე, ~3 GB JVM-ისთვის ტოვებს OS-ს სუნთქვის ადგილს. ნუ დააყენებთ მას თქვენს მთელ RAM-ზე — JVM-ს აქვს overhead heap-ის მიღმა, და OOM killer არ მოლაპარაკებს.
3. მოარგეთ server.properties RAM-ის დასაზოგად
აქ იყიდით თავს წარმადობას უფასოდ. გახსენით server.properties და დააყენეთ:
view-distance=8
simulation-distance=6
max-players=10
view-distance— chunk-ები, ჩატვირთული ყოველი მოთამაშის გარშემო. ნაგულისხმევი 10 გულუხვია; 8 (ან 6-იც კი) ჭრის RAM-სა და CPU-ს შესამჩნევად და თითქმის არავინ ამჩნევს განსხვავებას.simulation-distance— რამდენად შორს tick-ს აკეთებენ რეალურად entity-ები, redstone და კულტურის ზრდა. დაბალი უფრო იაფია. 6 გონივრული საწყისი წერტილია.max-players— დააყენეთ ის იმაზე, რასაც რეალურად ელოდებით, რომ მოულოდნელმა ბრბომ არ აგისკდეთ RAM ბიუჯეტი.
გახსოვდეთ single-thread რეალობა: Minecraft-ის tick ერთ ბირთვს ეყრდნობა. თუ TPS ეცემა, მეტი RAM არ დაეხმარება — დაწიეთ simulation-distance და mob cap-ები.
4. გაუშვით ის systemd სერვისად
ეს არის ნაწილი, რომელიც აქცევს „jar-ს, რომელიც ერთხელ გავუშვი“ „სერვერად“. შექმენით /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 არის ხაზი, რომელსაც მნიშვნელობა აქვს — თუ JVM crash-ს გააკეთებს, systemd აბრუნებს მას ათ წამში. SuccessExitStatus=... 143 ჩერდება systemd-ს, რომ ნორმალური SIGTERM გამორთვა წარუმატებლობად არ ჩათვალოს. ჩართეთ და გაუშვით ის:
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo systemctl status minecraft
sudo journalctl -u minecraft -f # live logs
ახლა ის ჩაირთვება ჩატვირთვისას, რესტარტს აკეთებს crash-ზე და log-ები მიდის journald-ში.
5. გახსენით firewall პორტი
Minecraft უსმენს TCP 25565-ს ნაგულისხმევად. გახსენით მხოლოდ ის:
sudo ufw allow 25565/tcp
sudo ufw enable
მიეცით თქვენს მეგობრებს სერვერის IP (და :25565, თუ პორტი შეცვალეთ). ნუ გახსნით არაფერს, რაც არ გჭირდებათ — საკუთარი box-ის გაშვების მთელი აზრი ის არის, რომ თქვენ წყვეტთ, რა არის მიწვდომადი.
6. Back up სამყარო
ის, რომელსაც ხალხი ტოვებს, სანამ არ დადგება დღე, როცა ინანებდნენ, რომ არ გააკეთეს. მარტივი სკრიპტი:
#!/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
გაუშვით ის cron-იდან, და — ეს არის მნიშვნელოვანი ნახევარი — დააკოპირეთ არქივი სერვერიდან, object storage-ზე ან სხვა მანქანაზე. სარეზერვო ასლი სამყაროს იმავე დისკზე დისკთან ერთად კვდება. თუ თქვენს სამყაროს მნიშვნელობა აქვს, გაუშვით save-off და save-all სერვერის კონსოლში tar-ამდე, რომ არასოდეს snapshot გააკეთოთ ჩაწერის შუაში.
ეს არის მთელი რამ
Java, Paper, მორგებული კონფიგი, systemd სერვისი, რომელიც ავტო-რესტარტს აკეთებს, firewall პორტი და სარეზერვო ასლები, რომლებიც სადმე სხვაგან ცხოვრობენ. ეს არის Minecraft სერვერი, რომელიც სერვერივით იქცევა.
თუ ჯერ არ გაქვთ box: აირჩიეთ ტარიფი — Small ($8) პატარა ჯგუფისთვის, Medium ($12), თუ ათ მოთამაშეს უბიძგებთ — გადაიხადეთ USDC-ით ან USDT-ით (no KYC, დოკუმენტების გარეშე) და გექნებათ root დაახლოებით 60 წამში. შემდეგ იმუშავეთ ამ გვერდზე. და გულწრფელი შეხსენება ბოლო ჯერზე: ეს არის სწორი დაყენება vanilla-სთვის ან Paper-ისთვის მეგობრებთან. მძიმე modpack-ს დიდი საზოგადოებისთვის სჭირდება განსხვავებული აპარატურა, და გირჩევნიათ, ეს ჩვენგან ჯერ გაიგოთ.
კომენტარები
ჯერ არ არის კომენტარები. იყავით პირველი.