זה הנלווה המעשי לעמוד VPS לשרת משחקים שלנו. ההוא עוסק באיזו תוכנית מתאימה; זה עוסק בלהקים בפועל את השרת — Paper, שירות systemd ראוי, ההגדרה שחוסכת לכם RAM, חומת האש, וגיבויים. עד הסוף יהיה לכם שרת Minecraft ששורד קריסה, שורד אתחול, ולא אוכל בשקט את כל הארגז שלכם.
הערה כנה אחת לפני שנתחיל: מגבלות ה-CPU וה-RAM מעמוד מקרה-השימוש עדיין חלות. Paper על תוכנית Small או Medium נהדר לחבורת חברים. חבילת 150 מודים לקהילה גדולה אינה מה שהתוכניות האלה מיועדות לו, ושום כמות הגדרה לא מתקנת את זה. עם זה ברור, בואו נבנה.
1. התקינו Java
Paper רץ על Java. התקינו JDK headless — לגרסת Minecraft נוכחית זה Java 21:
sudo apt update
sudo apt install -y openjdk-21-jre-headless
java -version
אם גרסת ה-Minecraft שלכם ישנה יותר, התקינו את ה-Java שהיא מבקשת (17 לעידן 1.18-1.20). לוגי השרת יתלוננו בקול אם הגרסה לא נכונה.
2. הגדירו את ספריית השרת ו-Paper
הריצו את השרת כמשתמש משלו, לא root — אם משהו אי-פעם משתבש, אתם רוצים רדיוס פגיעה קטן.
sudo adduser --system --group --home /opt/minecraft minecraft
sudo -u minecraft mkdir -p /opt/minecraft/server
cd /opt/minecraft/server
הורידו את ה-jar של Paper לגרסת ה-Minecraft שלכם (תפסו את ה-URL מעמוד ההורדות שלהם) ושמרו אותו כ-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 הוא תקרת ה-heap של ה-JVM. על תוכנית Small של 4 GB, ~3 GB ל-JVM משאיר למערכת ההפעלה מרחב נשימה. אל תגדירו אותו ל-RAM המלא שלכם — ל-JVM יש overhead מעבר ל-heap, ומנקה ה-OOM לא מנהל משא-ומתן.
3. כווננו את server.properties כדי לחסוך RAM
כאן אתם קונים לעצמכם ביצועים בחינם. פתחו את server.properties והגדירו:
view-distance=8
simulation-distance=6
max-players=10
view-distance— chunks שנשמרים טעונים סביב כל שחקן. ברירת המחדל 10 נדיבה; 8 (או אפילו 6) חותכת RAM ו-CPU בצורה ניכרת וכמעט אף אחד לא שם לב להבדל.simulation-distance— כמה רחוק ישויות, redstone, וצמיחת יבולים באמת מתקתקים. נמוך יותר זול יותר. 6 היא נקודת התחלה שפויה.max-players— הגדירו אותו למה שאתם באמת מצפים, כך שקהל מפתיע לא יפוצץ את תקציב ה-RAM שלכם.
זכרו את מציאות ה-single-thread: ה-tick של Minecraft נשען על ליבה אחת. אם TPS יורד, יותר RAM לא יעזור — הורידו simulation-distance ותקרות mobs.
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 קורס, 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
עכשיו הוא מתחיל באתחול, מופעל מחדש בקריסה, ולוגים הולכים ל-journald.
5. פתחו את פורט חומת האש
Minecraft מאזין על TCP 25565 כברירת מחדל. פתחו רק את זה:
sudo ufw allow 25565/tcp
sudo ufw enable
תנו לחברים שלכם את ה-IP של השרת (ו-:25565 אם שיניתם את הפורט). אל תפתחו שום דבר שאתם לא צריכים — כל הנקודה בהרצת ארגז משלכם היא שאתם מחליטים מה נגיש.
6. גבו את העולם
זה שאנשים מדלגים עליו עד היום שהם מצטערים שלא. סקריפט פשוט:
#!/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, ו — זה החצי החשוב — העתיקו את הארכיון מחוץ לשרת, לאחסון אובייקטים או למכונה אחרת. גיבוי על אותו דיסק של העולם מת עם הדיסק. אם העולם שלכם חשוב, הריצו save-off ו-save-all בקונסולת השרת לפני ה-tar כך שאתם לעולם לא מצלמים באמצע-כתיבה.
זה כל הדבר
Java, Paper, הגדרה מכווננת, שירות systemd שמפעיל מחדש אוטומטית, פורט חומת אש, וגיבויים שחיים במקום אחר. זה שרת Minecraft שמתנהג כמו אחד.
אם אין לכם ארגז עדיין: בחרו תוכנית — Small ($8) לקבוצה קטנה, Medium ($12) אם אתם דוחפים עשרה שחקנים — שלמו ב-USDC או USDT (ללא KYC, ללא מסמכים), ויהיה לכם root בערך תוך 60 שניות. ואז עבדו במורד הדף הזה. והתזכורת הכנה פעם אחרונה: זו ההגדרה הנכונה ל-vanilla או Paper עם חברים. modpack כבד לקהילה גדולה צריך חומרה אחרת, ואנחנו מעדיפים שתשמעו את זה מאיתנו קודם.
תגובות
אין עדיין תגובות. היו הראשונים.