بلاگ ابرفردوسی > آموزش سرور محاسبات سنگین : ساخت سرور ماینکرفت (Minecraft Server) با اینترنت ملی

ساخت سرور ماینکرفت (Minecraft Server) با اینترنت ملی

ساخت سرور ماینکرفت

برای هر عاشق جهانِ پیکسلی ماینکرفتی، این وضعیت پیش آمده که به‌محض ورود ۳ تا ۴ پلیر به بازی در یک مپ جذاب و لود هم‌زمان چند چانک (Chunk) سنگین، بازی شروع به لگ زدن کرده یا کامپیوتر به‌خاطر پردازش ش‍دید داغ کرده است؛ پدیده‌ای که ناشی از محدودیت‌های سخت‌افزاری سیستم در حالت لوکال است. اما راه‌حل این مشکل ساخت سرور ماینکرفت (Minecraft Server Setup) است که به زبان ساده یعنی راه‌اندازی یک هسته پردازشی مستقل (مبتنی بر جاوا) روی یک سیستم یا سرور اختصاصی، تا دنیای بازی بدون وابستگی به کلاینت شما، به‌صورت ۲۴ ساعته پردازش شود و پذیرای بازیکنان باشد.

برای ساخت سرور اختصاصی ماینکرفت باید مراحل زیر را طی کنید:

  1. نصب جاوا: متناسب با نسخه بازی، محیط Java JRE/JDK را نصب کنید (برای نسخه‌های جدید ۱.۲۰.۵ به بالا، حتماً به جاوا ۲۱ نیاز دارید).
  2. دانلود فایل سرور: فایل رسمی server.jar را از سایت اصلی ماینکرفت یا پلتفرم‌های بهینه‌تری مثل PaperMC دانلود کنید.
  3. پذیرش قوانین (EULA): فایل سرور را یک‌بار اجرا کنید تا پوشه‌ها ساخته شوند؛ سپس فایل eula.txt را باز کنید و مقدار آن را به true تغییر دهید.
  4. تنظیم فایل خصوصیات: فایل server.properties را باز کنید و برای ورود کلاینت‌های کرک‌شده ایرانی، گزینه online-mode را روی false بگذارید.
  5. اجرا و اتصال: سرور را ازطریق یک فایل اسکریپت (start script) اجرا کنید و با باز کردن پورت ۲۵۵۶۵ یا استفاده از یک آی‌پی ثابت، دوستانتان را به سرور متصل کنید.

در این مقاله به‌شکل کاملاً عملی یاد می‌گیریم که چطور سرور اختصاصی خودمان را در ویندوز و لینوکس (اوبونتو) بالا بیاوریم، فایل‌های تنظیمات آن را کانفیگ کنیم، پورت‌ها را در فایروال باز کنیم و با نصب پلاگین‌های کاربردی، یک دنیای بازی پایدار و بدون لگ برای کاربران ایرانی بسازیم.

سرور اختصاصی ماینکرفت چیست؟

سرور اختصاصی ماینکرفت در واقع یک برنامه تحت خط فرمان (کنسول متنی) است که هیچ رابط گرافیکی سنگینی ندارد. این ابزار را می‌توان روی یک سیستم مجزا یا سرورهای ابری روشن نگه داشت تا وظیفه‌ای جز پردازش ریاضی و شبکه بازی نداشته باشد. در این حالت:

  • جهان بازی ۲۴ ساعته فعال است؛ حتی اگر شما آفلاین باشید.
  • کلاینت بازی شما سبک‌تر اجرا می‌شود؛ چون بار محاسباتی مپ روی دوش هسته سرور است.
  • مدیریت ۱۰۰٪ فایل‌ها در دست خودتان است و برخلاف محدودیت‌های پلتفرم Realms، محدودیتی در نصب افزونه‌ها ندارید.

استفاده از معماری رسمی Java Edition server دست شما را برای پیاده‌سازی هر نوع ایده، شخصی‌سازی مپ و کاستومایزکردن مکانیزم‌های بازی کاملاً باز می‌گذارد.

پیش‌نیازهای نرم‌افزاری و سخت‌افزاری

قبل‌از اینکه به سراغ دانلود فایل‌ها بروید، باید بستر سیستم‌عامل خود را آماده کنید. بزرگ‌ترین گلوگاهی که ۹۰٪ کاربران هنگام راه اندازی سرور ماینکرفت با آن مواجه می‌شوند که خودش دلیل ارورهای عجیب کرش کنسول است، عدم تطابق نسخه جاوا با نسخه بازی است. ماینکرفت روی بستر جاوا اجرا می‌شود و هر آپدیت بزرگ بازی به معماری جدیدی از جاوا (JDK) نیاز دارد.

جدول تطبیق نسخه‌های ماینکرفت با نسخه Java

نسخه ماینکرفتنسخه جاوا (Java JDK)وضعیت پایداری روی سرور
نسخه‌های ۱.۱۲.۲ و قدیمی‌ترJava 8قدیمی اما مناسب مودپک‌های سنگین
نسخه‌های ۱.۱۷ تا ۱.۱۷.۱Java 16نسخه انتقالی
نسخه‌های ۱.۱۸ تا ۱.۲۰.۴Java 17بسیار رایج برای سرورهای پلاگین‌دار
نسخه‌های ۱.۲۰.۵ به بالا (مثل ۱.۲۱)Java 21اجباری (روی نسخه‌های قدیمی اصلاً اجرا نمی‌شود)
💡 ترفند کاربردی
اگر قصد دارید آخرین آپدیت‌های ماینکرفت را تجربه کنید، اصلاً به‌سراغ Java 8 یا Java 17 نروید. فایل سرورهای جدید برای اجرا از خط فرمان، مستقیماً کدهای جاوا ۲۱ را صدا می‌زنند و درصورت نبود آن، فوراً بسته می‌شوند.

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

