آموزش ساخت سرور ماینکرفت با لینوکس

نحوه ساخت سرور Minecraft در اوبونتو 20.04

Minecraft یکی از محبوب ترین بازی های همه زمان ها است. این یک بازی ویدئویی است که در آن بازیکنان دنیاهای بی نهایت را کشف می کنند و ساختارهای مختلفی از خانه های ساده گرفته تا آسمان خراش های بلند را می سازند.
در این آموزش نحوه ساخت سرور Minecraft در اوبونتو 20.04 توضیح داده شده است.
 ما از Systemd برای اجرای سرور Minecraft و mcrconابزاری برای اتصال به نمونه در حال اجرا استفاده خواهیم کرد. ما همچنین به شما می آموزیم که چگونه یک cronjob ایجاد کنید که بطور منظم از پشتیبان گیری از سرور استفاده کند.

پیش نیازها

طبق اعلام سایت رسمی Minecraft ، چهار گیگابایت رم به عنوان حداقل تنظیمات برای یک تنظیم معمولی توصیه می شود.

بسته های لازم برای ساخت ابزار mcrcon را نصب کنید :

sudo apt update
sudo apt install git build-essential

نصب Java Runtime Environment

Minecraft به Java 8 یا بالاتر نیاز دارد. سرور Minecraft به رابط کاربری گرافیکی احتیاج ندارد ، بنابراین نسخه بدون سرور جاوا را نصب خواهیم کرد. این نسخه برای برنامه های سرور مناسب تر است زیرا وابستگی کمتری دارد و از منابع سیستم کمتری استفاده می کند.

برای نصب بسته OpenJRE 11 بدون سر ، دستور زیر را اجرا کنید:

sudo apt install openjdk-11-jre-headless

نصب را با چاپ نسخه جاوا تأیید کنید:

java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

ایجاد کاربر Minecraft

به دلایل امنیتی ، Minecraft نباید تحت عنوان کاربر اصلی اجرا شود. ما یک کاربر و گروه جدید با دایرکتوری Home ایجاد /opt/minecraftخواهیم کرد. حداقل مجوزهای لازم برای اجرای سرور Minecraft را خواهد داشت:

sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft

ما رمز عبور برای این کاربر تنظیم نمی کنیم. به این ترتیب کاربر نمی تواند از طریق SSH وارد سیستم شود و به خطر بیافتد. برای تغییر به کاربر minecraft ، باید به عنوان root یا کاربر دارای دسترسی sudo به سرور وارد شوید .

نصب Minecraft در اوبونتو

قبل از شروع مراحل نصب ، به کاربر minecraft  تغییر دهید :

sudo su - minecraft

برای ایجاد سه دایرکتوری جدید در فهرست خانه کاربر ، دستور زیر را اجرا کنید:

mkdir -p ~/{backups,tools,server}
  • این backupsپوشه از نسخه پشتیبان تهیه شده از سرور Minecraft شما ذخیره می کند. می توانید این فهرست را با سرور پشتیبان از راه دور خود همگام سازی کنید.
  • toolsدایرکتوریی برای نگه داری کلاینت mcrcon و اسکریپت پشتیبانی.
  •  serverفهرست شامل سرور واقعی Minecraft و داده های آن می باشد.

دانلود و کامپایل mcrcon

RCON پروتکل است که به شما امکان می دهد به سرورهای Minecraft وصل شوید و دستورات را اجرا کنید. mcron کلاینت RCON است که به زبان C نوشته شده است.

ما کد منبع را از GitHub بارگیری می کنیم و mcrcon باینری را می سازیم.

پوشه Tiiffi/mcrcon موجود در گیت هاب را در دایرکتوری ~/tools/mcron کلون میکنیم

git clone https://github.com/Tiiffi/mcrcon.git ~/tools/mcrcon

پس از اتمام ، به mcronفهرست راهنما بروید و ابزار را بسازید:

cd ~/tools/mcrcon
gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c

