SSD Nodes Learn Hosting plans →
கல்வி வழிகாட்டிகள் Matt Connorஆல் Matt Connor · புதுப்பிக்கப்பட்டது 2026-08-07

Ubuntu 24.04-ல் Minecraft Paper Server அமைப்பது எப்படி?

Ubuntu 24.04 VPS-ல் Paper Minecraft server-ஐ Java 21 கொண்டு நிறுவுவது எப்படி என்பதை அறியுங்கள். RAM அளவு, systemd unit, UFW firewall மற்றும் port 25565 அமைப்புகளை விவரிக்கிறோம்.

நீங்கள் உருவாக்குவது

தொடர்ச்சியாக இயங்கும் ஒரு Minecraft Java Edition server: Ubuntu 24.04-ல் Paper, systemd-ன் கீழ் ஒரு பிரத்யேக minecraft பயனராக, Restart=on-failure உடன் இயங்குகிறது. இதில் whitelist செயல்பாட்டில் உள்ளது, வீரர்களுக்கும் JVM-க்கும் இடையே உள்ள இரண்டு firewalls-லும் port 25565 திறக்கப்பட்டுள்ளது, மேலும் world கோப்புகள் சிதையாத வகையில் backups எடுக்கப்படுகின்றன. இந்த server ஒரு jar கோப்பு மற்றும் ஒரு java கட்டளையை அடிப்படையாகக் கொண்டது; உங்கள் நண்பர்கள் ஓராண்டு விளையாடும் server-க்கும், முதல் வாரத்திலேயே செயலிழக்கும் server-க்கும் உள்ள வித்தியாசம் இந்த கட்டளையைச் சுற்றியுள்ள அமைப்புகளில்தான் உள்ளது; அதைத்தான் இந்த வழிகாட்டி விளக்குகிறது.

நீங்கள் பணம் செலவழிக்கும் முன் இரண்டு உண்மையான எச்சரிக்கைகள். முதலாவது, Minecraft அதிக நினைவகத்தை (memory) பயன்படுத்தும் மற்றும் பெரும்பாலும் single-threaded முறையில் இயங்கும்: 1 GB VPS-ல் விளையாடக்கூடிய server-ஐ இயக்க முடியாது, மேலும் நான்கு மெதுவான cores-ஐ விட ஒரு வேகமான core சிறந்தது. இரண்டாவது, இது Java Edition. Bedrock வீரர்கள், consoles, phones, மற்றும் Windows Bedrock app பயனர்கள் Java server-ல் இணைய முடியாது; Bedrock-க்கு UDP 19132-ல் வேறு server மென்பொருள் தேவை, அல்லது Geyser plugin தேவை, இது இந்த வழிகாட்டியின் எல்லைக்கு அப்பாற்பட்டது.

உங்களுக்கு root அல்லது sudo வசதியுடன் கூடிய புதிய Ubuntu 24.04 KVM VPS மற்றும் சுமார் முப்பது நிமிடங்கள் தேவை.

அளவு நிர்ணயம்: நண்பர்களுக்கான server-க்கு உண்மையில் தேவைப்படுவது என்ன

RAM மட்டுமே முக்கியமான காரணி. modpack forum-களில் பரிந்துரைக்கப்படுவதை விட, நடைமுறைத் தேவை குறைவானதே:

  • 2 GB: 2–5 players விளையாடும் vanilla server-க்கு, மிதமான view distance-ல் இது போதுமானது. விளையாட முடியும், ஆனால் கூடுதல் வசதி இருக்காது.
  • 4 GB: நண்பர்களுக்கான server-க்கு இதுவே சரியான அளவு. Paper-ல் சுமார் பத்து players ஒரே நேரத்தில் விளையாடலாம், சில plugins-ஐயும் பயன்படுத்தலாம். OS-க்குத் தேவையான RAM-ம் இதில் இருக்கும்.
  • 8 GB மற்றும் அதற்கு மேல்: இது modpack-களுக்கும், 20-க்கும் மேற்பட்ட players விளையாடும் சூழலுக்கும் ஏற்றது. இங்கு single-core CPU வேகமும் முக்கியம், ஏனெனில் விளையாட்டின் முதன்மைச் செயல்பாடு (main game loop) ஒரு thread-ல் மட்டுமே இயங்கும்.