در این بخش از آموزش ساخت سرور ماینکرفت جاوا، باید منطق سخت‌افزاری این بازی را درک کنید. پردازش اصلی جاوا در ماینکرفت تاحدزیادی به‌صورت تک‌هسته‌ای (Single-Thread Heavy) انجام می‌شود؛ یعنی فرکانس بالای یک هسته سی‌پی‌یو (مثلاً 3.5 GHz به بالا) برای جلوگیری از افت سرعت تیک سرور (TPS)، صد برابر مهم‌تر از داشتن یک پردازنده با ۲۴ هسته ضعیف است. همچنین میزان رم مستقیماً با تعداد چانک‌های باز شده در مپ (View Distance) رابطه مستقیم دارد.

سرور کوچک (۲ تا ۴ پلیر هم‌زمان):

  • حداقل ۲ گیگابایت رم (RAM)
  • ۱ هسته پردازنده با فرکانس بالا
  • حافظه SSD یا NVMe (برای لود سریع‌تر چانک‌ها)

سرور متوسط (۱۰ تا ۲۰ پلیر هم‌زمان + چند پلاگین پایه):

  • ۴ الی ۶ گیگابایت رم اختصاصی
  • ۲ هسته پردازنده قدرتمند

سرور بزرگ و سازمانی (بالای ۵۰ پلیر + مپ‌های شلوغ و پلاگین‌های مدیریت):

  • حداقل ۸ تا ۱۶ گیگابایت رم
  • ۴ هسته پردازنده اختصاصی زئون یا رایزن فرکانس بالا

روش‌های مختلف راه اندازی سرور ماینکرفت

بسته به اینکه چقدر بودجه دارید، دوستانتان کجا هستند و چقدر پایداری مپ برایتان مهم است، چهار لایه یا محیط مختلف برای بالا آوردن هسته بازی وجود دارد. شما می‌توانید اقدام به ساخت سرور ماینکرفت در ویندوز کنید که ساده‌ترین روش برای تست است، یا برای امنیت و پایداری بالاتر، به سراغ ساخت سرور ماینکرفت در لینوکس و توزیع‌های محبوبی مثل اوبونتو بروید.

اگر هدف شما راه اندازی سرور Minecraft بدون هاست خارجی و در محیط خانگی است، باید سیستم خود را مداوم روشن بگذارید؛ اما اگر مپ پایداری می‌خواهید، گزینه‌های تجاری روی میز هستند.

جدول مقایسه محیط‌های اجرای سرور ماینکرفت

پارامتر ارزیابیسیستم لوکال خانگیهاست‌های اشتراکی گیمسرور مجازی معمولیزیرساخت محاسبات ابری (HPC)
پینگ کاربران ایرانیعالی (فقط برای شخص شما)متوسط تا ضعیفبسته به موقعیت دیتاسنترفوق‌العاده پایین (زیر ۳۰ میلی‌ثانیه)
آپتایم و پایداری ۲۴ ساعتهضعیف (با خاموش شدن PC قطع می‌شود)خوبخوبعالی (تضمین پایداری سخت‌افزاری)
کنترل و دسترسی فنیکامل (روی سیستم خودتان)بسیار محدود (فقط پنل کاربری)کامل (دسترسی روت/SSH)کامل + قابلیت ارتقای آنی منابع
مقاومت در برابر لود مپضعیف (لگ شدید هنگام لود چانک)متوسطمتوسط (به‌دلیل اشتراک هسته پردازنده)عالی (به‌دلیل فرکانس بالای هسته)
مدل هزینه‌ایرایگان (فقط مصرف برق سیستم)اشتراک ماهانه ثابتاشتراک ماهانه ثابتپرداخت ساعتی و منعطف (براساس مصرف)

در بخش‌های بعدی مقاله وقتی وارد فاز اجرایی شویم، متوجه خواهید شد که چرا برای گیم حرفه‌ای، کانفیگ مستقیم روی لینوکس یا اوبونتو دست شما را برای بهینه‌سازی کدهای جاوا بازتر می‌کند.

آموزش ساخت سرور ماینکرفت جاوا (نسخه Vanilla و Paper)

مسیر جریان داده در سرور ماینکرفت

حالا که پیش‌نیازها را آماده کرده‌اید، نوبت به بخش اصلی یعنی بالا آوردن هسته بازی می‌رسد. برای ساخت سرور ماینکرفت، فرایند کلی کار در ویندوز و لینوکس شباهت زیادی به هم دارد. تفاوت اصلی در دستوراتی است که برای بیدار نگه‌داشتن سرور در پس‌زمینه استفاده می‌کنیم. در ادامه این مسیر را در ۳ گام کاملاً عملیاتی جلو می‌بریم.

گام اول- دانلود فایل Core سرور

برای شروع به فایل اصلی سرور با پسوند .jar نیاز دارید. در این مرحله با دو راهی بزرگی مواجه می‌شوید: دانلود نسخه رسمی و خام (Vanilla) از سایت رسمی ماینکرفت یا استفاده از یک فورک بهینه‌شده به نام PaperMC.

اگر می‌خواهید یک سرور پایدار داشته باشید، توصیه من بدون شک استفاده از PaperMC است. دلایل این برتری را در ادامه می‌خوانید:

  • بهینه‌سازی رم و پردازنده: وانیلای خام به‌شدت سنگین است و چانک‌ها را به‌صورت هم‌زمان و موازی پردازش نمی‌کند. پلتفرم Paper با استفاده از مکانیزم لود ناهمگام (Async Chunk Loading)، بار پردازشی را روی هسته‌های مختلف سی‌پی‌یو تقسیم می‌کند.
  • ثبات شاخص TPS: سرعت تیک سرور (Ticks Per Second) در ماینکرفت باید روی عدد ۲۰ بماند تا بازی لگ نزند. نسخه Paper حتی زیر هجوم شدید پلیرها هم تلاش می‌کند این عدد را حفظ کند.
  • پشتیبانی کامل از افزونه‌ها: برای نصب پلاگین روی سرور ماینکرفت، نسخه Vanilla عملاً فلج است و آپشنی به شما نمی‌دهد، اما Paper یک پوشه آماده برای بارگذاری تمام پلاگین‌های Spigot و Bukkit در اختیارتان می‌گذارد.

پس برای شروع، به سایت PaperMC بروید و آخرین بیلد پایدار متناسب با نسخه بازی خود را دانلود کنید.

گام دوم- اجرای اولیه، پوشه‌سازی و پذیرش قوانین EULA

