VPS-ல் Minecraft server எப்படி ஹோஸ்ட் செய்வது
Ubuntu 24.04 VPS-ல் Paper server அமைக்க முழு வழிகாட்டி. RAM தேர்வு, Java 21, systemd unit, port 25565 firewall, backup மற்றும் பொதுவான error-கள் விளக்கம்.
நீங்கள் உருவாக்கப் போவது என்ன
தொடர்ந்து இயங்கக்கூடிய ஒரு Minecraft Java Edition சர்வர்: Ubuntu 24.04 இல் Paper, systemd கீழ் சிறப்பு minecraft பயனராக Restart=on-failure உடன் இயங்கும், whitelist இயக்கப்பட்டிருக்கும், உங்கள் வீரர்களுக்கும் JVM க்கும் இடையில் உள்ள இரண்டு firewall களிலும் port 25565 திறந்திருக்கும், மேலும் பாதுகாக்கப்பட வேண்டிய உலகத்தைச் சேதப்படுத்தாத வகையில் backup எடுக்கப்படும். சர்வர் என்பது ஒரு jar கோப்பும் ஒரு java command உம் தான்; உங்கள் நண்பர்கள் ஒரு வருடம் விளையாடும் சர்வருக்கும், முதல் வாரத்திலேயே செயலிழக்கும் சர்வருக்கும் இடையிலான வேறுபாடு முழுவதும் அந்த command ஐச் சுற்றியே இருக்கிறது. அதுதான் இந்த வழிகாட்டி விளக்குவது.
பணத்தைச் செலவழிப்பதற்கு முன் இரண்டு நேர்மையான எச்சரிக்கைகள். முதலாவது, Minecraft க்கு அதிக நினைவகம் தேவைப்படுகிறது. இது பெரும்பாலும் single-threaded ஆக இயங்குகிறது: 1 GB VPS இல் விளையாடக்கூடிய சர்வர் இயங்ஙாது. நான்கு மெதுவான core களை விட ஒரு வேகமான core சிறந்தது. இரண்டாவது, இது Java Edition ஆகும். Bedrock வீரர்களால் ஒரு Java சர்வரில் சேர முடியாது. ஏனெனில் Bedrock வீரர்கள் console, phone, மற்றும் Windows Bedrock app ஐப் பயன்படுத்துகிறார்கள். Bedrock க்கு UDP 19132 இல் வேறு சர்வர் மென்பொருள் தேவை, அல்லது Geyser plugin தேவை. அவை இந்த வழிகாட்டியின் வரம்பிற்கு வெளியே உள்ளன.
உங்களுக்கு root அல்லது sudo அணுகலுடன் கூடிய புதிய Ubuntu 24.04 KVM VPS தேவை. சுமார் முப்பது நிமிடங்கள் ஆகும்.
அளவீடு: நண்பர்களுக்கான சர்வர் உண்மையில் எதைத் தேவைப்படுகிறது
RAM தான் முக்கியமான எண். உண்மையான எண்கள் modpack மன்றங்கள் பரிந்துரைப்பதை விடக் குறைவாக இருக்கும்:
- 2 GB என்பது 2–5 வீரர்களுக்கு சிறிய view distance-உடன் vanilla-ஐ இயக்கும். விளையாடக்கூடியது தான், ஆனால் கூடுதல் இடம் இல்லை.
- 4 GB என்பது நண்பர்கள் சர்வருக்கு ஏற்ற வசதியான அளவு: Paper-ல் சில plugins-உடன் ஏறக்குறைய பத்து வீரர்கள் ஒரே நேரத்தில் விளையாடலாம், OS-க்கும் போதுமான இடம் எஞ்சும்.
- 8 GB மற்றும் அதற்கு மேல் என்பது modpack மற்றும் 20-க்கும் மேற்பட்ட வீரர்களுக்கான அளவு. இங்கு நீங்கள் single-core CPU வேகத்தையும் கவனிக்க வேண்டும், ஏனெனில் முக்கிய விளையாட்டு loop ஒரே ஒரு thread-ல் இயங்குகிறது.
வீரர்கள் ஆராயும்போது உலகம் வட்டிலும் வளரும் — நன்கு பயணிக்கப்பட்ட ஒரு survival உலகம் பல gigabytes-ஐ எட்டும் — எனவே உலகத்திற்கும் அதன் backups-க்கும் கூடுதல் இடம் விடவும்.
Vanilla அல்லது Paper? Paper என்பது official jar-க்கு நேரடி மாற்றாகும்: அதே உலகங்கள், அதே clients, client-பக்க mods தேவையில்லை. இது மெதுவான server paths-ஐ மறுஎழுதுகிறது — chunk loading, entity ticking, hoppers — மேலும் ஒரு plugin API-ஐச் சேர்க்கிறது. Vanilla-ஐ இயக்க ஒரே காரணம், Paper-ன் தேர்வுமுறைகள் மாற்றக்கூடிய technical redstone farms-க்கு நீங்கள் bit-exact vanilla mechanics தேவைப்படின் மட்டுமே; மற்ற அனைவருக்கும், Paper ஒரு gigabyte-க்கு அதிக வீரர்களை ஏற்கும். கீழே உள்ள அனைத்தும் இரண்டிற்கும் பொருந்தும்.
படி 1: Java 21 ஐ நிறுவவும்
Minecraft 1.20.5 மற்றும் அதற்குப் பிறகு வெளியான அனைத்தும் (1.21.x முழுவதும்) Java 21 தேவை. Ubuntu 24.04 இதை இயல்புநிலை களஞ்சியங்களில் வழங்குகிறது. headless build டெஸ்க்டாப் நூலகங்களைத் தவிர்க்கிறது; சேவையகம் அவற்றை ஒருபோதும் பயன்படுத்தாது:
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 உள்ளடக்கிய உள்ளீட்டைத் தேர்ந்தெடுக்கவும்.
இந்தச் சரிபார்ப்பைத் தவிர்ப்பது பின்னர் Google-ல் அதிகம் தேடப்படும் Minecraft சேவையகப் பிழையை உருவாக்குகிறது. Java 17 உடன், சேவையக 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 ஒருபோதும் இல்லை
சேவையகம் செருகுநிரல் குறியீட்டை இயக்குகிறது. போர்ட்டை அணுகக்கூடிய எவருடைய பிணைய உள்ளீட்டையும் பகுப்பாய்வு செய்கிறது. அதில் ஏதேனும் தவறு நிகழ்ந்தால், root ஆக இயங்கும் ஊடுருவல் உங்கள் VPS முழுவதையும் கட்டுப்பாட்டிற்குள் கொண்டுவரும். minecraft ஆக இயங்கும் ஊடுருவல் ஒரு விளையாட்டு உலகத்தை மட்டுமே கட்டுப்பாட்டிற்குள் கொண்டுவரும்.
sudo adduser --system --group --home /opt/minecraft minecraft--system ஒரு கடவுச்சொல் இல்லாத கணக்கை உருவாக்குகிறது. இந்தக் கணக்கால் SSH வழியாக உள்நுழைய முடியாது. இதன் முகப்பு மற்றும் பணிக் கோப்பகம் /opt/minecraft ஆகும். இன்று முதல் சேவையகத்தைத் தொடும் ஒவ்வொரு கட்டளையும் இந்தப் பயனராக இயங்கும்.
படி 3: அதிகாரப்பூர்வ மூலத்திலிருந்து server jar ஐப் பதிவிறக்கவும்
server jar கோப்பை வழங்க வேண்டிய இடங்கள் இரண்டு மட்டுமே: vanilla க்கு minecraft.net இல் உள்ள அதிகாரப்பூர்வ server பதிவிறக்கப் பக்கம், Paper க்கு papermc.io இல் உள்ள பதிவிறக்கப் பக்கம். மூன்றாம் தரப்பு "பதிவிறக்க மையங்கள்" server jar கோப்புகளை மறுபொதியிட்டு வழங்குவது நீண்டகால தீம்பொருள் பரப்பும் வழியாக உள்ளது — server jar என்பது நீங்கள் இணையத்துடன் இணைக்கப்பட்ட கணினியில் 24/7 இயக்கவுள்ள தன்னிச்சையான குறியீடு ஆகும்.
அதிகாரப்பூர்வப் பக்கத்திலிருந்து தற்போதைய உருவாக்கத்தின் பதிவிறக்க இணைப்பை நகலெடுக்கவும் (ஒவ்வொரு பதிப்பு மற்றும் உருவாக்கத்துடனும் URL மாறுவதால், இங்கே ஒன்றை நிரந்தரமாக எழுதினால் அது பழுதடையும்), பின்னர்:
cd /opt/minecraft
sudo -u minecraft wget -O server.jar 'PASTE-THE-COPIED-URL-HERE'சரியான முடிவு: minecraft க்குச் சொந்தமான, ஏறக்குறைய் 50 MB அளவுள்ள ஒரு server.jar, ls -lh /opt/minecraft/server.jar கொண்டு உறுதிப்படுத்தப்பட்டது.
படி 4: முதல் இயக்கம், EULA, மற்றும் உங்களுக்கு op அளித்தல்
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-ஐப் படியுங்கள், பிறகு இந்த ஃபிளாக்கை மாற்றவும்:
sudo -u minecraft sed -i 's/eula=false/eula=true/' /opt/minecraft/eula.txtமீண்டும் அதே java கட்டளையை இயக்கவும். இம்முறை உலகத்தை உருவாக்குகிறது — முதல் துவக்கத்தில் ஒரு நிமிடம் அல்லது இரண்டு ஆகும் — பிறகு இங்கே நிலைக்கொள்கிறது:
[Server thread/INFO]: Done (9.204s)! For help, type "help"இப்போது உங்களுக்கு ஒரு நேரடி கன்சோல் உள்ளது. இதை இரண்டாவது வேலைக்குப் பயன்படுத்தவும்: op YourMinecraftName (உங்கள் சரியான in-game பயனர்பெயர்) எனத் தட்டச்சு செய்யவும்; சேவையகம் உங்களை ops.json-இல் எழுதுகிறது, எனவே பிறகு — கன்சோல் எதுவும் இணைக்கப்படாத போது — விளையாட்டுக்குள் இருந்து ஒவ்வொரு admin கட்டளையையும் இயக்கலாம். பிறகு சேமித்து சரியாக வெளியேற 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 சேவையகத்தை ஒவ்வொரு பயனர்பெயரையும் Mojang-இன் அமர்வு சேவையகங்களிடம் சரிபார்க்கச் செய்கிறது. இது விளையாட்டுக்காரர் அந்தக் கணக்கைச் சொந்தமாகக் கொண்டிருப்பதை நிரூபிக்கிறது. இதை false என அமைப்பது — "cracked server" மாற்றி — சேவையகம் எந்தக் கிளையன்டு சொல்லும் பெயரையும் அப்படியே ஏற்றுக்கொள்கிறது என்று பொருள். எவரும் எந்தப் பெயரிலும் இணைய முடியும், உங்கள் பெயரிலும் கூட. op மற்றும் whitelist ஆகியவை பெயர் அடிப்படையில் அமைந்திருப்பதால், ஒருவர் உங்கள் பெயரில் உள்நுழைந்து உங்கள் நிர்வாக அனுமதிகளைப் பெற்றுவிடுவார். இது false ஆக இருப்பதற்கு ஒரே சரியான காரணம், Velocity போன்ற அங்கீகார ப்ராக்ஸி பின்னால் இயங்குவதுதான். அது விளையாட்டுக்காரர்களைத் தானாகவே சரிபார்க்கும். சாதாரண சேவையகத்தில் இது true ஆகவே இருக்க வேண்டும், விவாதத்திற்கு இடமில்லை.
view-distance இந்தக் கோப்பிலுள்ள மிகப்பெரிய செயல்திறன் கட்டுப்பாடு. CPU மற்றும் RAM செலவு இதன் வர்க்கத்தோடு தோராயமாக விகிதாசாரத்தில் அதிகரிக்கிறது. 8 என்பது VPS-க்கு பொருத்தமான இயல்புநிலை மதிப்பு. 10 என்பது vanilla இயல்புநிலை மதிப்பு, மேலும் இது கணிசமாக அதிக சுமையைத் தரும்.
white-list=true மற்றும் enforce-whitelist=true சேவையகத்தை அந்நியர்களுக்கு மூடிவிடுகிறது. கீழே உள்ள பாதுகாப்பு பிரிவு இது கட்டாயம் என வாதிடுகிறது. op ஆக இருக்கும் விளையாட்டுக்காரர் விளையாட்டிற்குள் /whitelist add TheirName கட்டளையைப் பயன்படுத்தி விளையாட்டுக்காரர்களைச் சேர்க்கவும்.
படி 6: நினைவக flags — -Xms மற்றும் -Xmx ஏன் ஒன்றாக இருக்க வேண்டும்
JVM அதன் heap-ஐ -Xms (தொடக்க அளவு) மற்றும் -Xmx (உச்ச அளவு) இடையே ஒதுக்குகிறது. ஒரு சார்புடைய game server-ல், இவற்றை ஒரே மதிப்பிற்கு அமைக்கவும்: heap எப்படியும் உச்ச அளவை அடையும், மேலும் படிப்படியாக அதை விரிவாக்குவது விளையாட்டின் போது garbage-collector churn-ஐ மட்டுமே அதிகரிக்கும். 4 GB VPS-ல் சரியான ஜோடி:
/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui-Xmx என்பது செயல்முறை பயன்படுத்தும் மொத்த நினைவகம் அல்ல. JVM off-heap overhead-ஐ சேர்க்கிறது — thread stacks, JIT caches, direct buffers — தோராயமாக அரை ஜிகாபைட் அல்லது அதற்கு மேல், மேலும் Ubuntu-க்கும் இடம் தேவை. பயனுள்ள விதி: -Xmx அதிகபட்சம் VPS RAM கழித்து 1 GB. இதை தாண்டினால் இரண்டு தோல்விகளில் ஒன்று ஏற்படும். ஒதுக்கீடு முன்னதாகவே தோல்வியடைந்தால், server தொடங்க மறுக்கும், பின்வரும் செய்தியுடன்:
Error: Could not reserve enough space for object heapஇது நேர்மையானது மற்றும் உடனடியானது. மோசமான பதிப்பு சரியாக தொடங்குகிறது மற்றும் சில மணிநேரங்களுக்குப் பிறகு நிற்கிறது, ஏனெனில் load-ன் கீழ் heap நிரம்புகிறது மற்றும் kernel-ன் OOM killer பெட்டியில் உள்ள மிகப்பெரிய செயல்முறையைத் தேர்ந்தெடுக்கிறது — அது JVM ஆகும். server log-ல் எதுவும் தோன்றாது; ஆதாரம் sudo dmesg | grep -i oom-ல் உள்ளது, Out of memory: Killed process 1234 (java) போன்ற ஒரு வரி. உங்கள் service "குறிப்பிட்ட காரணமின்றி" மறுதொடக்கம் செய்தால், முதலில் அங்கே சரிபார்த்து, -Xmx-ஐ குறைக்கவும்.
Paper-க்கு, இந்த திட்டம் Aikar's flags-ஐ ஆவணப்படுத்துகிறது — ஒரு சரிசெய்யப்பட்ட G1GC தொகுப்பு (-XX:+UseG1GC -XX:MaxGCPauseMillis=200 மற்றும் சுமார் ஒரு டசன் துணை flags) பெரிய heap-களில் garbage-collection இடைநிறுத்தங்களை மென்மையாக்குகிறது. Paper ஆவணங்களிலிருந்து முழு வரியை உருவாக்கவும்; 2–4 GB heap-ல் லாபம் சிறியது ஆனால் flags பாதுகாப்பானவை.
படி 7: Restart=on-failure கொண்ட ஒரு systemd unit
கைமுறையாகத் தொடங்கப்பட்ட சர்வர் உங்கள் 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) ஐக் காட்டுகிறது; சர்வர் கன்சோல் வெளியீட்டைத் தற்போதுதான் ஜர்னல் கொண்டிருக்கிறது — அது மீண்டும் Done வரியில் முடிகிறது.
அந்த unit இல் இரண்டு நோக்குடைய தேர்வுகள் உள்ளன. Restart=on-failure ஆனது சர்வர் செயலிழந்த பிறகு அதை மீண்டும் கொண்டுவருகிறது; ஆனால் சரியான stop க்குப் பிறகு அல்ல, எனவே பராமரிப்பு தொடர்ந்து சாத்தியமாக இருக்கும். TimeoutStopSec=120 ஆனது பார்ப்பதற்கு உள்ளதை விட முக்கியமானது: systemctl stop ஆனது SIGTERM ஐ அனுப்புகிறது; Minecraft சர்வர் அதைப் பிடித்துக்கொண்டு வெளியேறுவதற்கு முன் ஒவ்வொரு உலகையும் சேமிக்கிறது; பெரிய உலகில் அந்தச் சேமிப்பிற்கு நேரம் ஆகும். Systemd இன் இயல்புநிலை நேரமுடைப்பு சேமிப்பு நடுவே JVM ஐ SIGKILL செய்துவிடும்; இதுதான் region கோப்புகள் சேதமடையும் வழி. அதற்கு இரண்டு நிமிடங்கள் கொடுக்கவும்.
சர்வீஸ் தொடர்ந்து இயங்கி நிற்கும்; ஜர்னல் பின்வருவதைக் காட்டும்:
[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 ஐ ஏற்கனவே வேறு ஏதோ ஒன்று பயன்படுத்திக்கொண்டிருக்கிறது — பெரும்பாலும் இது வேறொரு SSH அமர்வில் இன்னும் இயங்கிக்கொண்டிருக்கும் உங்கள் முந்தைய foreground இயக்கம்தான். sudo ss -tlnp | grep 25565 உடன் அதைக் கண்டுபிடித்து அந்த நகலை நிறுத்தவும்; ஒரு போர்ட்டில் இரண்டு சர்வர்களை ஒருபோதும் இயக்க வேண்டாம்.
படி 8: இரண்டு ஃபயர்வால்களிலும் 25565 ஐத் திறக்கவும்
Minecraft Java TCP 25565 ஐ மட்டுமே பயன்படுத்துகிறது (UDP என்பது விருப்பப்பட்ட வினவல் நெறிமுறை மட்டுமே; இயல்பாக இது அணைந்திருக்கும்). VPS இல்:
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enableஇதுதான் முதல் ஃபயர்வால். பெரும்பாலான VPS வழங்குநர்கள் கட்டுப்பாட்டுப் பலகத்தில் இரண்டாவது நெட்வொர்க்-நிலை ஃபயர்வாலை இயக்குகிறார்கள். இதுதான் மக்கள் மறந்துவிடும் ஃபயர்வால். அங்கும் TCP 25565 ஐத் திறக்கவும். இரண்டில் ஒன்றை மட்டும் திறந்தால் ஏற்படும் அறிகுறி குழப்பமானது: கிளையந்து "Connecting to the server..." என்பதில் சிக்கி Connection timed out: no further information உடன் தோல்வியடைகிறது — எந்த நிராகரிப்பும் இல்லை, எந்த சேவையகப் பிழையும் இல்லை, பதிவேட்டில் எதுவும் இல்லை, ஏனெனில் பாக்கெட்டுகளே வந்து சேரவில்லை. VPS க்கு வெளியே உள்ள ஒரு கணினியிலிருந்து nc -vz your.server.ip 25565 உடன் சரிபார்க்கவும்; succeeded என்று வந்தால் இரண்டு ஃபயர்வால்களும் திறந்திருப்பதைக் குறிக்கிறது, சிக்கிக்கொண்டால் குறைந்தது ஒன்றாவது திறக்கப்படவில்லை என்பதைக் குறிக்கிறது.
ufw இல் இருக்கும்போது, இந்தக் கணினி பொது IP யில் SSH ஐ இயக்குகிறது. சில மணிநேரங்களிலேயே பல-முறை-கடவுச்சொல்-முயற்சி பதிவு ஒலி தொடங்கிவிடும் — மறப்பதற்கு முன்பாக Ubuntu 24.04 இல் SSH க்காக Fail2ban ஐ அமைக்கவும்.
இப்போது இணைக்கவும்: Multiplayer, Direct Connection, சேவையக IP. படி 4 இல் நீங்கள் உங்களுக்கு op உரிமை வழங்கியதால், விளையாட்டுக்குள் கட்டளைகள் உடனே செயல்படும் — ஒவ்வொரு வீரருக்கும் /whitelist add FriendName, அதுதான் திட்டம் என்றால் /gamemode creative.
படி 9: whitelist செய்யுங்கள், ஏனெனில் இணையம் port 25565-ஐ கண்டுபிடிக்கும்
Minecraft சர்வரை இணையத்திற்கு திறந்துவிடுவது கற்பனையான ஆபத்து அல்ல: பெருந்தொகை ஸ்கேனர்கள் தொடர்ந்து முழு IPv4 இடத்தையும் port 25565-க்காக ஸ்கேன் செய்கின்றன — பொழுதுபோக்கு griefing திட்டங்கள் இந்த வழியில் பல லட்சம் திறந்த சர்வர்களை வரைபடமாக்கியுள்ளன — whitelist செய்யப்படாத சர்வர் சில நாட்களில், சில நேரங்களில் சில மணிநேரங்களில் அழைக்கப்படாத பார்வையாளர்களைப் பெறும். படி 5-ல் உள்ள whitelist இதற்கான தீர்வு: online-mode=true அடையாளத்தை நிரூபிக்கிறது, whitelist நீங்கள் தேர்ந்தெடுத்த அடையாளங்களுக்கு மட்டுமே நுழைவை வரையறுக்கிறது. இந்த இரண்டும் முழு பாதுகாப்பு மாதிரியாகும், மேலும் இது நண்பர்கள் சர்வருக்கு போதுமானது.
விளையாட்டு இல்லாமல் console அணுகலுக்கு — scripted backups, cron job — server.properties-ல் RCON-ஐ இயக்கவும் (enable-rcon=true, ஒரு வலுவான rcon.password, port 25575) மற்றும் அதன் GitHub மூலத்திலிருந்து VPS-லேயே சிறிய mcrcon கிளையன்ட்டை உருவாக்கவும்; அது Ubuntu-ன் repos-ல் இல்லை. எந்த firewall-லும் 25575-ஐ திறக்க வேண்டாம்: RCON கடவுச்சொல்லை cleartext-ல் அனுப்புகிறது, எனவே அது loopback-only ஆகவே இருக்கும்.
படி 10: உலகைச் சேதப்படுத்தாத காப்புப்பிரதிகள்
ஒரே ஒரு விதி: சர்வர் உலகக் கோப்புறையில் எழுதிக்கொண்டிருக்கும்போது அதை நகலெடுக்க வேண்டாம். விளையாட்டு நடக்கும்போது region கோப்புகள் தொடர்ந்து மீண்டும் எழுதப்படுகின்றன; எழுதும் செயலுடன் போட்டியிடும் tar பாதி எழுதப்பட்ட chunks கொண்ட காப்புக்கோப்பை உருவாக்கும். நீங்கள் அதை மீட்டெடுக்கும்போது — காப்புப்பிரதி கட்டாயம் வேலை செய்ய வேண்டிய அந்த ஒரே தருணத்தில் — பதிவேடு chunk-loading பிழைகளால் நிரம்பும், மேலும் நிலப்பரப்பில் ஓட்டைகள் இருக்கும். இரண்டு முறைகள் இதைத் தவிர்க்கின்றன.
நிறுத்து-நகலெடு-தொடங்கு எளிய முறை; இதற்கு ஒரு நிமிட இடைநிறுத்தம் தேவை:
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 பரிமாணங்களை world, world_nether, மற்றும் world_the_end ஆகப் பிரிக்கிறது; vanilla சர்வர் அனைத்தையும் world இல் வைக்கிறது, எனவே மற்ற இரண்டையும் அங்கே விட்டுவிடவும்.)
Save-off இயங்கும் சர்வரின் காப்புப்பிரதியை எடுக்கிறது: RCON வழியாக save-off கட்டளையைப் பிறப்பிக்கவும் (தானியங்கி சேமிப்பை நிறுத்தும்), பிறகு save-all flush (அனைத்தையும் வட்டில் எழுதி காத்திருக்கும்), tar எடுக்கவும், பிறகு save-on. இதுதான் காலை 5 மணிக்கு cron இல் சேர்க்க வேண்டிய பதிப்பு.
எப்படியாக இருந்தாலும், சர்வருடன் அதே VPS இல் இருக்கும் காப்புப்பிரதி உண்மையான காப்புப்பிரதி அல்ல — காப்புக்கோப்புகளை சர்வரிலிருந்து வெளியே scp அல்லது rclone செய்யவும், மேலும் ஒன்றுக்கு மேற்பட்ட பிரதிகளை வைத்திருக்கவும். ஏதாவது உடைந்தால் நீங்கள் கன்சோலைப் பார்த்துக்கொண்டிருக்க மாட்டீர்கள், எனவே போர்ட்டில் வெளிப்புறச் சோதனை வைக்கவும்: வேறொரு சர்வரில் Uptime Kuma 25565 போர்ட்டில் TCP சோதனை செய்வது உங்கள் வீரர்களுக்கு முன்பாகவே சர்வர் செயலிழந்ததை உங்களுக்குத் தெரிவிக்கும்.
செருகுநிரல்கள் மற்றும் மேம்படுத்தல்கள்
Paper-இல், செருகுநிரல் என்பது /opt/minecraft/plugins/ உள்ளே வைக்கப்படும் ஒரு jar கோப்பு மற்றும் அதைத் தொடர்ந்து மறுதொடக்கம் மட்டுமே — இதுதான் நிறுவல் முழுவதும். செருகுநிரல்களை அதிகாரப்பூர்வ திட்டப் பக்கங்களிலிருந்து மட்டுமே பெறவும் (Hangar, Modrinth, SpigotMC). இதற்குக் காரணம், சர்வர் jar-ஐப் போலவே: ஒவ்வொரு செருகுநிரலும் minecraft பயனராக இயங்கும் தன்னிச்சையான குறியீடு.
சர்வரை மேம்படுத்துவது என்பது: நிறுத்து, காப்புப் பிரதி எடு, புதிய Minecraft பதிப்பிற்கான கட்டியைக் கொண்டு server.jar-ஐ மாற்று, தொடங்கு. இரண்டு எச்சரிக்கைகள் உள்ளன. உலக மேம்படுத்தல்கள் ஒருதிசைப் பாதை — புதிய பதிப்பில் திறக்கப்பட்ட உலகம் பழைய பதிப்பில் திறக்காது. எனவே காப்புப் பிரதிகள் இதற்கும் அவசியம். மேலும், செருகுநிரல்கள் பெரும்பாலும் புதிய Minecraft வெளியீட்டை விட சில நாட்கள் அல்லது வாரங்கள் பின்தங்கியிருக்கும். எனவே முதல் நாளிலேயே வெளியீட்டைத் துரத்துவதற்கு முன் இணக்கத்தன்மையைச் சரிபார்க்கவும்.
இவை அனைத்தையும் நீங்கள் ஒரு கொள்கலனாக நிர்வகிக்க விரும்பினால் — பதிப்பைப் பூட்டுதல், EULA ஏற்பு, மற்றும் நினைவகக் கொடிகளை சூழல் மாறிகளாகக் கொண்டு — பரவலாகப் பயன்படுத்தப்படும் itzg/minecraft-server படிமம் அதே Paper சர்வரை உங்கள் VPS-இல் Docker Compose கீழ் ஒரே மாதிரியான ஃபயர்வால் மற்றும் காப்புப் பிரதி ஒழுங்குடன் இயக்குகிறது.
FAQ
ஒரு Minecraft சர்வருக்கு எவ்வளவு RAM தேவை?
2 GB RAM ஆனது 2–5 வீரர்களுக்கு vanilla சர்வரை இயக்கும்; 4 GB RAM ஆனது Paper இல் சில plugins உடன் சுமார் பத்து வீரர்கள் கொண்ட நண்பர்கள் சர்வருக்கு போதுமானது; modpacks மற்றும் 20-க்கும் மேற்பட்ட வீரர்களுக்கு 8 GB அல்லது அதற்கு மேல் தேவை. VPS அளவு எதுவாக இருந்தாலும், -Xmx ஐ மொத்த RAM இலிருந்து 1 GB குறைவாக அமைக்கவும் — JVM ஆனது heap ஐத் தாண்டி நினைவகத்தைப் பயன்படுத்துகிறது, மேல் வரம்பை மீறினால் Error: Could not reserve enough space for object heap அல்லது மௌன OOM kill ஏற்படுகிறது.
என் நண்பர்களால் என் Minecraft சர்வருடன் ஏன் இணைய முடியவில்லை?
Connection timed out: no further information உடன் முடியும் ஒரு client hang பொதுவாக firewall சிக்கலைக் குறிக்கிறது, மேலும் இரண்டு firewall உள்ளன: VPS இல் ufw மற்றும் உங்கள் provider-ன் control panel இல் நெட்வொர்க் firewall. TCP 25565 இரண்டிலும் திறக்கப்பட்டிருக்க வேண்டும். சர்வர் உண்மையில் கேட்கிறதா என்பதை சர்வரில் sudo ss -tlnp | grep 25565 கொண்டு உறுதிப்படுத்தவும், பிறகு வெளியிலிருந்து nc -vz your.server.ip 25565 கொண்டு சோதிக்கவும்.
server.properties இல் online-mode=false அமைக்க வேண்டுமா?
இல்லை. online-mode=false அமைக்கப்பட்டால் சர்வர் Mojang authentication ஐ முற்றிலும் தவிர்க்கிறது, எனவே எவரும் எந்த username கீழும் இணையலாம் — ஒரு op-ன் பெயரைக் கொண்டு, அவர்களின் அனுமதிகளைப் பெற்று — மேலும் skins மற்றும் நிலையான UUIDs செயலிழக்கின்றன. ஒரே சரியான பயன்பாடு, வீரர்களைத் தானே சரிபார்க்கும் Velocity போன்ற ஒரு authenticating proxy-ன் பின்னால் இயக்குவது. சாதாரண சர்வருக்கு அது true ஆகவே இருக்க வேண்டும்.
Paper ஆனது vanilla Minecraft சர்வரை விடச் சிறந்ததா?
ஏறக்குறைய அனைவருக்கும், ஆம்: Paper என்பது ஒரு drop-in jar ஆகும், இது vanilla worlds ஐ ஏற்றுகிறது, மாற்றப்படாத clients ஐ ஏற்கிறது, entities ஐ இயக்குவதிலும் chunks ஐ ஏற்றுவதிலும் மிகவும் திறம்பட செயல்படுகிறது, மேலும் plugin ecosystem ஐச் சேர்க்கிறது. விதிவிலக்கு என்பது bit-exact vanilla நடத்தை தேவைப்படும் technical-redstone சமூகங்கள், இதை சில Paper optimisations மாற்றுகின்றன. ஒரு சிறிய VPS இல், Paper-ன் செயல்திறன் பயனுள்ள இலவச கூடுதல் RAM ஆகும்.
ஒரு Minecraft world ஐ சேதமடையாமல் எப்படி காப்புப் பிரதி எடுப்பது?
சர்வர் world directory இல் எழுதிக்கொண்டிருக்கும்போது அதை archive செய்ய வேண்டாம் — ஒரு region-file write உடன் போட்டியிடும் நகல் எடுத்தல் சேதமடைந்த chunks ஐ உருவாக்குகிறது, இது restore செய்யும்போது மட்டுமே கண்டறியப்படும். சர்வரை நிறுத்தி, world directories ஐ tar செய்து, மீண்டும் தொடங்கவும், அல்லது save-off, save-all flush, tar, save-on மூலம் RCON இல் அதை இயங்குநிலையில் வைக்கவும். பிறகு archive ஐ VPS இலிருந்து வெளியே நகர்த்தவும்.