Players புதிய இடங்களை ஆராயும்போது disk-ல் உலகின் அளவு (world size) அதிகரிக்கும். நீண்ட காலம் விளையாடிய survival world பல gigabytes அளவு வரை செல்லும் என்பதால், world-க்கும் அதன் backups-க்கும் போதுமான இடவசதியை விட்டு வைக்கவும்.

Vanilla அல்லது Paper? Paper என்பது அதிகாரப்பூர்வ jar கோப்பிற்கு மாற்றாகப் பயன்படுத்தக்கூடியது. அதே worlds, அதே clients, client-side mods தேவையில்லை. இது server-ன் மெதுவான செயல்பாடுகளான chunk loading, entity ticking, hoppers ஆகியவற்றை மேம்படுத்துகிறது மற்றும் plugin API-ஐ வழங்குகிறது. Paper-ன் மேம்பாடுகள் redstone farms-ன் நுணுக்கமான செயல்பாடுகளை மாற்றக்கூடும் என்பதால், அத்தகைய technical தேவைகள் இருந்தால் மட்டுமே vanilla-வைப் பயன்படுத்தவும். மற்ற அனைவருக்கும், Paper ஒரு gigabyte-க்கு அதிக players-ஐக் கையாளும் திறனைத் தரும். கீழே கொடுக்கப்பட்டுள்ள அனைத்தும் இரண்டிற்கும் பொருந்தும்.

படி 1: Java 21-ஐ நிறுவுதல்

Minecraft 1.20.5 மற்றும் அதற்குப் பிந்தைய அனைத்து releases-களும் (அனைத்து 1.21.x பதிப்புகளும்) Java 21-ஐக் கோருகின்றன. Ubuntu 24.04-ன் default repositories-ல் இது கிடைக்கிறது. server-க்குத் தேவையில்லாத desktop libraries-ஐத் தவிர்த்து, 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 அடங்கிய entry-ஐத் தேர்ந்தெடுக்கவும்.

இந்தச் சரிபார்ப்பைத் தவிர்த்தால், பிற்காலத்தில் Minecraft server-ல் அடிக்கடி தேடப்படும் பிழை ஏற்படும். 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 அல்ல

இந்த server plugin குறியீட்டை இயக்குகிறது மற்றும் port-ஐ அணுகக்கூடிய எவரிடமிருந்தும் வரும் network உள்ளீட்டைப் பகுப்பாய்வு செய்கிறது. ஏதேனும் பிழை ஏற்பட்டால், root பயனர் நிலையில் இயங்கும் ஒரு compromise உங்கள் VPS-ன் முழு கட்டுப்பாட்டையும் எடுத்துக்கொள்ளும்; ஆனால் minecraft பயனர் நிலையில் இயங்கினால், அது ஒரு game world-ஐ மட்டுமே பாதிக்கும்.

sudo adduser --system --group --home /opt/minecraft minecraft

--system கடவுச்சொல் இல்லாத ஒரு கணக்கை உருவாக்குகிறது. இது SSH வழியாக உள்நுழைய முடியாது. இதன் home மற்றும் working directory /opt/minecraft ஆகும். இனிவரும் அனைத்து கட்டளைகளும் இந்த பயனரின் உரிமையிலேயே இயக்கப்படும்.

படி 3: அதிகாரப்பூர்வ மூலத்திலிருந்து server jar-ஐப் பதிவிறக்கவும்

server jar-ஐப் பதிவிறக்க இரண்டு இடங்களை மட்டுமே பயன்படுத்த வேண்டும்: vanilla பதிப்பிற்கு minecraft.net-ன் அதிகாரப்பூர்வ பதிவிறக்கப் பக்கம், மற்றும் Paper-க்கு papermc.io-ன் பதிவிறக்கப் பக்கம். மூன்றாம் தரப்பு "download hubs" தளங்கள் server jar-களை மறுதொகுப்பு செய்கின்றன; இவை நீண்டகாலமாக malware பரப்பும் வழிகளாக உள்ளன. server jar என்பது நீங்கள் இணையத்துடன் இணைக்கப்பட்ட server-ல் 24/7 இயக்கப்போகும் ஒரு arbitrary code ஆகும்.