یک پوشه (یا Folder) کاملاً مجزا و اختصاصی روی دسکتاپ یا دایرکتوری روت سرور خود بسازید. این کار برای ایزوله نگه داشتن فایل‌ها حیاتی است، چون سرور در اولین اجرا ده‌ها فایل لاگ و تنظیمات دیگر تولید می‌کند.

1. فایل دانلود شده را به این پوشه منتقل کنید و برای سادگی کار، اسم آن را به server.jar تغییر دهید.

2. پنجره خط فرمان (CMD در ویندوز یا Terminal در لینوکس) را در این پوشه باز کنید.

3. دستور زیر را تایپ کنید و اینتر بزنید تا سرور برای اولین‌بار به‌صورت مقدماتی لود شود:

java -jar server.jar nogui

4. کنسول پس‌از چند ثانیه با یک پیغام خطا بسته می‌شود یا متوقف خواهد شد. این کاملاً طبیعی است! اگر پوشه را نگاه کنید، فایل‌های جدیدی ساخته شده‌اند.

5. فایلی به نام eula.txt را باز کنید. قوانین موافقت‌نامه موجانگ مانع اجرای سرور شده است. عبارت eula=false را پیدا کنید و آن را به eula=true تغییر دهید و فایل را ذخیره کنید.

💡 ترفند کاربردی
در سیستم‌عامل ویندوز، گاهی به‌دلیل پنهان بودن پسوند فایل‌ها (File Name Extensions)، کاربران به اشتباه فایلی به نام eula.txt.txt می‌سازند و سرور باز هم ارور می‌دهد. حتماً از تب View در آپشن‌های تیک ویندوز، گزینه Extensions را فعال کنید تا پسوند واقعی فایل‌ها را ببینید.

گام سوم- نوشتن اسکریپت خودکار راه‌انداز (Start Script)

شما نمی‌توانید هربار برای ساخت Minecraft Server دستورات طولانی جاوا را دستی تایپ کنید. ازطرفی، اجرای مستقیم با دبل‌کلیک روی فایل jar، سرور را با حداقل رم (معمولاً ۱ گیگابایت) بالا می‌آورد که خیلی زود باعث کرش کردن بازی می‌شود. ما نیاز به یک فایل راه‌انداز داریم تا مقدار دقیق رم اختصاصی را به موتور جاوا دیکته کند.

بسته به سیستم‌عامل خود، یک فایل متنی خام در همان پوشه سرور بسازید و کدهای زیر را داخل آن قرار دهید:

۱- اسکریپت مخصوص ساخت سرور ماینکرفت در ویندوز (start.bat)

یک فایل متنی بسازید، کدهای زیر را در آن کپی کنید و موقع ذخیره، پسوند آن را از txt به bat تغییر دهید:

@echo off
java -Xmx2G -Xms2G -jar server.jar nogui
pause

۲- اسکریپت مخصوص ساخت سرور ماینکرفت در لینوکس (start.sh)

در ترمینال لینوکس (اوبونتو) فایل را با دستور nano start.sh بسازید و کدهای زیر را قرار دهید:

#!/bin/bash
java -Xmx2G -Xms2G -jar server.jar nogui

سپس با فشردن Ctrl+O و بعد Ctrl+X فایل را ذخیره کنید. حالا باید مجوز اجرای این اسکریپت را در لینوکس صادر کنید؛ پس این دستور را در ترمینال بزنید:

chmod +x start.sh

 کالبدشکافی کدهای اسکریپت راه‌انداز

  • Xmx2G: حداکثر رم تخصیص‌یافته به سرور را مشخص می‌کند (در اینجا ۲ گیگابایت. اگر سیستم شما رم بالاتری دارد، می‌توانید آن را به 4G یا 8G تغییر دهید).
  • Xms2G: رم اولیه شروع به کار سرور است. بهتر است این مقدار با مقدار حداکثر رم یکی باشد تا جاوا بی‌دلیل در طول بازی منابع را پس و پیش نکند و لگ ایجاد نشود.
  • nogui: مانع از بازشدن رابط گرافیکی سنگین و پیش‌فرض جاوا می‌شود تا تمام پهنای باند سخت‌افزار، صرف کنسول متنی و پردازش خالص بازی شود.

حالا کافی است روی فایل اسکریپت خود دبل‌کلیک کنید (یا در لینوکس دستور ./start.sh را بزنید) تا لودینگ کاملِ جهان بازی و ساخته شدن مپ را در محیط کنسول تماشا کنید. سرور شما اکنون آماده است، اما پلیرها هنوز نمی‌توانند به آن وصل شوند!

کانفیگ و تنظیمات در فایل server.properties

زمانی که برای اولین‌بار اسکریپت راه‌انداز سرور را اجرا می‌کنید، در پوشه اصلی بازی فایلی متنی به نام server.properties ساخته می‌شود. این فایل در واقع شناسنامه و مغز متفکر دنیای شما است؛ جایی‌که تمام قوانین فیزیکی، مکانیزم‌های گیم‌پلی و تنظیمات شبکه بازی در آن تعیین می‌شود. هربار که این فایل را تغییر می‌دهید، برای اعمال تنظیمات باید سرور را یک‌بار ری‌استارت کنید. در ادامه، مهم‌ترین پارامترهای این فایل را که تأثیر مستقیم روی گیم‌پلی و پرفورمنس سرور دارند، کالبدشکافی می‌کنیم.

کالبدشکافی پارامترهای اصلی تنظیمات سرور

محیط فایل متن server.properties ماینکرفت

برای ویرایش این فایل کافی است روی آن راست‌کلیک کنید و آن را با ابزاری مثل Notepad یا Nano باز کنید:

  • gamemode (پیش‌فرض: survival):

حالت اصلی بازی را برای بازیکنان جدید مشخص می‌کند. می‌توانید آن را روی survival (بقا)، creative (خلاقانه)، adventure (ماجراجویی) یا spectator (تماشاچی) تنظیم کنید.

  • difficulty (پیش‌فرض: easy):

درجه سختی جهان بازی را تعیین می‌کند که شامل مقادیر peaceful، easy، normal و hard است. این پارامتر مستقیماً روی میزان آسیب ماب‌ها (Mob Damage) و سرعت خالی شدن نوار گرسنگی تأثیر می‌گذارد.

  • max-players (پیش‌فرض: ۲۰):

سقف مجاز تعداد بازیکنانی که می‌توانند هم‌زمان در سرور حضور داشته باشند. بالابردن بی‌دلیل این عدد ترافیک شبکه را سنگین می‌کند؛ پس آن را دقیقاً براساس قدرت سیستم و تعداد دوستانتان تنظیم کنید.

  • server-port (پیش‌فرض: ۲۵۵۶۵):

پورت استاندارد شبکه برای بازی ماینکرفت. اگر قصد دارید چند سرور مختلف را روی یک آی‌پی یا سیستم ابری هم‌زمان بالا بیاورید، باید پورت‌های متفاوتی (مثل ۲۵۵۶۶) برای هرکدام تعریف کنید.

  • view-distance (پیش‌فرض: ۱۰):

این پارامتر مشخص می‌کند که هر بازیکن تا شعاع چند چانک (Chunk) از محیط اطراف خود را می‌تواند ببیند.

⚠️ هشدار خیلی مهم
مراقب View Distance باشید!
مقدار پیش‌فرض این گزینه ۱۰ است. اگر آن را روی اعدادی مثل ۱۶ یا ۳۲ بگذارید، با ورود هر پلیر جدید به سرور، حجم پردازش مپ به‌صورت نمایشی بالا می‌رود و پردازنده به‌سرعت زیر بار لودینگ چانک‌ها قفل می‌کند. برای سیستم‌های معمولی یا سرورهای شلوغ، تنظیم این عدد روی ۶ تا ۸ بهترین ترفند برای حذف لگ است.

ترفند ویژه کاربران ایرانی (حل ارور Invalid Session)

اگر بعداز ساخت سرور ماینکرفت تلاش کنید وارد بازی شوید، به احتمال ۹۹٪ با خطایی شبیه به Failed to verify username یا Invalid Session مواجه خواهید شد. دلیل فنی این چالش چیست؟ به‌صورت پیش‌فرض، پارامتر زیر در فایل تنظیمات فعال است:

online-mode=true

FALS کردن online-mode در تنظیمات سرور ماینکرفت

این یعنی هسته سرور در لحظه ورود هر بازیکن به سرورهای رسمی موجانگ (Mojang) متصل می‌شود تا قانونی بودن اکانت دلاری او را اعتبارسنجی کند. ازآنجاکه اکثر پلیرها در ایران از کلاینت‌های کرک‌شده و رایگان (مثل TLauncher) استفاده می‌کنند، سرور اجازه ورود به آن‌ها را نمی‌دهد.

راهکار: خط مربوطه را در فایل پیدا کنید و آن را دقیقاً به شکل زیر تغییر دهید:

online-mode=false

بااین‌کار، قفل سرور به روی کلاینت‌های کرک‌شده باز می‌شود و پلیرهای ایرانی می‌توانند بدون نیاز به اکانت پریمیوم و به‌راحتی وارد دنیای شما شوند.

باز کردن پورت سرور ماینکرفت و چالش بزرگ اتصال در ایران

تا اینجای کار، موتور سرور شما بدون مشکل روی سیستم محلی روشن شده است و خودتان می‌توانید با آی‌پي داخلی (127.0.0.1 یا localhost) به آن وصل شوید. اما هدف اصلی از ساخت سرور ماینکرفت، بازی گروهی با دوستان است. برای اینکه دیگران بتوانند از بستر شبکه اینترنت به سیستم شما متصل شوند، داده‌های بازی باید راهی برای عبور از مودم و فایروال سیستم شما داشته باشند. در این نقطه، بحث هماهنگی پورت‌ها شروع می‌شود.

در حالت استاندارد بین‌المللی، کل فرایند اتصال در سه لایه ساده خلاصه می‌شود:

  1. ثابت کردن آی‌پي داخلی: ابتدا باید در تنظیمات شبکه سیستم خود (ویندوز یا لینوکس)، آی‌پی محلی سیستم (مثلاً 192.168.1.15) را ثابت (Static) کنید تا با هربار خاموش و روشن‌شدن مودم، این آدرس تغییر نکند.
  2. تنظیم فایروال (Firewall): پورت استاندارد ماینکرفت یعنی 25565 را باید در فایروال سیستم‌عامل (Inbound Rules در ویندوز یا ابزار ufw در اوبونتو) باز کنید تا سیستم پکت‌های ورودی بازی را مسدود نکند.
  3. پورت فورواردینگ (Port Forwarding): باید وارد پنل مدیریت مودم خود (معمولاً آدرس 192.168.1.1) شوید، به بخش Port Forwarding یا NAT بروید و پورت 25565 (در هر دو حالت TCP و UDP) را به‌سمت آی‌پی داخلی سیستم خود هدایت کنید.

در نهایت با دادن آی‌پی عمومی (Public IP) خود به دوستانتان، آن‌ها می‌توانند به دنیای شما متصل شوند. اما متأسفانه این فرمول استاندارد، در ساختار شبکه اینترنت ایران با یک سد محکم برخورد می‌کند.

بحران CGNAT و بن‌بست پورت فورواردینگ در ایران

اگر تمام مراحل بالا را موبه‌مو اجرا کنید، احتمالاً متوجه می‌شوید که بقیه کماکان نمی‌توانند به سرور شما وصل شوند. دلیل این اتفاق، فرایندی فنی در زیرساخت شبکه اپراتورهای ایرانی (مخابرات، شاتل، همراه اول، ایرانسل و…) به نام CGNAT (Carrier-Grade NAT) است.

به‌دلیل کمبود شدید آی‌پی‌های عمومی نسخه ۴ (IPv4)، شرکت‌های ارائه‌دهنده اینترنت در ایران، یک آی‌پی عمومی واقعی را بین صدها خانه و مشترک به‌صورت اشتراکی تقسیم می‌کنند. این یعنی آی‌پی که مودم شما نشان می‌دهد با آی‌پی واقعی شما در اینترنت متفاوت است. در این حالت، باز کردن پورت سرور ماینکرفت در ایران روی مودم‌های خانگی عملاً غیرممکن است؛ چون شما کنترل پورت‌های لایه بالاترِ اپراتور را در دست ندارید.

چرا راهکارهایی مثل Ngrok یا Playit.gg پاسخ‌گو نیستند؟

پلیرها معمولاً برای دور زدن این مشکل به‌سراغ ابزارهای تونل‌زدن مثل Ngrok می‌روند. این ابزارها یک پورت مجازی به شما می‌دهند، اما ازآنجاکه سرورهای رایگان آن‌ها در خارج از کشور (اروپا یا آمریکا) قرار دارد، ترافیک بازی دوستان شما ابتدا به خارج از کشور رفته و دوباره به سیستم شما برمی‌گردد. نتیجه؟ پینگ سرور به بالای ۳۰۰ الی ۴۰۰ میلی‌ثانیه می‌رسد، پکت‌لاس (Packet Loss) شدیدی رخ می‌دهد و بازی عملاً غیرقابل‌تحمل و پر از لگ می‌شود.

چالش‌های اتصال، NAT و راهکار کاهش پینگ برای کاربران ایرانی

علاوه‌بر بحران CGNAT، سه فاکتور دیگر نیز وجود دارد که اجرای سرور ماینکرفت در ایران روی سیستم‌های خانگی را با چالش جدی روبرو می‌کند:

  1. نوع NAT کلاینت‌ها (NAT Type): محدودیت‌های شدید روی پروتکل UDP در شبکه ایران باعث می‌شود کلاینت‌ها با خطای Strict NAT مواجه شوند؛ پدیده‌ای که اجازه نمی‌دهد دو پلیر با پورت‌های بسته، کانکشن پایداری با یکدیگر برقرار کنند.
  2. نوسان ترافیک بین‌الملل: اگر دوست شما با اینترنت همراه اول بخواهد به سرور خانگی شما که روی بستر مخابرات است وصل شود، پکت‌های بازی گاهی مسیرهای طولانی را در هاب‌های داخلی طی می‌کنند که این امر پینگ را بی‌دلیل بالا می‌برد.
  3. سرعت آپلود محدود خانگی: برخلاف سرعت دانلود، سرعت آپلود اینترنت‌های خانگی در ایران (به‌ویژه ADSL) بسیار ناچیز است (معمولاً زیر ۲ مگابیت). این پهنای باند حتی برای آپلود داده‌های مپ برای ۲ نفر هم کافی نیست و پلیرها مدام در هوا معلق می‌مانند یا چانک‌ها برایشان لود نمی‌شود.

نتیجه‌گیری منطقی:

اگر به‌دنبال کاهش پینگ ماینکرفت برای کاربران ایرانی هستید و می‌خواهید عملیات راه اندازی سرور Minecraft بدون هاست خارجی اما پایدار را تجربه کنید، تنها راه چاره واقعی این است که هسته سرور را از روی کامپیوتر خانگی بردارید و آن را روی زیرساختی مستقر کنید که یک آی‌پی ثابت اختصاصی (Valid IP) در دیتاسنترهای داخل ایران داشته باشد. بااین‌کار، پینگ پلیرها به زیر ۳۰ میلی‌ثانیه می‌رسد و چالش پورت فورواردینگ برای همیشه حل خواهد شد.

تفاوت IP واقعی و IP اشتراکی

نصب پلاگین روی سرور ماینکرفت و توسعه ویژگی‌ها

وقتی پایه و بیس اصلی سرور را بالا آوردید، جهان شما دقیقاً شبیه به بازی‌های تک‌نفرۀ معمولی است. برای اینکه بتوانید به سرور خود امکاناتی مثل سیستم اقتصاد (Money)، ثبت‌نام پلیرها، قفل کردن صندوقچه‌ها برای جلوگیری از دزدی و ساخت رنک‌های مختلف (مثل Admin و VIP) را اضافه کنید، باید به‌سراغ توسعه بازی بروید و در اینجا با دو مفهوم کاملاً متفاوت روبرو خواهید شد: مود (Mod) و پلاگین (Plugin).

تفاوت مود و پلاگین در ماینکرفت چیست؟

بسیاری از گیمرهای تازه‌کار این دو مفهوم را با هم اشتباه می‌گیرند، اما تفاوت فنی آن‌ها در کلاینت (سیستم پلیر) مشخص می‌شود:

  • مودها (Mods): مکانیزم‌ها و المان‌های کاملاً جدیدی مثل ابزارها، اژدهای جدید یا ماشین‌آلات صنعتی را به بازی اضافه می‌کنند. بزرگ‌ترین محدودیت مود این است که هم سمت سرور و هم سمت تک‌تک پلیرها باید نصب باشد؛ یعنی اگر شما یک مودپک روی سرور بریزید، دوستانتان بدون نصب دقیق همان مودپک اصلاً نمی‌توانند وارد سرور شوند.
  • پلاگین‌ها (Plugins): فقط قوانین و قابلیت‌های بستر جاوا را در سمت سرور تغییر می‌دهند. بزرگ‌ترین مزیت نصب پلاگین روی سرور ماینکرفت این است که پلیرها نیاز به نصب هیچ چیز اضافی ندارند؛ آن‌ها با همان نسخه اصلی و خام ماینکرفت خود به سرور وصل می‌شوند، اما تمام قابلیت‌های جدید را در بازی می‌بینند.

توجه داشته باشید که پلاگین‌ها روی نسخۀ وانیلای خام (Vanilla) اجرا نمی‌شوند. همان‌طورکه در مراحل قبل گفتیم، اگر از پلتفرم بهینۀ PaperMC استفاده کرده باشید، به‌محض اولین اجرای موفقیت‌آمیز سرور، پوشه‌ای اختصاصی به نام plugins در دایرکتوری اصلی سرور شما ساخته می‌شود. برای نصب هر پلاگین، کافی است فایل  jar آن را دانلود کنید، در این پوشه بیندازید و سرور را یک‌بار ری‌استارت کنید.

۳ پلاگین مهم و استاندارد برای شروع کار سرور

۳ پلاگین مهم ماینکرفت