پس از اتمام ، mcrconبا چاپ نسخه آن با موفقیت تأیید کنید :

./mcrcon -v

خروجی چیزی شبیه به این خواهد بود:

mcrcon 0.7.1 (built: Jun 23 2020 15:49:44) - https://github.com/Tiiffi/mcrcon
Bug reports:
	tiiffi+mcrcon at gmail
	https://github.com/Tiiffi/mcrcon/issues/

بارگیری سرور Minecraft

چندین حالت سرور Minecraft مانند Craftbukkit یا Spigot وجود دارد که به شما امکان می دهد ویژگی ها (افزونه ها) را بر روی سرور خود اضافه کنید و تنظیمات سرور را بیشتر سفارشی  کنید.

در این راهنما جدیدترین سرور Mojang’s official vanilla Minecraft server را نصب خواهیم کرد. همین دستورالعمل ها برای نصب سایر حالت های سرور اعمال می شود.

به صفحه بارگیری Minecraft بروید تا لینک دانلود جدیدترین پرونده بایگانی Java سرور (Minecraft (JAR دریافت کنید.

فایل jar را در ~/serverدایرکتوری با wget بارگیری کنید :

wget https://launcher.mojang.com/v1/objects/a0d03225615ba897619220e256a266cb33a44b6b/server.jar -P ~/server

پیکربندی سرور Minecraft

زمانی که دانلود به اتمام است،به دایرکتوری ~/server رفته و سرور را اجرا کنید

cd ~/server
java -Xmx1024M -Xms1024M -jar server.jar nogui

هنگامی که برای اولین بار آغاز شده، سرور اجرا برخی از عملیات، ایجاد فایل های server.propertiesو eula.txt متوقف می شوند.

[17:35:14] [main/ERROR]: Failed to load properties from file: server.properties
[17:35:15] [main/WARN]: Failed to load eula.txt
[17:35:15] [main/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

برای اجرای سرور ، باید مطابق با خروجی فوق با Minecraft EULA موافقت کنید. eula.txt پرونده را باز کنید و eula=falseبه eula=true تغییر دهید:

nano ~/server/eula.txt
eula=true

پرونده را ببندید و ذخیره کنید.

سپس ، فایل server.properties  را باز کنید و پروتکل rcon را فعال کنید و رمز عبور rcon را تنظیم کنید:

nano ~/server/server.properties

خطوط زیر را پیدا کرده و مقادیر آنها را مطابق شکل زیر به روز کنید:server.properties

rcon.port=25575
rcon.password=strong-password
enable-rcon=true

 اگر نمی خواهید از طریق ریموت سرور به سرور Minecraft وصل شوید ، مطمئن شوید که پورت rcon توسط فایروال شما مسدود شده است.

ایجاد Systemd

به جای شروع دستی سرور Minecraft ، یک فایل Systemd ایجاد می کنیم و Minecraft را به عنوان یک سرویس اجرا می کنیم.

با تایپ کردن exit به کاربر sudo خود برگردید .

ویرایشگر متن خود را باز کنید و یک فایل به نام minecraft.service در /etc/systemd/system/ فهرست ایجاد کنید:

sudo nano /etc/systemd/system/minecraft.service

کانفیگ زیر را در فایل ساخته شده کپی نمایید :

[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
Nice=1
KillMode=none
SuccessExitStatus=0 1
ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
WorkingDirectory=/opt/minecraft/server
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui
ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password stop

[Install]
WantedBy=multi-user.target

 Xmxو Xms با توجه به منابع سرور خود تغییر دهید.
 Xmx حداکثر تخصیص حافظه برای یک ماشین مجازی جاوا (JVM) را تعریف می کند، در حالی که Xms حافظه تخصیص یافته اولیه را تعریف میکند. همچنین مطمئن شوید که از rconپورت و رمز عبور صحیح استفاده می کنید .

فایل را ذخیره و دستور زیر برای راه اندازی مجدد و اضافه شدن سرویس به لیست سرویس های موجود اجرا میکنیم:

sudo systemctl daemon-reload

اکنون می توانید سرور Minecraft را start کنید:

sudo systemctl start minecraft

اولین بار که سرویس را شروع می کنید ، چندین پرونده و فهرست پیکربندی از جمله Minecraft world را ایجاد میکند

وضعیت سرویس را با دستور زیر بررسی کنید:

sudo systemctl status minecraft
minecraft.service - Minecraft Server
     Loaded: loaded (/etc/systemd/system/minecraft.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2020-06-23 17:48:44 UTC; 8s ago
   Main PID: 1338035 (java)
      Tasks: 15 (limit: 1074)
     Memory: 465.3M
     CGroup: /system.slice/minecraft.service
             └─1338035 /usr/bin/java -Xmx1024M -Xms1024M -jar server.jar nogui

سرانجام ، سرویس minecraft را به طور خودکار در زمان بوت شدن فعال کنید:

sudo systemctl enable minecraft

تنظیم فایروال

در اوبونتو یک ابزار پیکربندی فایروال به نام UFW وجود دارد. اگر فایروال روی سیستم شما فعال شده است و می خواهید از خارج از شبکه محلی خود به server Minecraft دسترسی پیدا کنید ، باید پورت 25565 را باز کنید :

sudo ufw allow 25565/tcp

پیکربندی پشتیبان گیری

در این بخش یک شل اسکریپت پشتیبانی و cronjob ایجاد می کنیم تا بطور خودکار از server minecraft پشتیبان تهیه کنید.

به کاربر minecraft سوییچ کنید:

sudo su - minecraft

ویرایشگر متن خود را باز کرده و فایل زیر را ایجاد کنید:

nano /opt/minecraft/tools/backup.sh

پیکربندی زیر را در فایل ساخته شده کپی نمایید:

#!/bin/bash

function rcon {
  /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1"
}

rcon "save-off"
rcon "save-all"
tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server
rcon "save-on"

## Delete older backups
find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete

توجه داشته باشید H- و P- را طبق IP و پورت مورد نظر خود تغییر دهید همچنین بجای strong-password از رمز عبور خود استفاده کنید.

پرونده را ذخیره کنید و اسکریپت را عملی کنید :

chmod +x /opt/minecraft/tools/backup.sh

سپس ، یک cron job ایجاد کنید که یک بار در روز به طور خودکار در یک زمان ثابت اجرا شود.

پرونده crontab را با تایپ کردن باز کنید:

crontab -e

برای اجرای اسکریپت پشتیبان هر روز در 23:00 خط زیر را بچسبانید:

0 23 * * * /opt/minecraft/tools/backup.sh

دسترسی به کنسول Minecraft

برای دسترسی به کنسول minecraft ، از ابزار mcrcon  استفاده کنید . شما باید host ، پورت rcon ، رمز عبور rcon را مشخص کنید و از سوئیچ -t  استفاده کنید که mcrcon حالت ترمینال را فعال می کند:

/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password -t
Logged in. Type "Q" to quit!
> 

هنگام دسترسی به کنسول minecraft از طریق ریموت ، مطمئن شوید که پورت rcon مسدود نشده است.

اگر مرتباً به کنسول minecraft وصل می شوید ، به جای تایپ این دستور طولانی ، ایجاد یک bash alias را ایجاد کنید .

نتیجه

ما به شما نشان داده ایم که چگونه می توانید یک minecraft server را در Ubuntu 20.04 بسازید و یک نسخه پشتیبان تهیه کنید.

اکنون می توانید سرویس Minecraft خود را راه اندازی کنید ، به سرور وصل شوید و ماجراجویی minecraft خود را شروع کنید.

درباره نویسنده: AfshinBalakar

افشین بالاکار دانشجوی مهندسی تکنولوژی نرم افزار، مدت 5 سال است با لینوکس رابطه افلاطونی دارم.

مطالب زیر را حتما بخوانید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *