راهنمای عیبیابی مشکلات رایج سرور RedM شامل خطاهای کلید لایسنس، نمایش در مرورگر سرور، خرابی ریسورسها، اتصال کلاینتها، مشکلات دیتابیس و بهینهسازی عملکرد. برای دستورالعملهای راهاندازی اولیه، راهنمای راهاندازی سرور RedM ما را مشاهده کنید.
خطاهای کلید لایسنس
مشکلات کلید لایسنس رایجترین مشکل هنگام راهاندازی یک سرور جدید RedM هستند. در اینجا خطاهای معمول و راهحلهای آنها آمده است:
"Invalid license key" یا "Could not authenticate"
| علت | راهحل |
|---|---|
| کلید لایسنس اشتباه تایپ شده یا فاصلههای اضافی دارد | کلید را مستقیماً از Keymaster کپی کنید. هرگونه فاصله ابتدایی/انتهایی را از متغیر Startup CFX_LICENSE در GPanel یا خط sv_licenseKey در server.cfg حذف کنید. |
| عدم تطابق آدرس IP | کلید برای IP متفاوتی نسبت به IP واقعی سرور شما ثبت شده است. به Keymaster بروید، IP ثبت شده را بررسی کنید و آن را با IP سرور نمایش داده شده در GPanel بهروز کنید. |
| کلید هم در GPanel و هم در server.cfg با مقادیر متفاوت تنظیم شده | مطمئن شوید کلید یکسان است. بهتر است آن را در متغیر Startup GPanel تنظیم کنید و اجازه دهید egg آن را به سرور ارسال کند. اگر GPanel این کار را انجام میدهد، sv_licenseKey را از server.cfg حذف یا کامنت کنید. |
| مشکل حساب Cfx.re یا کلید لغو شده | وارد Keymaster شوید و بررسی کنید که کلید هنوز فعال است. در صورت حذف یا انقضای کلید قدیمی، یک کلید جدید بسازید. |
| سرویس Keymaster به طور موقت از دسترس خارج شده | صفحه وضعیت Cfx.re را برای قطعیها بررسی کنید. صبر کنید و بعداً دوباره تلاش کنید. |
سرور در مرورگر ظاهر نمیشود
اگر سرور شما در حال اجراست اما بازیکنان نمیتوانند آن را در مرورگر سرور RedM پیدا کنند:
چکلیست
- حداقل ۵ دقیقه صبر کنید. پس از راهاندازی، سرور نیاز به زمان برای ثبت در لیست اصلی سرورهای Cfx.re دارد. سرورهای جدید ممکن است چند دقیقه طول بکشد تا ظاهر شوند.
- بررسی کنید کلید لایسنس معتبر باشد. سرور بدون کلید لایسنس کارآمد فهرست نخواهد شد. کنسول سرور را برای خطاهای مربوط به لایسنس بررسی کنید.
- پیکربندی نقطه اتصال را بررسی کنید. مطمئن شوید
endpoint_add_tcpوendpoint_add_udpدرserver.cfgاز پورت صحیح استفاده میکنند:
پورت باید با پورت تخصیص داده شده در GPanel مطابقت داشته باشد.endpoint_add_tcp "0.0.0.0:30120" endpoint_add_udp "0.0.0.0:30120" - تنظیمات "sv_master1" یا لیستشدن را بررسی کنید. مطمئن شوید که به طور تصادفی سرور را طوری تنظیم نکردهاید که خود را فهرست نکند. نباید
sv_master1 ""در پیکربندی شما باشد (این ثبت در لیست اصلی را غیرفعال میکند). - بررسی کنید سرور واقعاً در حال اجراست. کنسول GPanel را بررسی کنید. اگر سرور کرش کرده یا متوقف شده باشد، در مرورگر ظاهر نخواهد شد.
- اتصال مستقیم را امتحان کنید. حتی اگر سرور در مرورگر نباشد، اتصال مستقیم باید کار کند. از بازیکن بخواهید F8 را در RedM فشار دهد و تایپ کند:
connect YOUR_SERVER_IP:PORT
http://YOUR_SERVER_IP:PORT/info.json در مرورگر وب بروید. اگر سرور در حال اجرا و قابل دسترسی باشد، یک پاسخ JSON با اطلاعات سرور برمیگرداند.
خرابیهای بارگذاری ریسورس
خطاهای ریسورس هنگام افزودن اسکریپتها یا فریمورکهای جدید به سرور شما رایج هستند. در اینجا رایجترین مشکلات آمده است:
"Could not find resource [resource_name]"
- پوشه ریسورس در دایرکتوری
resources/وجود ندارد یا در مکان نادرستی قرار دارد. - نام پوشه با نام استفاده شده در
ensureمطابقت ندارد. نام ریسورسها به حروف بزرگ و کوچک حساس هستند. - رفع: بررسی کنید پوشه ریسورس وجود دارد و نام در
server.cfgدقیقاً مطابقت دارد. از مدیریت فایل GPanel یا SFTP برای بررسی استفاده کنید.
"Failed to load resource [resource_name]: manifest error"
- فایل
fxmanifest.luaیا__resource.luaریسورس خطای سینتکسی دارد. - مانیفست به فایلهایی اشاره میکند که در پوشه ریسورس وجود ندارند.
- رفع: فایل مانیفست را باز کنید و غلطهای تایپی، کاماهای گم شده یا ارجاع به فایلهای ناموجود را بررسی کنید. کنسول سرور را برای شماره خط خاص خطا بررسی کنید.
"Error loading script [filename]: [error details]"
- یک فایل Lua، C# یا JavaScript درون ریسورس خطای سینتکسی یا خطای زمان اجرا دارد.
- رفع: پیام خطای کامل را در کنسول بخوانید. شامل نام فایل و شماره خط خواهد بود. علل رایج شامل:
- وابستگیهای گم شده (ریسورس دیگری که باید اول بارگذاری شود)
- ریسورس قدیمی که با نسخه فعلی سرور RedM سازگار نیست
- مقادیر پیکربندی نادرست در فایل پیکربندی ریسورس
مشکلات ترتیب بارگذاری ریسورس
ریسورسها در server.cfg به ترتیبی که ظاهر میشوند بارگذاری میشوند. اگر ریسورسی به ریسورس دیگری وابسته باشد (مثلاً vorp_inventory به vorp_core وابسته است)، وابستگی باید اول فهرست شود:
# Correct order - dependencies first
ensure oxmysql
ensure vorp_core
ensure vorp_inventory
ensure vorp_stores
# Wrong order - will cause errors
# ensure vorp_inventory <-- depends on vorp_core
# ensure vorp_core <-- loaded too late
مشکلات اتصال کلاینت
وقتی بازیکنان نمیتوانند به سرور شما متصل شوند:
"Connection timed out" / "Failed to connect"
| علت | راهحل |
|---|---|
| سرور در حال اجرا نیست | کنسول GPanel را بررسی کنید تا مطمئن شوید سرور آنلاین است و کرش نکرده. |
| IP یا پورت اشتباه | بررسی کنید بازیکن از IP و پورت صحیح از GPanel استفاده میکند. به نحوه یافتن IP و پورت سرور مراجعه کنید. |
| پیکربندی نادرست نقطه اتصال | مطمئن شوید endpoint_add_tcp و endpoint_add_udp در server.cfg از پورت 0.0.0.0:PORT استفاده میکنند که PORT با GPanel مطابقت دارد. |
| سرور پر است | بررسی کنید آیا sv_maxclients به حد رسیده است. اگر پلن میزبانی شما اجازه میدهد، مقدار را افزایش دهید. |
"Connection rejected by server"
- رمز عبور سرور: اگر
sv_passwordتنظیم شده باشد، بازیکن باید رمز عبور صحیح را وارد کند. - ریسورس لیست سفید/لیست مجاز: اگر یک ریسورس لیست سفید فعال دارید، بازیکن باید قبل از اتصال تأیید شود.
- مسدودیت: ممکن است بازیکن مسدود شده باشد. لیست مسدودی یا دیتابیس خود را برای شناسههای آنها بررسی کنید.
کرش کلاینت هنگام اتصال
- یک ریسورس روی سرور دادههای نادرست ارسال میکند یا یک خطای اسکریپت سمت کلاینت دارد که باعث کرش کلاینت میشود.
- رفع: ریسورسهای اخیراً اضافه شده را یکی یکی غیرفعال کنید تا ریسورس مشکلساز را شناسایی کنید. کنسول سرور را برای خطاها هنگام اتصال کلاینت بررسی کنید.
- مطمئن شوید کلاینت RedM بازیکن بهروز است.
خطاهای "Could not download file"
- سرور سعی دارد یک فایل بزرگ (مانند یک دارایی استریمینگ) ارسال کند که از حد انتقال فراتر میرود یا اتصال ناپایدار است.
- رفع: حجم داراییهای استریم شده را کاهش دهید، در صورت پشتیبانی از CDN/میزبانی خارجی برای فایلهای بزرگ استفاده کنید، یا از بازیکن بخواهید دوباره اتصال برقرار کند.
مشکلات دیتابیس (MySQL / oxmysql)
اکثر فریمورکهای نقشآفرینی RedM از MySQL برای ذخیرهسازی دادههای پایدار استفاده میکنند. رایجترین رابط دیتابیس oxmysql است.
خطاهای عدم اتصال
اگر oxmysql (یا رابط MySQL دیگری) نتواند متصل شود، موارد زیر را بررسی کنید:
# Typical oxmysql connection string in server.cfg
set mysql_connection_string "mysql://user:password@host:3306/database_name?charset=utf8mb4"
| خطا | راهحل |
|---|---|
ECONNREFUSED یا "Connection refused" |
سرور MySQL در حال اجرا نیست، هاست/پورت اشتباه است، یا سرور MySQL اتصالات خارجی را نمیپذیرد. هاست، پورت و آنلاین بودن سرور دیتابیس را تأیید کنید. |
ER_ACCESS_DENIED_ERROR |
نام کاربری یا رمز عبور در رشته اتصال اشتباه است. اعتبارنامهها را در پنل مدیریت دیتابیس خود دوباره بررسی کنید. |
ER_BAD_DB_ERROR |
نام دیتابیس وجود ندارد. ابتدا دیتابیس را از طریق پنل مدیریت دیتابیس خود (phpMyAdmin و غیره) بسازید. |
ETIMEDOUT |
سرور دیتابیس غیرقابل دسترسی است. بررسی کنید آیا قوانین فایروال اتصال را مسدود میکنند یا هاست دیتابیس صحیح است. |
| "Too many connections" | دیتابیس به حداکثر محدودیت اتصال رسیده است. این میتواند اتفاق بیفتد اگر ریسورسها اتصالات را به درستی نمیبندند، یا اگر محدودیت خیلی پایین است. سرور را ریاستارت کنید و تنظیم max_connections MySQL خود را بررسی کنید. |
localhost یا 127.0.0.1 به عنوان هاست استفاده کنید. اگر روی سرورهای مختلف هستند، از آدرس IP سرور دیتابیس استفاده کنید و مطمئن شوید کاربر MySQL دسترسی اتصال از راه دور دارد.
جداول گم شده یا خطاهای اسکیما
فریمورکهای نقشآفرینی اغلب نیاز دارند جداول دیتابیس قبل از کارکرد تنظیم شوند:
- مستندات فریمورک یا مخزن GitHub آن را برای فایلهای ایمپورت SQL بررسی کنید (معمولاً با نام
database.sql،schema.sqlیا مشابه). - فایل SQL را با استفاده از phpMyAdmin یا یک کلاینت MySQL در دیتابیس خود ایمپورت کنید.
- برخی فریمورکها در اولین اجرا به صورت خودکار جداول را ایجاد میکنند. مطمئن شوید کاربر دیتابیس دسترسی
CREATE TABLEدارد.
مشکلات عملکرد
اگر سرور RedM شما تأخیر، نرخ تیک پایین یا عملکرد ضعیف عمومی دارد:
شناسایی مشکلات عملکرد
کنسول سرور را برای هشدارهای عملکرد بررسی کنید. سرورهای RedM نرخ تیک حدود ۳۰ تا ۶۴ تیک در ثانیه را هدف قرار میدهند. میتوانید این را با موارد زیر نظارت کنید:
- داشبورد txAdmin: اگر txAdmin موجود است، معیارهای عملکرد سرور را در زمان واقعی نمایش میدهد.
- کنسول سرور: مراقب هشدارهای "slow tick" یا "resource hitch" باشید.
- دستور resmon:
resmon 1را در کنسول سرور (یا کنسول F8) تایپ کنید تا مانیتور ریسورس فعال شود که زمان CPU هر ریسورس را نشان میدهد.
راهحلهای رایج عملکرد
| مشکل | راهحل |
|---|---|
| استفاده بالای CPU از یک ریسورس خاص | از resmon 1 برای شناسایی ریسورس استفاده کنید. جایگزین بهینهتری را در نظر بگیرید، یا با توسعهدهنده ریسورس تماس بگیرید. |
| تعداد بیش از حد ریسورسهای بارگذاری شده | هر ریسورس منابع سرور مصرف میکند. لیست ریسورسهای خود را بررسی کنید و هر ریسورسی که استفاده نمیشود یا تکراری است را حذف کنید. |
| گلوگاه کوئری دیتابیس | کوئریهای کند یا بدون ایندکس دیتابیس میتوانند باعث وقفه سرور شوند. هشدارهای کوئری کند oxmysql را در کنسول بررسی کنید. ایندکس به ستونهایی که مکرراً جستجو میشوند اضافه کنید. |
| تعداد بالای بازیکنان باعث تأخیر شده | sv_maxclients را به سطحی کاهش دهید که سختافزار سرور شما توانایی مدیریت آن را دارد. ارتقای پلن میزبانی خود را برای منابع بیشتر در نظر بگیرید. |
| محدودیت موجودیتهای OneSync | تعداد بیش از حد موجودیتهای ایجاد شده (پدها، وسایل نقلیه، اشیاء) میتواند عملکرد را کاهش دهد. از ریسورسهایی استفاده کنید که موجودیتهای استفاده نشده را پاکسازی میکنند. |
| نشت حافظه | برخی ریسورسهای با کدنویسی ضعیف به مرور زمان حافظه نشت میکنند. استفاده از RAM سرور را در GPanel نظارت کنید. ریاستارت منظم سرور (هر ۶ تا ۱۲ ساعت) میتواند این مشکل را کاهش دهد. |
روشهای توصیه شده
- ریاستارت خودکار برنامهریزی کنید هر ۶ تا ۱۲ ساعت با استفاده از قابلیت زمانبندی GPanel یا txAdmin برای پاکسازی مشکلات انباشته حافظه و موجودیت.
- ریسورسها را بهروز نگه دارید تا از رفع اشکالات و بهینهسازیهای عملکرد بهرهمند شوید.
- از عملکرد تکراری اجتناب کنید — دو ریسورس که کار یکسانی انجام میدهند (مثلاً دو سیستم آب و هوا) اجرا نکنید.
- ریسورسهای جدید را روی سرور آزمایشی تست کنید (یا با تعداد بازیکن کم) قبل از استقرار روی سرور اصلی خود.
- معیارهای سرور را به طور منظم نظارت کنید از طریق GPanel یا txAdmin تا مشکلات را زودتر شناسایی کنید.
نکات عمومی عیبیابی
- همیشه خروجی کنسول سرور را بخوانید. تقریباً هر خطا شامل پیامی در کنسول است که به شما میگوید چه اشتباهی رخ داده و کجا.
- پس از تغییرات پیکربندی سرور را ریاستارت کنید. اکثر تغییرات در
server.cfgنیاز به ریاستارت کامل سرور برای اعمال دارند. - ریسورسها را یکی یکی غیرفعال کنید تا مشکلات را جدا کنید. خطوط
ensureرا درserver.cfgبا#کامنت کنید. - قبل از اعمال تغییرات پشتیبان نگه دارید از پیکربندیهای کارآمد. قبل از بهروزرسانیهای بزرگ،
server.cfgو دیتابیس خود را دانلود کنید. - انجمنها و مستندات Cfx.re را بررسی کنید در docs.fivem.net برای مستندات رسمی که هم برای FiveM و هم RedM اعمال میشود.
- سازگاری ریسورس را بررسی کنید با نسخه سرور خود. ریسورسهای ساخته شده برای نسخههای قدیمیتر ممکن است با بیلدهای فعلی RedM کار نکنند.
مقالات مرتبط
- راهنمای راهاندازی سرور RedM — کلیدهای لایسنس، پیکربندی server.cfg، مدیریت ریسورس و اتصال.
- نحوه یافتن IP و پورت سرور
- نحوه آپلود فایل از طریق SFTP
- شروع کار با سرور جدید شما
نیاز به کمک دارید؟
هنوز با سرور RedM خود مشکل دارید؟ یک تیکت پشتیبانی ارسال کنید و هرگونه پیام خطا از کنسول سرور خود را درج کنید. تیم ما به شما کمک خواهد کرد مشکل را تشخیص داده و حل کنید.