هزاران پلاگین در مارکت‌های مرجع (مثل SpigotMC و Modrinth) وجود دارد، اما برای یک سرور استاندارد، این ۳ مورد حکم نان شب را دارند و ساختار کلی مدیریت جهان شما را دگرگون می‌کنند:

  1. EssentialsX (مدیریت کدهای درون بازی): این ابزار بیش‌از صد دستور کاربردی مثل تلپورت (/tp)، ست کردن خانه (/sethome)، ایجاد کیت‌های خوش‌آمدگویی و کیک (Kick) یا بن‌کردن پلیرهای متخلف را به کنسول و بازی اضافه می‌کند.
  2. LuckPerms (سیستم دسترسی و رنک‌بندی): به‌صورت پیش‌فرض در ماینکرفت یا شما پلیر معمولی هستید یا ادمین (Op). پلاگین LuckPerms به شما اجازه می‌دهد گروه‌های مختلفی مثل VIP، پلیس، یا بیلدر بسازید و تعیین کنید هر گروه دقیقاً به چه دستوراتی دسترسی داشته باشد تا پلیرهای عادی نتوانند سرور را خراب کنند.
  3. WorldGuard (امنیت و حفاظت از مپ): با این پلاگین می‌توانید بخش‌های خاصی از نقشه (مثل لابی یا نقطه اسپاون سرور) را اصطلاحاً Claim یا حفاظت کنید تا پلیرها نتوانند بلاک‌های آنجا را بشکنند، آتش روشن کنند یا به یکدیگر آسیب بزنند (PVP Disable).

بهینه‌سازی سرور و رفع خطاهای رایج (کاهش لگ و کرش)

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

[Server thread/WARN]: Can't keep up! Is the server overloaded?

این هشدار جدی‌ترین نشانۀ افت کیفیت و پُر شدن منابع سیستم است. معنی ساده این ارور این است که سرور نتوانسته منطق بازی را در زمان استاندارد (۵۰ میلی‌ثانیه برای هر تیک) پردازش کند و سرعت تیک سرور (TPS) از عدد پایدار ۲۰ پایین‌تر آمده است. در این حالت، پلیرها به عقب پرتاب می‌شوند، بلاک‌ها پس‌از شکسته شدن دوباره سر جایشان برمی‌گردند و ماب‌ها در جا غیب و ظاهر می‌شوند.

ترفندهای فنی رفع لگ، کرش و ارور Overloaded

برای نجات سرور از خفگی و سنگینی جاوا، چک‌لیست زیر را پله‌پله روی کدهای اسکریپت و فایل‌های سرور اعمال کنید:

  1. اصلاح کدهای اسکریپت راه‌انداز (Launch Command):

به‌جای دستورات سادۀ تخصیص رم، از فلگ‌های بهینه‌سازی حافظه اوبونتو و ویندوز (معروف به کدهای Aikar) استفاده کنید. این کدها نحوه پاک‌سازی حافظه (Garbage Collection) در جاوا را هوشمند می‌کنند:

java -Xmx4G -Xms4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -jar server.jar nogui
  1. کاهش دستی شعاع لود مپ:

در فایل server.properties گزینه view-distance را روی اعدادی بین ۶ تا ۸ قفل کنید. این ترفند سهمگین‌ترین بار پردازش رم را از دوش سیستم برمی‌دارد.

  1. کنترل نرخ اسپاون ماب‌ها:

در پوشه کانفیگ پلاگین Paper، فایل paper-world-defaults.yml را باز کنید و سقف اسپاون حیوانات و هیولاها (Mob Spawn Limits) را کمی کاهش دهید تا تجمع اکانت‌های اسپانر باعث فلج شدن سی‌پی‌یو نشود.

قانون مهم- آپدیت منظم و سیستم بکاپ‌گیری

پلاگین‌ها و هسته سرور دائماً توسط توسعه‌دهندگان بهینه‌سازی می‌شوند؛ بنابراین همیشه مطمئن شوید که نسخه‌های پایدار و هماهنگ را استفاده می‌کنید. ازطرفی، یک کرش ناگهانی یا قطعی برق در سیستم‌های لوکال می‌تواند کل فایل‌های منطقه (Region Files) مپ شما را خراب (Corrupt) کند.

💡 ترفند کاربردی
قبل‌از نصب هر پلاگین جدید یا دستکاری فایل‌های کانفیگ، تمام پوشه سرور را زیپ کنید و بکاپ بگیرید. همچنین پیشنهاد می‌شود از پلاگین‌های بکاپ‌گیری خودکار مثل DriveBackupV2 استفاده کنید تا به‌صورت زمان‌بندی‌شده، از کل جهان بازی در فضاهای ریموت نسخه پشتیبان تهیه کند.

بهترین سناریوی اجرای سرور ماینکرفت با اینترنت ملی

تا این مرحله متوجه شدیم که تکیه بر اینترنت خانگی و مودم به‌دلیل چالش‌های عمیق لایه شبکه (مانند محدودیت پهنای باند آپلود و CGNAT) عملاً راه‌اندازی سرور را برای بیشتر از دو یا سه نفر غیرممکن می‌کند. ازطرفی، خرید هاست‌های خارجی هم علاوه‌بر هزینه‌های چندبرابری، کابوس پینگ بالا و قطعی‌های ناگهانی در زمان اختلالات شبکه را به‌همراه دارد. به همین دلیل، ساخت سرور ماینکرفت روی سرور ایران پایدارترین و منطقی‌ترین تصمیم برای کامیونیتی‌های گیمینگ داخلی است.

البته وقتی صحبت از راه اندازی ماینکرفت با اینترنت ملی می‌شود، هدف این است که سرور بازی در قوی‌ترین دیتاسنترهای داخل کشور مستقر باشد. با این فرمول:

  • پلیرها حتی با اینترنت داخلی و در زمان محدودیت‌های وب بین‌الملل، بدون دیسکانکت شدن به بازی ادامه می‌دهند.
  • پینگ بازی برای تمام کاربران ایرانی به زیر ۳۰ میلی‌ثانیه می‌رسد که برای بازی‌های آنلاین یک رویاست.
  • فرایند رفع مشکل اتصال به سرور ماینکرفت در اینترنت ملی به‌طور کامل حل می‌شود؛ چرا که پکت‌های بازی نیازی به خروج از مرزهای کشور ندارند.