அதிகாரப்பூர்வ பக்கத்திலிருந்து தற்போதைய build-க்கான பதிவிறக்க இணைப்பை நகலெடுக்கவும் (ஒவ்வொரு பதிப்பு மற்றும் build-க்கும் URL மாறுபடும் என்பதால், இங்கே ஒன்றை நிரந்தரமாகக் குறிப்பிடுவது காலாவதியாகிவிடும்), பின்னர்:

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, மற்றும் உங்களை op-ஆக அமைத்தல்

systemd-ஐ அமைப்பதற்கு முன்பு, server-ஐ ஒருமுறை interactive முறையில் இயக்கவும். முதல்முறை இயக்கும்போது மட்டுமே செய்யக்கூடிய இரண்டு முக்கியமான வேலைகள் உள்ளன.

cd /opt/minecraft
sudo -u minecraft java -Xms1G -Xmx1G -jar server.jar nogui

இது சில நொடிகளில் நின்றுவிடும். Paper முதலில் அதன் patches-ஐப் பயன்படுத்துவதால் சிறிது கூடுதல் நேரம் எடுக்கும். log-ன் இறுதியில் அனைவரும் சந்திக்கும் இந்த வரி தோன்றும்:

[ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

இது பிழை அல்ல; இது உரிமக் கட்டுப்பாடு (license gate). இந்த இயக்கம் jar கோப்பிற்கு அருகில் eula.txt கோப்பை உருவாக்கியிருக்கும். நீங்கள் இன்னும் படிக்கவில்லை என்றால், அதில் உள்ள EULA-வை வாசிக்கவும். பிறகு, அந்த flag-ஐ மாற்றவும்:

sudo -u minecraft sed -i 's/eula=false/eula=true/' /opt/minecraft/eula.txt

அதே java கட்டளையை மீண்டும் இயக்கவும். இந்த முறை அது உலகத்தை (world) உருவாக்கும். முதல்முறை தொடங்கும் போது இதற்கு ஒன்று அல்லது இரண்டு நிமிடங்கள் ஆகலாம், இறுதியில் இவ்வாறு நிற்கும்:

[Server thread/INFO]: Done (9.204s)! For help, type "help"

இப்போது உங்களிடம் live console உள்ளது. இரண்டாவது வேலைக்காக இதைப் பயன்படுத்தவும்: op YourMinecraftName (உங்கள் in-game username-ஐ சரியாக உள்ளிடவும்) என்று தட்டச்சு செய்யவும். server உங்களை ops.json கோப்பில் பதிவு செய்யும். இதனால், console இணைக்கப்படாத நேரத்திலும், விளையாட்டிற்குள்ளிருந்தே அனைத்து admin கட்டளைகளையும் உங்களால் இயக்க முடியும். பிறகு, server-ஐச் சேமித்து முறையாக வெளியேற 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 know

online-mode=true என்பது சேவையகத்தில் இணையும் ஒவ்வொரு பயனரின் பெயரையும் Mojang-ன் session servers-உடன் சரிபார்க்கும். இது அந்த வீரர் கணக்கின் உரிமையாளர் என்பதை உறுதிப்படுத்துகிறது. இதை false என மாற்றினால், அது "cracked server" பயன்முறைக்குச் செல்லும். அப்போது சேவையகம் எந்தவொரு கிளையண்டின் பெயரையும் அப்படியே ஏற்கும்; எவர் வேண்டுமானாலும் உங்கள் பெயரிலேயே நுழைய முடியும். ops மற்றும் whitelists பெயர்களை அடிப்படையாகக் கொண்டவை என்பதால், ஒருவர் உங்கள் பெயரில் நுழைந்து உங்கள் operator அனுமதிகளைப் பெற முடியும். Velocity போன்ற அங்கீகரிக்கும் proxy-ஐப் பயன்படுத்தும் போது மட்டுமே இதை false என வைக்கலாம். சாதாரண சேவையகங்களில் இது எப்போதும் true-ஆகவே இருக்க வேண்டும்.

view-distance என்பது கோப்பின் செயல்திறனைத் தீர்மானிக்கும் மிக முக்கியமான காரணி. இதன் CPU மற்றும் RAM பயன்பாடு வர்க்க அளவில் (square) அதிகரிக்கும். VPS-க்கு 8 என்பது சரியான இயல்புநிலை; 10 என்பது vanilla இயல்புநிலை, இது அதிக சுமையை ஏற்படுத்தும்.

white-list=true மற்றும் enforce-whitelist=true ஆகியவற்றை அமைப்பதன் மூலம் அறிமுகமில்லாத நபர்கள் சேவையகத்திற்குள் நுழைவதைத் தடுக்கலாம். இது கட்டாயமான பாதுகாப்பு நடவடிக்கை என்பதை கீழே உள்ள பாதுகாப்புப் பகுதியில் காணலாம். வீரர்களைச் சேர்க்க, விளையாட்டிற்குள் /whitelist add TheirName கட்டளையைப் பயன்படுத்தி அவர்களை op-ஆக மாற்றவும்.

படி 6: memory flags, -Xms மற்றும் -Xmx ஏன் சமமாக இருக்க வேண்டும்

JVM தனது heap-ஐ -Xms (தொடக்க அளவு) மற்றும் -Xmx (அதிகபட்ச அளவு) ஆகியவற்றுக்கு இடையே ஒதுக்குகிறது. ஒரு பிரத்யேக கேம் சர்வரில், இரண்டையும் ஒரே மதிப்பில் அமைக்கவும்: heap எப்படியும் அதிகபட்ச அளவை எட்டிவிடும், எனவே விளையாட்டின் போது படிப்படியாக அதை அதிகரிப்பது garbage-collector-ன் சுமையை மட்டுமே கூட்டும். 4 GB VPS-ல் சரியான ஜோடி இதுதான்:

/usr/bin/java -Xms3G -Xmx3G -jar server.jar nogui

-Xmx என்பது process பயன்படுத்தும் மொத்த memory அல்ல. JVM, off-heap overhead, thread stacks, JIT caches, direct buffers என சுமார் அரை GB அல்லது அதற்கும் மேலாக கூடுதலாக எடுத்துக்கொள்ளும்; மேலும் Ubuntu இயங்குதளத்திற்கும் இடம் தேவை. பொதுவான விதி: -Xmx என்பது VPS RAM-ல் இருந்து 1 GB கழித்தது போக மீதமுள்ள அளவு. இதைத் தாண்டினால் இரண்டு வகையான தோல்விகள் ஏற்படும். ஒதுக்கீடு தொடக்கத்திலேயே தோல்வியுற்றால், சர்வர் தொடங்க மறுத்துவிடும்:

Error: Could not reserve enough space for object heap

இது வெளிப்படையான மற்றும் உடனடி தோல்வி. மோசமான வகை என்னவென்றால், சர்வர் சரியாகத் தொடங்கி, சில மணிநேரம் கழித்து, சுமை அதிகரிக்கும் போது heap நிரம்பி, kernel-ன் OOM killer அந்தப் பெட்டியின் மிகப்பெரிய process-ஆன JVM-ஐக் கொன்றுவிடும். சர்வர் லாக்-ல் எதுவும் இருக்காது; இதற்கான ஆதாரம் sudo dmesg | grep -i oom-ல் இருக்கும், அதில் Out of memory: Killed process 1234 (java) போன்ற ஒரு வரி இருக்கும். உங்கள் service "தன்னிச்சையாக" restart ஆனால், முதலில் அதைச் சரிபார்த்து, -Xmx-ஐக் குறைக்கவும்.

Paper-க்கு, அந்தத் திட்டம் Aikar's flags-ஐ ஆவணப்படுத்துகிறது. இது ஒரு மேம்படுத்தப்பட்ட G1GC தொகுப்பாகும் (-XX:+UseG1GC -XX:MaxGCPauseMillis=200 மற்றும் பல), இது பெரிய heap-களில் garbage-collection இடைநிறுத்தங்களைச் சீராக்குகிறது. Paper ஆவணங்களிலிருந்து முழு வரியையும் உருவாக்கவும்; 2–4 GB heap-ல் இதன் பயன் குறைவாக இருந்தாலும், இந்த flags-ஆல் எந்தப் பாதிப்பும் இல்லை.

படி 7: Restart=on-failure கொண்ட systemd unit

கைமுறையாகத் தொடங்கப்படும் server, உங்கள் SSH session முடிந்ததும் நின்றுவிடும், மேலும் reboot செய்த பிறகும் அது இயங்காது. /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.target
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
systemctl status minecraft
journalctl -u minecraft -f

சரியான முடிவு: status என்பது active (running)-ஐக் காட்டுகிறது, மேலும் server console வெளியீட்டைக் கொண்டுள்ள journal, மீண்டும் Done வரியில் முடிகிறது.

அந்த unit-ல் இரண்டு திட்டமிட்ட தேர்வுகள் உள்ளன. Restart=on-failure, ஒரு crash-க்குப் பிறகு server-ஐ மீண்டும் கொண்டு வரும், ஆனால் முறையான stop-க்குப் பிறகு வராது, எனவே பராமரிப்புப் பணிகள் சாத்தியமாகும். மேலும் TimeoutStopSec=120 பார்ப்பதை விட முக்கியமானது: systemctl stop என்பது SIGTERM-ஐ அனுப்புகிறது, Minecraft server அதைப் பெற்று வெளியேறுவதற்கு முன்பு ஒவ்வொரு world-ஐயும் சேமிக்கிறது, பெரிய world-களில் இந்தச் சேமிப்புக்கு நேரம் எடுக்கும். Systemd-ன் default timeout, JVM-ஐ சேமிக்கும் பணியின் பாதியிலேயே SIGKILL செய்யக்கூடும், இதுவே region files சிதைவதற்குக் காரணமாகிறது. இதற்கு இரண்டு நிமிடங்கள் அவகாசம் அளிக்கவும்.

Service அடிக்கடி நின்று மீண்டும் தொடங்கினால் (flapping) மற்றும் 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 port-ஐப் பிடித்துள்ளது என்று அர்த்தம், பெரும்பாலும் உங்கள் முந்தைய foreground run வேறொரு SSH session-ல் இன்னும் இயங்கிக்கொண்டிருக்கலாம். அதை sudo ss -tlnp | grep 25565 மூலம் கண்டறிந்து அந்த நகர்வை நிறுத்தவும்; ஒரே port-ல் இரண்டு server-களை ஒருபோதும் இயக்க வேண்டாம்.

படி 8: இரண்டு firewall-களிலும் 25565 port-ஐத் திறக்கவும்

Minecraft Java, TCP 25565-ஐ மட்டுமே பயன்படுத்துகிறது (UDP என்பது விருப்பத்தேர்வுக்குரிய query protocol ஆகும், இது இயல்பாகவே முடக்கப்பட்டிருக்கும்). VPS-ல்:

sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp
sudo ufw enable

இது முதல் firewall ஆகும். பெரும்பாலான VPS வழங்குநர்கள் control panel-ல் இரண்டாவது, network-நிலை firewall-ஐ இயக்குகிறார்கள்; பயனர்கள் பெரும்பாலும் இதைத்தான் மறந்துவிடுகிறார்கள். அங்கேயும் TCP 25565-ஐத் திறக்கவும். இரண்டில் ஒன்றில் மட்டும் port-ஐத் திறந்தால் ஏற்படும் அறிகுறி மிகவும் குழப்பமானது: client "Connecting to the server..." என்பதில் நின்றுவிடும், பின் Connection timed out: no further information பிழையுடன் தோல்வியடையும். எந்த மறுப்பும் (refusal) இருக்காது, server பிழை இருக்காது, journal-ல் எதுவும் இருக்காது; ஏனெனில் packets server-ஐச் சென்றடையவே இல்லை. VPS-க்கு வெளியே உள்ள ஒரு கணினியிலிருந்து nc -vz your.server.ip 25565 மூலம் சரிபார்க்கவும்; succeeded என்று வந்தால் இரண்டு firewall-களும் திறக்கப்பட்டுள்ளன என்று பொருள், அப்படியே நின்றால் ஏதோ ஒரு firewall திறக்கப்படவில்லை என்று பொருள்.

நீங்கள் ufw-ல் இருக்கும்போதே, அதே server பொது IP-ல் SSH-ஐ இயக்குவதால், சில மணிநேரங்களிலேயே brute-force தாக்குதல் முயற்சிகள் தொடங்கும். எனவே, மறப்பதற்கு முன் Ubuntu 24.04-ல் SSH-க்காக Fail2ban-ஐ அமைக்கவும்.

இப்போது இணைக்கவும்: Multiplayer, Direct Connection, பின் server IP-ஐ உள்ளிடவும். படி 4-ல் நீங்கள் உங்களை op செய்துள்ளதால், விளையாட்டிற்குள் commands உடனடியாகச் செயல்படும். ஒவ்வொரு வீரருக்கும் /whitelist add FriendName-ஐப் பயன்படுத்தவும், அதுவே திட்டமென்றால் /gamemode creative-ஐப் பயன்படுத்தவும்.

படி 9: whitelist-ஐ அமைத்தல், ஏனெனில் இணையம் 25565 port-ஐ கண்டறியும்

Minecraft server-ஐ இணையத்தில் திறந்து வைப்பது வெறும் கோட்பாட்டு ரீதியான ஆபத்து அல்ல: mass scanners தொடர்ந்து IPv4 முழுவதிலும் 25565 port-ஐ தேடிக்கொண்டே இருக்கின்றன. பொழுதுபோக்கிற்காக விளையாடுபவர்கள் இவ்வாறாக லட்சக்கணக்கான open servers-ஐ வரைபடமாக்கியுள்ளனர். whitelist இல்லாத server-க்கு சில நாட்களிலோ அல்லது சில மணிநேரங்களிலோ தேவையற்ற நபர்கள் வந்துவிடுவார்கள். படி 5-ல் உள்ள whitelist இதற்கு தீர்வாகும்: online-mode=true அடையாளத்தை உறுதிப்படுத்துகிறது, whitelist நீங்கள் தேர்ந்தெடுத்த அடையாளங்களுக்கு மட்டுமே அனுமதியளிக்கிறது. இந்த ஜோடியே முழுமையான பாதுகாப்பு மாதிரியாகும், இது நண்பர்களுக்கான server-க்கு போதுமானது.

விளையாட்டு இல்லாமல் console access பெறவும், scripted backups எடுக்கவும், cron job-ஐ பயன்படுத்தவும், server.properties-ல் RCON-ஐ இயக்கவும் (enable-rcon=true, ஒரு வலுவான rcon.password, port 25575). அதன் GitHub source-லிருந்து சிறிய mcrcon client-ஐ VPS-லேயே build செய்யவும்; இது Ubuntu-வின் repos-ல் இல்லை. எந்த firewall-லும் 25575 port-ஐ திறக்க வேண்டாம்: RCON கடவுச்சொல்லை cleartext-ஆக அனுப்புகிறது, எனவே இது loopback-ல் மட்டுமே இருக்க வேண்டும்.

படி 10: உலகத்தை சிதைக்காத காப்புப்பிரதிகள் (backups)

ஒரே ஒரு விதி: server தரவை எழுதிக்கொண்டிருக்கும்போது world directory-ஐ ஒருபோதும் நகலெடுக்க வேண்டாம். விளையாட்டின் போது region files தொடர்ந்து மாற்றியமைக்கப்படுகின்றன; எழுதும் செயல்முறைக்கு இணையாக நடக்கும் ஒரு tar, பாதியிலேயே எழுதப்பட்ட chunks கொண்ட கோப்பகத்தை உருவாக்கும். நீங்கள் அதை மீட்டெடுக்கும்போது, காப்புப்பிரதி மிக அவசியமான அந்த தருணத்தில், log கோப்பில் chunk-loading பிழைகள் நிரம்பிவிடும் மற்றும் நிலப்பரப்பில் துளைகள் ஏற்படும். இதைத் தவிர்க்க இரண்டு முறைகள் உள்ளன.

Stop-copy-start என்பது எளிமையான முறை, ஆனால் இதில் ஒரு நிமிடம் server இயங்காது:

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 server அனைத்தையும் world-க்குள் வைத்திருக்கும், எனவே அங்கு மற்ற இரண்டையும் நீக்கிவிடவும்.)

Save-off முறை நேரலையில் காப்புப்பிரதி எடுக்க உதவுகிறது: RCON வழியாக, save-off (தானியங்கி சேமிப்பை நிறுத்த) கட்டளையிடவும், பிறகு save-all flush (அனைத்தையும் disk-க்கு எழுதி முடிக்கக் காத்திருக்க) கட்டளையிடவும், பின் tar கோப்பை எடுக்கவும், இறுதியாக save-on கட்டளையிடவும். இதை அதிகாலை 5 மணிக்கு cron-ல் சேர்க்கவும்.

எந்த முறையாக இருந்தாலும், server இருக்கும் அதே VPS-ல் காப்புப்பிரதியை வைப்பது உண்மையான காப்புப்பிரதி ஆகாது. scp அல்லது rclone மூலம் கோப்புகளை server-லிருந்து வெளியேற்றவும், ஒன்றுக்கும் மேற்பட்ட பிரதிகளை வைத்திருக்கவும். ஏதேனும் சிக்கல் ஏற்படும்போது நீங்கள் console-ஐப் பார்த்துக்கொண்டிருக்க மாட்டீர்கள் என்பதால், port-க்கு வெளிப்புறச் சரிபார்ப்பை அமைக்கவும்: வேறொரு கணினியில் உள்ள Uptime Kuma மூலம் 25565 port-ஐ TCP check செய்வது, உங்கள் விளையாட்டாளர்களுக்குத் தெரிவதற்கு முன்பே server செயலிழந்ததை உங்களுக்குத் தெரிவிக்கும்.

