آموزش نصب Minecraft ماین کرافت در Ubuntu 20.04



 

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

 

پیش نیازهای نصب Minecraft

طبق اعلام سایت رسمی Minecraft ، 4 گیگابایت رم به عنوان حداقل تنظیمات برای یک تنظیم معمولی توصیه می شود. بسته های مورد نیاز برای ساخت ابزار 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 نباید تحت عنوان کاربر root اجرا شود. ما یک کاربر و گروه جدید با دایرکتوری /opt/minecraft ایجاد خواهیم کرد. این کاربر حداقل مجوزهای لازم برای اجرای سرور Minecraft را خواهد داشت

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

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

 

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

قبل از شروع مراحل نصب ، به کاربر Minecraft وارد بشین

sudo su - minecraft

برای ایجاد سه دایرکتوری جدید در پوشه Home اصلی کاربر ، دستور زیر را اجرا کنید

mkdir -p ~/{backups,tools,server}

پوشه backups ، بکاپ بازی ماین کرافت را در اینجا ذخیره میکنه. شما همچنین می توانید این پوشه را با سرور پشتیبان گیری از راه دور خود همگام سازی کنید.

پوشه tools  از mcrcon کلاینت و اسکریپت پشتیبان را نگهداری میکند.

پوشه  server حاوی اطلاعات بازی Minecraft و داده های آن است.

 

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

RCON پروتکلی است که به شما امکان می دهد به سرورهای Minecraft وصل شوید و دستورات را اجرا کنید. mcron یک RCON کلاینت است که به زبان C نوشته شده است. ما سورس کد را از GitHub دانلود می کنیم و binary mcrcon را می سازیم. مخزن Tiiffi/mcrcon را از GitHub به پوشه ~/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 Server

چندین حالت سرور Minecraft مانند Craftbukkit یا Spigot وجود دارد که به شما امکان می دهد ویژگی ها (افزونه ها) را بر روی سرور خود اضافه کنید و تنظیمات سرور را بیشتر سفارشی و ترفند کنید. در این راهنما آخرین سرور رسمی vanilla Minecraft رسمی Mojang’s را نصب خواهیم کرد. همین دستورالعمل ها برای نصب سایر حالت های سرور اعمال می شود. به صفحه دانلود Minecraft بروید تا لینک دانلود آخرین فایل بایگانی شده سرور Minecraft (JAR) دریافت کنید. در زمان نوشتن این مقاله ، آخرین نسخه 1.16 است ، فایل jar را در پوشه ~/server سرور با wget دانلود کنید

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

 

کانفیگ سرور Minecraft

پس از اتمام دانلود ، به پوشه ~/server بروید و سرور Minecraft را شروع کنید

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

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

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

فراموش نکنید که رمزعبور قوی انتخاب کنین. اگر نمی خواهید از remote به سرور Minecraft متصل شوید ، مطمئن شوید که پورت rcon توسط فایروال شما مسدود شده است ، در حالی که اینجا هستید ، می توانید خصوصیات پیش فرض سرور را نیز تنظیم کنید. برای اطلاعات بیشتر در مورد تنظیمات سرور ، به صفحه server.properties مراجعه کنید

ایجاد فایل Systemd Unit

به جای شروع دستی سرور 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

 

flags های Xmx و Xms را با توجه به منابع سرور خود اصلاح کنید. flag Xmx حداکثر میزان اختصاص حافظه (maximum memory allocation) را برای یک ماشین مجازی جاوا (JVM) تعریف می کند ، در حالی که Xms استخر  اختصاصی حافظه اولیه (initial memory allocation pool) را تعریف می کند. همچنین مطمئن شوید که از پورت rcon و رمز عبور صحیح استفاده می کنید. فایل را ذخیره کنین و systemd manager configuration مجدد راه اندازی کنین

sudo systemctl daemon-reload

اکنون می توانید سرور Minecraft را با تایپ کردن دستور زیر فعال کنید

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 است. اگر فایروال روی سیستم شما فعال شده است و می خواهید از خارج از شبکه لوکال خود به سرور Minecraft دسترسی پیدا کنید ، باید پورت 25565 را باز کنید

sudo ufw allow 25565/tcp

 

تنظیم Backups

در این بخش ، یک اسکریپت shell پشتیبان و cronjob ایجاد خواهیم کرد تا بطور خودکار از سرور 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

 

فایل را ذخیره کنید و اسکریپت را اجرا کنید

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

 

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

crontab -e

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

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

 

 

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

برای دسترسی به کنسول Minecraft ، از ابزار mcrcon استفاده کنید. شما باید میزبان ، پورت 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 از remote location ، مطمئن شوید که پورت rcon مسدود نشده است. اگر خکیشخ به کنسول Minecraft وصل می شوید ، به جای تایپ این دستور طولانی ، یک bash alias را ایجاد کنید.