اما یک اشتباه رایج در میان گیمرها این است که ماینکرفت را یک بازی پیکسلی ساده و سبک می‌دانند. واقعیت این است که پردازش کدهای جاوا در ماینکرفت، به‌ویژه زمانی که پلیرها ترابری سریع دارند، فارم‌های سنگین ردستون می‌سازند یا چانک‌های جدید تولید می‌کنند، دست‌کمی از یک دیتابیس بزرگ سازمانی ندارد. موتور بازی برای پردازش تیک‌ها (TPS) به‌شدت به فرکانس تک‌هسته‌ای پردازنده و سرعت خواندن و نوشتن دیسک وابسته است. پس به‌منظور ساخت بهترین سرور برای ماینکرفت در ایران، شما به یک ماشین معمولی نیاز ندارید؛ بلکه به یک موتور پردازش ابری تخصصی نیاز دارید.

برای پاسخ به این نیاز زیرساختی، پلتفرم ابری فردوسی ماشین‌های پردازشی خود را در لایه سرور محاسبات سنگین (HPC) پیکربندی کرده است تا قفل لگ‌های سخت‌افزاری را برای همیشه بشکند.

مزایای اختصاصی ابر فردوسی برای سرور ماینکرفت

ویژگی سخت‌افزاری و ساختاریتأثیر مستقیم روی عملکرد سرور بازی
پردازنده‌های AMD EPYC و Intel Xeonتضمین بالاترین فرکانس هسته برای پردازش روان ردستون‌ها و منطق ماب‌ها بدون افت TPS
دیسک‌های پرسرعت NVMe اختصاصیبارگذاری آنی و بدون لودینگ چانک‌های مپ، حتی زمانی‌که پلیرها با سرعت بالا پرواز می‌کنند.
رم‌های DDR4 با منابع ۱۰۰٪ اختصاصیجلوگیری از کرش‌های معروف جاوا (OOM) به‌دلیل عدم اشتراک‌گذاری رم با سایر کاربران
مدل پرداخت ساعتیفقط به‌ازای ساعت‌هایی که با دوستانتان بازی می‌کنید هزینه می‌دهید؛ زمان خواب یا امتحانات، سرور را خاموش کنید تا هزینه صفر شود!
تحویل آنی با منابع دلخواهبدون معطلی و بدون نیاز به کانفیگ‌های پیچیده لینوکس، ماشین ابری خود را تحویل بگیرید.

علاوه‌بر موارد بالا، به‌محض ثبت‌نام در ابر فردوسی، ۱۰۰ هزارتومان اعتبار رایگان در حساب شما شارژ می‌شود و می‌توانید باخیال راحت و بدون ریسک مالی، تست کامل هاب گیمینگ، کانفیگ پلاگین‌ها و بررسی پینگ‌ها را انجام دهید.

محاسبات سنگین

جمع‌بندی

ساخت سرور ماینکرفت با اینترنت ملی و سیستم خانگی -برخلاف ظاهر ساده‌اش- یک پروژه مهندسی زیرساخت کوچک است. در این مقاله یاد گرفتیم که چطور بستر نسخه جاوا ۲۱ را آماده کنیم، چطور با پذیرش قوانین EULA هسته پلتفرم بهینۀ PaperMC را استارت بزنیم و کدهای راه‌انداز رم را برای جلوگیری از خفگی کنسول اصلاح کنیم. همچنین دیدیم که چرا پورت فورواردینگ مودم‌های خانگی در ترافیک ایران به بن‌بست CGNAT می‌خورد و چطور مهاجرت به ابر می‌تواند این گره را باز کند.

حالا نقشه راه در دستان شما است. چه به‌دنبال یک محیط دنج و چندنفره با دوستانتان باشید و چه قصد ساخت یک مینی‌گیم هاب بزرگ را داشته باشید، زیرساخت حرف اول و آخر را می‌زند.

تابه‌حال برای اجرای سرور ماینکرفت با چه ارورهایی در کنسول مواجه شده‌اید؟ آیا چالش پینگ بالا با Ngrok را تجربه کرده‌اید؟ سوالات فنی و تجربیات خود را در بخش دیدگاه‌ها بنویسید تا با هم کدهایتان را دیباگ کنیم!

منابع:
Minecraft | docs.papermc | help.minecraft | oracle | papermc | minecraft.fandom

سؤالات متداول

چگونه سرور ماینکرفت بسازیم که کلاینت‌های کرک شده (مثل تی‌لانچر) هم بتونند وصل بشن؟

کافی است در پوشه اصلی سرور، فایل server.properties را با یک ادیتور باز کنید، خط مربوط به پارامتر online-mode=true را پیدا کرده و مقدار آن را به false تغییر دهید. سپس سرور را ری‌استارت کنید.

مراحل ساخت سرور ماینکرفت بدون هاست خارجی به چه صورت است؟

برای راه‌اندازی سریع این ۵ مرحله را دنبال کنید:
جاوا: نسخه متناسب با بازی (ترجیحاً Java 21) را نصب کنید.
هسته سرور: فایل jar سرور (Vanilla یا PaperMC) را در یک پوشه اختصاصی دانلود کنید.
تأیید EULA: فایل را یک‌بار اجرا کنید، سپس در فایل eula.txt مقدار را به true تغییر دهید.
تنظیمات کرک: در فایل server.properties گزینه online-mode را روی false بگذارید.
اسکریپت اجرا: یک فایل start.bat یا start.sh برای تخصیص رم بسازید و سرور را روشن کنید.

چرا کنسول سرور ارور Can’t keep up! Is the server overloaded می‌دهد؟

این ارور نشان‌دهنده افت پایداری تیک‌های سرور (TPS) به‌دلیل کمبود منابع سخت‌افزاری است. برای رفع آن، رم تخصیص‌یافته در اسکریپت راه‌انداز را افزایش دهید، پارامتر view-distance را در تنظیمات روی عدد ۶ یا ۷ بگذارید و از فلگ‌های بهینه‌سازی جاوا (Aikar’s Flags) استفاده کنید.

چرا دوستانم باوجود انجام پورت فورواردینگ مودم، باز هم نمی‌توانند به سرور خانگی من وصل شوند؟