Plugins மற்றும் மேம்படுத்தல்கள்

Paper-ல், ஒரு plugin என்பது /opt/minecraft/plugins/ கோப்பகத்தில் இடப்படும் ஒரு jar கோப்பு ஆகும்; அதைத் தொடர்ந்து server-ஐ restart செய்வது மட்டுமே நிறுவல் முறை. Server jar கோப்பிற்கு என்ன காரணமோ அதே காரணத்திற்காக, plugins-ஐ அவற்றின் அதிகாரப்பூர்வ பக்கங்களில் (Hangar, Modrinth, SpigotMC) இருந்து மட்டுமே பதிவிறக்கவும்: ஒவ்வொன்றும் minecraft பயனர் கணக்கின் கீழ் இயங்கும் தன்னிச்சையான குறியீடுகள் (arbitrary code) ஆகும்.

Server-ஐ மேம்படுத்தும் முறை: நிறுத்துதல், backup எடுத்தல், server.jar கோப்பை புதிய Minecraft பதிப்பிற்கான build கொண்டு மாற்றுதல், மீண்டும் தொடங்குதல். இதில் இரண்டு எச்சரிக்கைகள் உள்ளன. World மேம்படுத்தல்கள் ஒருவழிப்பாதை; புதிய பதிப்பில் திறக்கப்பட்ட ஒரு world-ஐ பழைய பதிப்பில் திறக்க முடியாது, இதற்காகவே backup-கள் அவசியம். மேலும், புதிய Minecraft வெளியீட்டிற்குப் பிறகு plugins இணக்கத்தன்மை பெற சில நாட்கள் அல்லது வாரங்கள் ஆகலாம், எனவே முதல் நாளிலேயே புதிய பதிப்பிற்கு மாறுவதற்கு முன் இணக்கத்தன்மையைச் சரிபார்க்கவும்.

இவை அனைத்தையும் ஒரு container-ஆக நிர்வகிக்க விரும்பினால், version pinning, EULA ஏற்பு, மற்றும் memory flags-ஐ environment variables-ஆகக் கொண்டு, பரவலாகப் பயன்படுத்தப்படும் itzg/minecraft-server image-ஐப் பயன்படுத்தலாம். இது Docker Compose on your VPS மூலம், அதே firewall மற்றும் backup நடைமுறைகளுடன் Paper server-ஐ இயக்குகிறது.

FAQ

Minecraft server-க்கு எவ்வளவு RAM தேவை?

2 GB RAM-ல் 2–5 வீரர்கள் கொண்ட vanilla server-ஐ இயக்கலாம்; 4 GB RAM-ல் Paper-ஐப் பயன்படுத்தி, சில plugins-உடன் சுமார் பத்து வீரர்கள் விளையாடும் server-ஐச் சிறப்பாக இயக்க முடியும்; modpacks மற்றும் 20-க்கும் மேற்பட்ட வீரர்களுக்கு 8 GB அல்லது அதற்கு மேல் தேவைப்படும். VPS-ன் அளவு எதுவாக இருந்தாலும், -Xmx-ஐ மொத்த RAM-லிருந்து 1 GB கழித்து மீதமுள்ள அளவிற்கு மட்டுமே அமைக்கவும். JVM heap-க்கு அப்பால் கூடுதல் நினைவகத்தைப் பயன்படுத்துவதால், அதிகப்படியான ஒதுக்கீடு Error: Could not reserve enough space for object heap பிழையையோ அல்லது எந்த அறிவிப்பும் இன்றி OOM kill மூலம் server-ஐ நிறுத்துவதையோ ஏற்படுத்தும்.

எனது நண்பர்களால் ஏன் எனது Minecraft server-ல் இணைய முடியவில்லை?

Connection timed out: no further information பிழையுடன் client இணைக்க முடியாமல் போனால், அது பெரும்பாலும் firewall பிரச்சினையாகவே இருக்கும். இதில் இரண்டு இடங்களைச் சரிபார்க்க வேண்டும்: VPS-ல் உள்ள ufw மற்றும் உங்கள் service provider-ன் control panel-ல் உள்ள network firewall. இரண்டிலும் TCP 25565 port திறக்கப்பட்டிருக்க வேண்டும். server உண்மையில் அந்த port-ல் இயங்குகிறதா என்பதை sudo ss -tlnp | grep 25565 மூலம் உறுதிசெய்துவிட்டு, வெளியில் இருந்து nc -vz your.server.ip 25565 மூலம் சோதிக்கவும்.

server.properties-ல் online-mode=false என்று அமைக்க வேண்டுமா?

கூடாது. online-mode=false என்று அமைத்தால், server Mojang authentication-ஐ முழுமையாகத் தவிர்த்துவிடும். இதனால் யார் வேண்டுமானாலும் எந்தப் பெயரிலும் நுழையலாம்; op-ன் பெயரைப் பயன்படுத்தி அவர்களின் அனுமதிகளைப் பெறலாம், மேலும் skins மற்றும் நிலையான UUID-கள் வேலை செய்யாது. வீரர்களைத் தாங்களே சரிபார்க்கும் Velocity போன்ற authenticating proxy-க்கு பின்னால் இருக்கும்போது மட்டுமே இதைப் பயன்படுத்தலாம். சாதாரண server-களுக்கு இது true என்றே இருக்க வேண்டும்.

