Ubuntu 24.04 VPS वर Minecraft सर्व्हर कसा चालवायचा
Ubuntu 24.04 VPS वर Paper Minecraft सर्व्हर चालवा: RAM मोजणी, Java 21, systemd unit, 25565 वरील दोन्ही फायरवॉल, सुरक्षित world backups आणि अचूक errors.
तुम्ही काय उभारत आहात
तुम्ही असा Minecraft Java Edition सर्व्हर उभारत आहात जो सतत सुरू राहील: Ubuntu 24.04 वर Paper, systemd अंतर्गत समर्पित minecraft वापरकर्त्याच्या रूपात चालणारा, Restart=on-failure सह, whitelist सक्षम असलेला, आणि तुमचे खेळाडू व JVM यांच्या दरम्यान असलेल्या दोन्ही फायरवॉलमध्ये 25565 पोर्ट खुले असलेला. जगातील डेटा सुरक्षित ठेवण्यासाठी घेतलेले बॅकअप तो डेटा खराब करणार नाहीत. सर्व्हर स्वतः एक jar आणि एक java कमांड आहे. तुमचे मित्र वर्षभर खेळू शकतील असा सर्व्हर आणि पहिल्याच आठवड्याच्या शेवटी बंद पडणारा सर्व्हर यांच्यातील सर्व फरक त्या कमांडभोवती असतो. या मार्गदर्शकात त्याच बाबींचे वर्णन केले आहे.
तुम्ही पैसे खर्च करण्यापूर्वी दोन महत्त्वाच्या सूचना लक्षात घ्या. पहिली, Minecraft ला भरपूर मेमरी लागते आणि ते प्रामुख्याने single-threaded आहे. 1 GB VPS वर खेळण्यायोग्य सर्व्हर चालणार नाही. चार धीम्या core पेक्षा एक वेगवान core अधिक उपयुक्त ठरतो. दुसरी, हा Java Edition सर्व्हर आहे. Bedrock खेळाडू, consoles, phones आणि Windows Bedrock app Java सर्व्हरमध्ये प्रवेश करू शकत नाहीत. Bedrock साठी UDP 19132 वर वेगळे server software किंवा Geyser plugin आवश्यक आहे. त्याचा या मार्गदर्शकात समावेश नाही.
तुमच्याकडे root किंवा sudo अधिकार असलेला नवीन Ubuntu 24.04 KVM VPS आणि सुमारे तीस मिनिटे असणे आवश्यक आहे.
आकारमान: मित्रांच्या सर्व्हरला प्रत्यक्षात किती संसाधने आवश्यक आहेत
RAM हे महत्त्वाचे मापदंड आहे. Modpack फोरममध्ये सांगितलेल्या आकड्यांपेक्षा प्रत्यक्ष गरज कमी असते:
- 2 GB RAM साधारण view distance वर 2–5 खेळाडूंसाठी vanilla चालवते. खेळता येते, पण अतिरिक्त क्षमता उरत नाही.
- 4 GB हा मित्रांच्या सर्व्हरसाठी सोयीस्कर आकार आहे: Paper वर काही plugins सह एकाच वेळी सुमारे दहा खेळाडू आणि OS साठी पुरेशी RAM शिल्लक राहते.
- 8 GB आणि त्याहून अधिक RAM modpack आणि 20 पेक्षा जास्त खेळाडूंसाठी योग्य आहे. अशा वेळी single-core CPU speed कडेही लक्ष द्या, कारण मुख्य game loop एका thread वर चालतो.
खेळाडू शोधमोहीम करत असताना world डिस्कवर वाढत जातो. भरपूर वापरलेला survival world अनेक gigabytes पर्यंत पोहोचतो. त्यामुळे world आणि त्याच्या backups साठी अतिरिक्त जागा ठेवा.
Vanilla किंवा Paper? Paper हा अधिकृत jar चा थेट पर्याय आहे: तेच worlds, तेच clients आणि client-side mods ची आवश्यकता नाही. तो server मधील सर्वात धीमे मार्ग, म्हणजे chunk loading, entity ticking आणि hoppers, यांची पुनर्रचना करतो आणि plugin API जोडतो. Paper चे optimisations बदलू शकतील अशा तांत्रिक redstone farms साठी अचूक vanilla mechanics आवश्यक असतील, तरच vanilla वापरण्याचे कारण आहे. इतर सर्वांसाठी Paper प्रति gigabyte अधिक खेळाडू हाताळतो. खालील सर्व सूचना दोन्हींसाठी लागू आहेत.
पायरी 1: Java 21 स्थापित करा
Minecraft 1.20.5 आणि त्यानंतरचे प्रत्येक release (सर्व 1.21.x) साठी Java 21 आवश्यक आहे. Ubuntu 24.04 मध्ये ते default repos मध्ये उपलब्ध आहे. headless build मुळे server ला कधीही न लागणाऱ्या desktop libraries वगळल्या जातात:
sudo apt update && sudo apt install -y openjdk-21-jre-headless
java -versionयोग्य परिणामात पहिल्या ओळीत openjdk version "21.0.x" दिसते. त्याऐवजी 17 किंवा 11 दिसत असल्यास, आणखी एक JRE स्थापित असून ते प्राधान्याने वापरले जात आहे. sudo update-alternatives --config java वापरून ते दुरुस्त करा आणि java-21 असलेली entry निवडा.
ही तपासणी वगळल्यास पुढे Minecraft server मधील सर्वाधिक शोधला जाणारा error दिसतो. Java 17 वापरताना server jar त्वरित बंद होतो आणि पुढील संदेश दाखवतो:
Error: LinkageError occurred while loading main class net.minecraft.bundler.Main
java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been
compiled by a more recent version of the Java Runtime (class file version 65.0),
this version of the Java Runtime only recognizes class file versions up to 61.0ही संख्या आवृत्त्यांमधील विसंगती दर्शवतात: class file version 65.0 म्हणजे Java 21, 61.0 म्हणजे Java 17 आणि 60.0 म्हणजे Java 16. कोणतीही जोडी दिसली तरी उपाय समान आहे: नवीन JRE स्थापित करा आणि update-alternatives पुन्हा चालवा.
पायरी 2: स्वतंत्र वापरकर्ता, root कधीही नाही
सर्व्हर plugin code चालवतो आणि port पर्यंत पोहोचू शकणाऱ्या कोणाकडूनही मिळालेल्या network input चे विश्लेषण करतो. यात कधीही चूक झाली, तर root म्हणून चालणारा भंग तुमच्या VPS वर पूर्ण नियंत्रण मिळवतो; minecraft म्हणून चालणारा भंग game world वर पूर्ण नियंत्रण मिळवतो.
sudo adduser --system --group --home /opt/minecraft minecraft--system असा password नसलेला account तयार करतो, ज्यामधून SSH द्वारे login करता येत नाही आणि ज्याचे home व working directory /opt/minecraft असते. यानंतर सर्व्हरशी संबंधित प्रत्येक command हा या वापरकर्त्याच्या अधिकारांतून चालवला जातो.
पायरी 3: अधिकृत स्रोतावरून server jar डाउनलोड करा
server jar तुम्हाला फक्त दोन ठिकाणांहून मिळायला हवा: vanilla साठी minecraft.net वरील अधिकृत server download पृष्ठावरून आणि Paper साठी papermc.io वरील downloads पृष्ठावरून. तृतीय-पक्षाचे "download hubs" server jar चे पुनर्पॅकेजिंग करतात आणि ते दीर्घकाळापासून malware प्रसारित करण्याचे माध्यम आहेत. server jar हा मनमानी code असतो, जो तुम्ही internet-facing server वर 24/7 चालवणार आहात.
अधिकृत पृष्ठावरून सध्याच्या build ची download link कॉपी करा. प्रत्येक version आणि build सोबत URL बदलतो, त्यामुळे येथे एक URL hardcode केल्यास तो कालबाह्य होईल. त्यानंतर:
cd /opt/minecraft
sudo -u minecraft wget -O server.jar 'PASTE-THE-COPIED-URL-HERE'योग्य परिणाम: सुमारे 50 MB आकाराची server.jar, ज्याची मालकी minecraft कडे आहे आणि ls -lh /opt/minecraft/server.jar द्वारे पुष्टी केलेली आहे.
पायरी 4: पहिली रन, EULA आणि स्वतःला ऑपरेटर अधिकार देणे
systemd मध्ये बदल करण्यापूर्वी सर्व्हर एकदा परस्परसंवादी पद्धतीने चालवा. पहिल्या रनमध्ये फक्त थेट कन्सोलच योग्यरीत्या करू शकतो अशी दोन कामे असतात.
cd /opt/minecraft
sudo -u minecraft java -Xms1G -Xmx1G -jar server.jar noguiतो काही सेकंदांत बंद होतो. Paper आधी त्याचे पॅच लागू करण्यासाठी काही अतिरिक्त क्षण घेतो. त्यानंतर लॉगच्या शेवटी सर्वांना दिसणारी ओळ येते:
[ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.ही त्रुटी नाही; ही परवान्याची अट आहे. या रनने jar च्या बाजूला eula.txt लिहिले आहे. तुम्ही EULA वाचलेली नसल्यास दिलेली लिंक उघडून ती वाचा. त्यानंतर हा flag बदला:
sudo -u minecraft sed -i 's/eula=false/eula=true/' /opt/minecraft/eula.txtतोच java command पुन्हा चालवा. यावेळी ते world तयार करेल. पहिल्या boot वेळी यासाठी एक किंवा दोन मिनिटे लागू शकतात. त्यानंतर सर्व्हर पुढील स्थितीत स्थिर होईल:
[Server thread/INFO]: Done (9.204s)! For help, type "help"आता तुमच्याकडे थेट कन्सोल आहे. दुसऱ्या कामासाठी त्याचा वापर करा: op YourMinecraftName (तुमचे अचूक in-game username) टाइप करा. सर्व्हर तुमचे नाव ops.json मध्ये लिहील. त्यामुळे नंतर कन्सोल जोडलेले नसतानाही तुम्ही game मधून प्रत्येक admin command चालवू शकता. त्यानंतर स्वच्छपणे जतन करून बाहेर पडण्यासाठी stop टाइप करा.
पायरी 5: server.properties आणि online-mode true का राहते
पहिल्या रनमध्ये server.properties देखील लिहिले गेले. बहुतेक डीफॉल्ट सेटिंग्ज योग्य आहेत. मात्र या ओळींचा निर्णय जाणीवपूर्वक घ्या:
online-mode=true
white-list=true
enforce-whitelist=true
view-distance=8
max-players=10
motd=A private server for people I actually knowonline-mode=true सर्व सामील होणाऱ्या username ची Mojang च्या session servers विरुद्ध पडताळणी करते. त्यामुळे त्या खेळाडूकडे संबंधित account असल्याचे सिद्ध होते. हे false वर सेट केल्यास, ते "cracked server" toggle ठरते. अशा वेळी सर्व्हर client ने सांगितलेली ओळख कोणतीही पडताळणी न करता स्वीकारतो. कोणीही कोणत्याही नावाने, तुमच्या नावासह, सामील होऊ शकतो. ops आणि whitelists नावावर आधारित असल्यामुळे, तोतया तुमच्या operator permissions सह प्रवेश करू शकतो. हे false ठेवण्याचे एकमेव वैध कारण म्हणजे Velocity सारख्या प्रमाणीकरण करणाऱ्या proxy च्या मागे सर्व्हर चालू असणे. अशा proxy कडून players ची स्वतंत्रपणे पडताळणी केली जाते. सामान्य सर्व्हरवर हे नेहमी true राहते.
view-distance ही या फाइलमधील कामगिरीवर सर्वाधिक परिणाम करणारी सेटिंग आहे. तिच्या CPU आणि RAM खर्चाचे प्रमाण साधारणपणे तिच्या वर्गाशी वाढते. VPS साठी 8 हे योग्य डीफॉल्ट आहे. 10 हा vanilla चा डीफॉल्ट असून तो लक्षणीयरीत्या अधिक संसाधने वापरतो.
white-list=true plus enforce-whitelist=true मुळे अनोळखी users साठी सर्व्हर बंद होतो. खालील सुरक्षा विभागात हे ऐच्छिक नसल्याचे स्पष्ट केले आहे. op म्हणून गेममध्ये /whitelist add TheirName वापरून players जोडा.
पायरी 6: मेमरी फ्लॅग्ज, -Xms आणि -Xmx समान का असावेत
JVM त्याचा heap -Xms (प्रारंभिक आकार) आणि -Xmx (कमाल मर्यादा) यांच्या दरम्यान वाटप करतो. समर्पित game server वर दोन्ही मूल्ये समान ठेवा. heap शेवटी कमाल मर्यादेपर्यंत पोहोचणारच असतो. तो टप्प्याटप्प्याने वाढवल्यामुळे खेळ सुरू असताना केवळ garbage collector वरचा अतिरिक्त भार वाढतो. 4 GB VPS साठी योग्य जोडी अशी आहे:
/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui-Xmx ही प्रक्रियेद्वारे वापरली जाणारी एकूण memory नाही. JVM off-heap overhead, thread stacks, JIT caches आणि direct buffers साठी साधारण अर्धा gigabyte किंवा त्याहून अधिक memory वापरतो. Ubuntu ला देखील memory आवश्यक असते. वापरण्याचा नियम असा आहे: -Xmx हे VPS RAM मधून 1 GB वजा केल्यावर उरलेल्या मूल्यापेक्षा जास्त नसावे. मर्यादा ओलांडल्यास दोनपैकी एक failure होतो. सुरुवातीलाच allocation अयशस्वी झाल्यास server सुरू होण्यास नकार देतो आणि हा संदेश दाखवतो:
Error: Could not reserve enough space for object heapहा failure स्पष्ट आणि तात्काळ दिसतो. अधिक गंभीर प्रकारात server सुरळीत सुरू होतो आणि काही तासांनी बंद पडतो. Load वाढल्यावर heap भरतो आणि kernel चा OOM killer system वरील सर्वात मोठी process, म्हणजे JVM, निवडतो. Server log मध्ये काहीही दिसत नाही. पुरावा sudo dmesg | grep -i oom मध्ये असतो, जसे की Out of memory: Killed process 1234 (java). तुमची service "randomly" restart होत असल्यास प्रथम तेथे तपासा आणि -Xmx कमी करा.
Paper साठी project Aikar's flags चे दस्तऐवजीकरण देते. हा tuned G1GC संच आहे (-XX:+UseG1GC -XX:MaxGCPauseMillis=200 आणि त्यासोबत आणखी डझनभर flags), जो मोठ्या heap वर garbage-collection pauses अधिक समतोल ठेवतो. Paper च्या documentation मधून पूर्ण line तयार करा. 2–4 GB heap वर फायदा मर्यादित असतो, परंतु हे flags सुरक्षित आहेत.
पायरी 7: Restart=on-failure असलेले systemd युनिट
हाताने सुरू केलेला सर्व्हर तुमचे SSH सत्र संपल्यावर बंद पडतो आणि रीबूटनंतर सुरू होत नाही. /etc/systemd/system/minecraft.service लिहा:
[Unit]
Description=Minecraft server (Paper)
After=network-online.target
Wants=network-online.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui
Restart=on-failure
RestartSec=10
TimeoutStopSec=120
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now minecraft
systemctl status minecraft
journalctl -u minecraft -fयोग्य परिणाम: status मध्ये active (running) दिसते आणि आता सर्व्हरचा कन्सोल आउटपुट नोंदवणारा journal पुन्हा Done ओळीवर समाप्त होतो.
या युनिटमध्ये दोन जाणीवपूर्वक केलेल्या निवडी आहेत. Restart=on-failure क्रॅशनंतर सर्व्हर पुन्हा सुरू करते, पण स्वच्छ stop नंतर नाही. त्यामुळे देखभाल करणे शक्य राहते. तसेच TimeoutStopSec=120 अपेक्षेपेक्षा अधिक महत्त्वाचे आहे: systemctl stop SIGTERM पाठवते, Minecraft सर्व्हर तो सिग्नल पकडतो आणि बाहेर पडण्यापूर्वी प्रत्येक world जतन करतो. मोठ्या world साठी हे जतन करण्याचे काम वेळ घेते. Systemd चा डीफॉल्ट timeout जतन करण्याच्या प्रक्रियेदरम्यान JVM ला SIGKILL पाठवू शकतो. यामुळे region files खराब होतात. Timeout दोन मिनिटांचा ठेवा.
सेवा वारंवार बंद-चालू होत असेल आणि journal मध्ये खालील दिसत असेल:
[Server thread/WARN]: **** FAILED TO BIND TO PORT!
[Server thread/WARN]: The exception was: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Address already in use
[Server thread/WARN]: Perhaps a server is already running on that port?तर 25565 पोर्ट आधीच दुसऱ्या प्रक्रियेकडे आहे. बहुतेक वेळा तुमचा आधीचा foreground run दुसऱ्या SSH सत्रात अजून सुरू असतो. sudo ss -tlnp | grep 25565 वापरून तो शोधा आणि ती प्रत थांबवा. एकाच port वर दोन सर्व्हर कधीही चालवू नका.
पायरी 8: दोन्ही firewalls वर 25565 उघडा
Minecraft Java फक्त TCP 25565 वापरते. UDP हा केवळ पर्यायी query protocol आहे आणि तो default ने बंद असतो. VPS वर:
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enableहा पहिला firewall आहे. बहुतांश VPS providers control panel मध्ये दुसरा, network-level firewall चालवतात. हा firewall अनेकदा विसरला जातो. तेथेही TCP 25565 उघडा. यापैकी फक्त एक firewall उघडा असल्यास समस्या स्पष्टपणे ओळखता येत नाही: client "Connecting to the server..." वर अडकतो आणि Connection timed out: no further information सह अपयशी ठरतो. Connection refusal दिसत नाही, server error दिसत नाही आणि journal मध्येही काही नोंद होत नाही, कारण packets server पर्यंत पोहोचलेले नसतात. VPS च्या बाहेरील machine वरून nc -vz your.server.ip 25565 वापरून पडताळणी करा. succeeded दिसल्यास दोन्ही firewalls उघडे आहेत. Connection अडकल्यास त्यापैकी किमान एक firewall उघडा नाही.
तुम्ही ufw मध्ये असतानाच, त्याच box वर public IP वर SSH चालू आहे. काही तासांत brute-force log noise सुरू होतो. त्यामुळे विसरण्यापूर्वी Ubuntu 24.04 वर SSH साठी Fail2ban सेट करा.
आता connect करा: Multiplayer, Direct Connection, server IP. Step 4 मध्ये तुम्ही स्वतःला op केले असल्यामुळे, in-game commands त्वरित कार्य करतात. प्रत्येक player साठी /whitelist add FriendName वापरा; ही योजना असल्यास /gamemode creative वापरा.
पायरी 9: whitelist, कारण इंटरनेटला port 25565 सापडतो
Minecraft server इंटरनेटसाठी खुला ठेवणे हा केवळ सैद्धांतिक धोका नाही: mass scanners संपूर्ण IPv4 space मध्ये port 25565 सतत शोधतात, hobbyist griefing projects ने अशा प्रकारे शेकडो हजार खुले servers नकाशावर नोंदवले आहेत, आणि whitelist नसलेल्या server वर काही दिवसांत, कधीकधी काही तासांत, अनाहूत visitors येतात. पायरी 5 मधील whitelist हा त्यावरील उपाय आहे: online-mode=true ओळख सिद्ध करते, तर whitelist तुम्ही निवडलेल्या identities पुरताच प्रवेश मर्यादित ठेवते. ही जोडी संपूर्ण security model आहे आणि मित्रांसाठीच्या server साठी ती पुरेशी आहे.
गेमशिवाय console access, scripted backups आणि cron job साठी server.properties मध्ये RCON सक्षम करा (enable-rcon=true, मजबूत rcon.password, port 25575) आणि VPS वरच त्याच्या GitHub source मधून छोटा mcrcon client build करा; तो Ubuntu च्या repos मध्ये उपलब्ध नाही. कोणत्याही firewall मध्ये 25575 उघडू नका: RCON password cleartext मध्ये पाठवतो, त्यामुळे तो केवळ loopback वरच ऐकत राहिला पाहिजे.
पायरी 10: जग दूषित न करणारे बॅकअप
एकच नियम आहे: सर्व्हर त्यात लिहित असताना world directory ची प्रत कधीही काढू नका. खेळ सुरू असताना region files सतत पुन्हा लिहिल्या जातात. लिहिण्याची प्रक्रिया सुरू असताना tar केल्यास अर्धवट लिहिलेले chunks असलेले archive तयार होते. नंतर ते restore केल्यावर, बॅकअपने कार्य करणे आवश्यक असलेल्या क्षणी log मध्ये chunk-loading errors भरतात आणि terrain मध्ये खड्डे पडतात. खालील दोन पद्धती हे टाळतात.
Stop-copy-start ही सोपी पद्धत आहे. मात्र, त्यासाठी एक मिनिटाचा downtime स्वीकारावा लागतो:
sudo systemctl stop minecraft
sudo mkdir -p /opt/backups
sudo tar czf /opt/backups/world-$(date +%F-%H%M).tgz \
-C /opt/minecraft world world_nether world_the_end
sudo systemctl start minecraft(Paper dimensions चे विभाजन world, world_nether आणि world_the_end मध्ये करतो. vanilla server सर्वकाही world मध्ये ठेवतो, त्यामुळे उरलेल्या दोन files तिथे ठेवा.)
Save-off वापरून live backup घेता येतो: RCON द्वारे save-off द्या (autosaver थांबवा), त्यानंतर save-all flush द्या (सर्वकाही disk वर लिहिण्यास भाग पाडा आणि प्रक्रिया पूर्ण होईपर्यंत प्रतीक्षा करा), tar घ्या आणि नंतर save-on द्या. पहाटे 5 वाजता cron मध्ये ठेवण्यासाठी ही योग्य आवृत्ती आहे.
दोन्हीपैकी कोणतीही पद्धत वापरली तरी, server असलेल्या त्याच VPS वर ठेवलेला backup हा backup नाही. scp किंवा rclone वापरून archives server च्या बाहेर पाठवा आणि एकापेक्षा अधिक copies ठेवा. तसेच, काही बिघडल्यावर तुम्ही console कडे पाहत नसाल. म्हणून port साठी बाह्य तपासणी ठेवा: दुसऱ्या box वरील Uptime Kuma 25565 विरुद्ध TCP check करते आणि players ना कळण्यापूर्वी server बंद असल्याचे सांगते.
प्लगइन आणि सुधारणा
Paper मध्ये, /opt/minecraft/plugins/ मध्ये jar ठेवून सर्व्हर restart करणे म्हणजे प्लगइन install करण्याची संपूर्ण प्रक्रिया आहे. प्लगइन केवळ त्यांच्या अधिकृत project pages (Hangar, Modrinth, SpigotMC) वरूनच मिळवा. सर्व्हर jar प्रमाणेच, प्रत्येक प्लगइन minecraft user म्हणून चालणारा arbitrary code असतो.
सर्व्हर upgrade करण्याची प्रक्रिया अशी आहे: stop करा, backup घ्या, server.jar च्या जागी नवीन Minecraft version साठीचा build ठेवा आणि start करा. दोन गोष्टी लक्षात ठेवा. World upgrade एकतर्फी असतात. नवीन version ने उघडलेला world जुन्या version मध्ये उघडता येत नाही. त्यामुळे backups पुन्हा आवश्यक ठरतात. तसेच, नवीन Minecraft release शी plugins सुसंगत होण्यासाठी अनेकदा काही दिवस किंवा आठवडे लागतात. त्यामुळे release च्या पहिल्याच दिवशी ती वापरण्यापूर्वी compatibility तपासा.
हे सर्व container म्हणून व्यवस्थापित करायचे असल्यास, version pinning, EULA acceptance आणि memory flags environment variables म्हणून सेट करता येतात. मोठ्या प्रमाणावर वापरली जाणारी itzg/minecraft-server image तोच Paper server तुमच्या VPS वर Docker Compose वापरून चालवते आणि firewall व backup बाबतची शिस्त तशीच राखते.
FAQ
Minecraft सर्व्हरसाठी किती RAM आवश्यक असते?
2 GB मध्ये vanilla 2–5 खेळाडूंसाठी चालते; Paper वर काही plugins सह सुमारे दहा खेळाडूंच्या मित्रांच्या सर्व्हरसाठी 4 GB पुरेसे असते; modpacks आणि 20 पेक्षा अधिक खेळाडूंसाठी 8 GB किंवा अधिक RAM आवश्यक असते. VPS चा आकार कोणताही असो, -Xmx ची कमाल मर्यादा एकूण RAM मधून 1 GB वजा केल्यानंतरची रक्कम ठेवा. JVM heap च्या बाहेरील memory देखील वापरते. मर्यादा ओलांडल्यास Error: Could not reserve enough space for object heap किंवा शांतपणे होणारा OOM kill होतो.
माझे मित्र माझ्या Minecraft सर्व्हरशी कनेक्ट का होऊ शकत नाहीत?
Connection timed out: no further information मध्ये संपणारा client hang जवळजवळ नेहमी firewall मुळे होतो. येथे दोन firewall असतात: VPS वरील ufw आणि control panel मधील provider चा network firewall. दोन्ही ठिकाणी TCP 25565 खुले असणे आवश्यक आहे. सर्व्हर प्रत्यक्षात listening करत आहे का, हे सर्व्हरवर sudo ss -tlnp | grep 25565 वापरून तपासा. त्यानंतर बाहेरून nc -vz your.server.ip 25565 वापरून चाचणी करा.
server.properties मध्ये online-mode=false ठेवावे का?
नाही. online-mode=false सह सर्व्हर Mojang authentication पूर्णपणे वगळतो. त्यामुळे कोणताही username वापरून कोणीही प्रवेश करू शकतो. यात op च्या नावाचाही समावेश आहे आणि त्या वापरकर्त्याला त्याच्या permissions मिळतात. Skins आणि स्थिर UUIDs देखील बिघडतात. Velocity सारख्या authentication करणाऱ्या proxy च्या मागे सर्व्हर असेल आणि proxy स्वतः players ची पडताळणी करत असेल, तरच याचा वैध उपयोग आहे. सामान्य सर्व्हरसाठी ते true असेच ठेवावे.
vanilla Minecraft सर्व्हरपेक्षा Paper चांगले आहे का?
जवळजवळ सर्वांसाठी, होय. Paper हा drop-in jar आहे. तो vanilla worlds लोड करतो आणि कोणतेही बदल न केलेले clients स्वीकारतो. तो entities चे ticks आणि chunks चे loading अधिक कार्यक्षमतेने हाताळतो. तसेच तो plugin ecosystem उपलब्ध करून देतो. याला अपवाद म्हणजे तांत्रिक-redstone समुदाय. त्यांना अगदी bit-exact vanilla behaviour आवश्यक असते, आणि काही Paper optimisations हे behaviour बदलतात. लहान VPS वर Paper ची कार्यक्षमता अतिरिक्त RAM प्रभावीपणे विनामूल्य उपलब्ध करून देते.
Minecraft world corrupt न करता त्याचा backup कसा घ्यावा?
सर्व्हर world directory मध्ये लिहित असताना ती directory कधीही archive करू नका. Region-file write सुरू असताना घेतलेली copy corrupted chunks तयार करू शकते. हे chunks restore करण्याच्या वेळीच लक्षात येतात. सर्व्हर थांबवून world directories चे tar archive तयार करा आणि सर्व्हर पुन्हा सुरू करा. किंवा save-off, save-all flush, tar आणि save-on over RCON वापरून सर्व्हर सुरू ठेवत backup घ्या. त्यानंतर archive VPS बाहेर हलवा.