دلیل اصلی این مشکل، سیستم CGNAT در اپراتورهای ایرانی است که به شما آی‌پی عمومی واقعی اختصاص نمی‌دهد. برای حل قطعی این چالش بدون نابود شدن پینگ (توسط Ngrok)، باید هسته سرور را روی یک سرور مجازی یا ابری با آی‌پی ثابت داخلی مستقر کنید.

تفاوت نسخه سرور Vanilla با نسخه PaperMC در چیست؟

نسخه Vanilla هسته رسمی و خام بازی است که بهینه‌سازی سخت‌افزاری ضعیفی دارد و از پلاگین‌ها پشتیبانی نمی‌کند. درمقابل، PaperMC یک فورک بهینه‌شده است که بار پردازش مپ را به‌صورت موازی روی هسته‌های سی‌پی‌یو تقسیم می‌کند، لگ را به‌شدت کاهش می‌دهد و یک پوشه آماده برای نصب انواع پلاگین‌ها در اختیارتان می‌گذارد.

برای ساخت سرور ماینکرفت چند گیگ رم و چه مشخصاتی لازم است؟

میزان رم کاملاً به تعداد بازیکنان هم‌زمان و حجم پلاگین‌ها بستگی دارد:
رم (RAM): برای بازی دنج با دوستان (۲ تا ۴ نفر) ۲ گیگابایت رم کافی است. برای سرورهای معمولی همراه با پلاگین، ۴ تا ۶ گیگابایت و برای کامیونیتی‌های بزرگ بالای ۸ گیگابایت رم اختصاصی نیاز دارید.
پردازنده (CPU): پردازش ماینکرفت تک‌هسته‌ای (Single-Thread) است؛ بنابراین فرکانس بالای یک هسته (مثلاً 3.5 GHz به بالا) بسیار مهم‌تر از تعداد هسته‌های پردازنده است.
دیسک (Disk): حواستان باشد که دیسک‌های قدیمی HDD با لود هم‌زمان چانک‌ها سرور را فلج می‌کنند؛ استفاده از حافظه NVMe اجباری است.

نسخه مناسب Java برای Minecraft Server چیست و چرا سرور بالا نمی‌آید؟

بزرگ‌ترین عامل کرش کردن سرور در اولین اجرا، عدم تطابق نسخه جاوا با بازی است:
ماینکرفت ۱.۱۲ و قدیمی‌تر به Java 8 نیاز دارند.
نسخه‌های ۱.۱۷ تا ۱.۲۰.۴ با Java 17 پایدار می‌شوند.
نسخه‌های جدید ۱.۲۰.۵ به بالا (مثل نسخه ۱.۲۱) حتماً و بدون تعارف به Java 21 نیاز دارند.
نشانه خطا: اگر در خط فرمان با ارور UnsupportedClassVersionError مواجه شدید، یعنی نسخه جاوای سیستم شما قدیمی‌تر از هسته سرور است و باید آپدیت شود.

چرا دوستانم نمی‌توانند به سرور خانگی من وصل شوند؟ (حل ارور Failed to connect)

اگر تنظیم online-mode=false را انجام داده‌اید اما کماکان دوستانتان پشت درِ سرور می‌مانند، با دو بن‌بست شبکه خانگی روبرو هستید:
قفل فایروال: پورت 25565 در فایروال سیستم شما (ویندوز یا لینوکس) باز نیست و پکت‌های شبکه را بلاک می‌کند.
بحران CGNAT ایران: اپراتورهای ایرانی اینترنت خانگی (مخابرات، همراه اول، ایرانسل و…) به‌دلیل کمبود آی‌پي، یک IP عمومی را بین صدها مشترک تقسیم می‌کنند. در این حالت، Port Forwarding روی مودم خانگی عملاً کار نمی‌کند و ابزارهایی مثل Ngrok هم پینگ شما را به بالای ۳۰۰ میلی‌ثانیه می‌رسانند. تنها راهکار پایداری که این گره را باز می‌کند، انتقال فایل‌های سرور به یک زیرساخت ابری با IP ثابت اختصاصی است.

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

بله، کاملاً ممکن و اتفاقاً بهینه‌ترین سناریو برای پلیرهای داخل کشور است. وقتی سرور را روی دیتاسنترهای داخلی پیاده‌سازی می‌کنید، گیمرها حتی در زمان اختلالات وب بین‌الملل و روی شبکه ملی اینترنت (اینترنت ملی) با پینگ فوق‌العاده پایین (زیر ۳۰ میلی‌ثانیه) و بدون پکت‌لاس بازی می‌کنند.

یاسین اسدی

اگه می‌خوای زندگیت تغیر کنه کتاب نخون؛ نوشته‌های منو بخون!
پست های مرتبط

ورک‌استیشن مهندسی (Workstation) چیست؟

ورک‌استیشن مهندسی (Engineering Workstation) به سیستمی گفته می‌شود که به‌طور اختصاصی برای پردازش‌های سنگین و محاسبات پیچیده مهندسی طراحی شده است. برخلاف کامپیوترهای خانگی معمولی، این سیستم‌ها با برخورداری از سخت‌افزارهای تخصصی مانند کارت گرافیک‌های دارای گواهی…

آموزش افزایش سرعت پایتون تا ۱۰ برابر؛ راهنمای جامع بهینه‌سازی python

برای دستیابی به پردازش‌های سریع و افزایش سرعت پایتون، نمی‌توان صرفاً به مفسر استاندارد و کدهای اولیه اکتفا کرد. پایتون به دلیل ماهیت مفسری و محدودیت‌های قفل مفسر سراسری (GIL)، در پردازش‌های سنگین محاسباتی ذاتاً کندتر از…

تبدیل فایل اتوکد به پی دی اف (DWG to PDF)

تبدیل فایل اتوکد به پی دی اف (Convert AutoCAD to PDF) فرایندی است که طی آن نقشه‌های طراحی‌شده با فرمت‌های DWG یا DXF به فایلی استاندارد و قابل مشاهده در تمام دستگاه‌ها تبدیل می‌شوند. سریع‌ترین و دقیق‌ترین…

۲۹ فروردین ۱۴۰۵
0 0 رای ها
به مقاله امتیاز بدید
0 نظرات