vanilla Minecraft server-ஐ விட Paper சிறந்ததா?

பெரும்பாலானோருக்கு, ஆம்: Paper என்பது vanilla worlds-ஐ அப்படியே ஏற்றும் ஒரு drop-in jar ஆகும். இது unmodified clients-ஐ ஏற்கும், entities மற்றும் chunks-ஐ மிகவும் திறமையாகக் கையாளும், மேலும் plugin வசதியையும் வழங்கும். bit-exact vanilla நடத்தை தேவைப்படும் technical-redstone சமூகங்களுக்கு மட்டுமே இது விதிவிலக்கு, ஏனெனில் சில Paper மேம்பாடுகள் அந்த நடத்தையை மாற்றக்கூடும். சிறிய VPS-ல், Paper-ன் செயல்திறன் கூடுதல் RAM-க்கு இணையான பலனைத் தரும்.

server-ஐப் பாதிக்காமல் Minecraft world-ஐ எப்படி backup எடுப்பது?

server இயங்கிக்கொண்டிருக்கும்போது world directory-ஐ archive செய்ய வேண்டாம். server எழுதும் கோப்புகளை அதே நேரத்தில் நகலெடுப்பது corrupted chunks-ஐ உருவாக்கும், இது backup-ஐ மீட்டெடுக்கும்போது மட்டுமே தெரியவரும். server-ஐ நிறுத்திவிட்டு world directories-ஐ tar செய்யவும், பின் மீண்டும் தொடங்கவும். அல்லது server இயங்கிக்கொண்டிருக்கும்போதே save-off, save-all flush, tar, மற்றும் RCON வழியாக save-on ஆகியவற்றைப் பயன்படுத்தவும். அதன் பிறகு அந்த archive-ஐ VPS-லிருந்து வெளியே நகர்த்தவும்.