دليل استضافة خادم FiveM: VPS، مخصص أو مُدار
اختر مضيف FiveM المناسب لحجم خادمك. VPS، مخصص، مُدار ونصائح الموقع لتحقيق زمن استجابة منخفض، فتحات عالية وأداء مستقر.
Agency Scripts
المؤسس والمطور الرئيسي في Agency Scripts
لماذا اختيار الاستضافة يصنع أو يكسر خادمك
مزود الاستضافة الذي تختاره له تأثير مباشر وقابل للقياس على كل جانب من جوانب سيرفرك في FiveM. تجربة اللاعب، أداء السكريبت، تزامن الكيانات، جودة الدردشة الصوتية، وأوقات استجابة قاعدة البيانات تعتمد كلها على الأجهزة الموجودة في مركز بيانات ما. اختيار مضيف سيء يؤدي إلى تقطيع الحركة، عدم تزامن أثناء مطاردات المركبات، انقطاع الدردشة الصوتية في لحظات تمثيل الدور الحرجة، وشاشات تحميل طويلة تجعل اللاعبين ينفصلون قبل حتى الظهور. الفرق بين سيرفر يعمل على أجهزة مناسبة وآخر محشو على VPS مفرط البيع ملحوظ فورًا لأي لاعب FiveM ذو خبرة. في هذا الدليل، سنشرح بالضبط المواصفات التي تحتاجها، نقارن بين VPS والاستضافة المخصصة، ونساعدك على اتخاذ القرار الصحيح لحجم سيرفرك وميزانيتك.
VPS مقابل الخادم المخصص: فهم الفرق
A VPS (الخادم الخاص الافتراضي) هي شريحة افتراضية من جهاز مادي أكبر. تشارك الأجهزة الأساسية مع مستأجرين آخرين، لكن مواردك معزولة من خلال hypervisor. A خادم مخصص يمنحك الجهاز الفيزيائي بالكامل حصريًا. بالنسبة لـ FiveM، هذا التمييز مهم أكثر من استضافة الويب النموذجية لأن FiveM حساس للغاية لأداء الخيط الواحد للمعالج وكمون الذاكرة. على VPS، يمكن للجيران المزعجين الذين يشغلون أحمال عمل مكثفة على المعالج أن يسببوا تقطعات دقيقة على خادمك حتى عندما لا تكون مواردك المخصصة مستنفدة بالكامل. الخوادم المخصصة تلغي هذا الخطر تمامًا. مع ذلك، يمكن لـ VPS عالي الجودة من مزود لا يفرط في البيع أن يقدم أداءً مشابهًا للخوادم التي تقل عن 64 لاعبًا. إليك كيفية التحقق من أداء خادمك الحالي لتحديد خط الأساس قبل تغيير المضيف:
-- server.lua: Performance monitoring
local perfData = {}
CreateThread(function()
while true do
Wait(10000) -- Check every 10 seconds
local cpuTime = GetProfiler():ToJSON() -- FiveM built-in profiler
local playerCount = #GetPlayers()
local resCount = GetNumResources()
-- Track server frame time (should stay under 33ms for 30 tick)
local svFrameTime = GetConvar('sv_frameTime', '33')
print(('[PERF] Players: %d | Resources: %d | Target Frame: %sms')
:format(playerCount, resCount, svFrameTime))
-- Log to file for analysis
SaveResourceFile(GetCurrentResourceName(), 'perf.log',
os.date() .. ' | Players: ' .. playerCount ..
' | Resources: ' .. resCount .. '\n', -1)
end
end)
المواصفات الموصى بها للأجهزة
أداء خادم FiveM يتحدد بشكل كبير بواسطة سرعة وحدة المعالجة المركزية ذات الخيط الواحد، ليس عدد الأنوية. وقت تشغيل الخادم أحادي الخيط إلى حد كبير، مما يعني أن وحدة معالجة مركزية بأربعة أنوية بسرعة 5.0 جيجاهرتز ستتفوق بشكل كبير على وحدة معالجة مركزية بـ16 نواة بسرعة 2.5 جيجاهرتز. بالنسبة للذاكرة العشوائية، الحد الأدنى هو 8 جيجابايت لخادم صغير (أقل من 32 لاعبًا مع سكريبتات معتدلة)، لكن 16 جيجابايت هو الحد العملي الأدنى لخادم لعب أدوار جاد مع 64+ لاعبًا، نظام هاتف، MDT، وظائف مخصصة، واقتصاد كامل. التخزين NVMe ضروري للخوادم التي تعتمد على قواعد البيانات لأن استعلامات oxmysql تصل إلى القرص أثناء الانضمامات المعقدة والقراءات الكبيرة. إليك تفصيل حسب حجم الخادم:
- صغير (1-32 لاعب): 4 أنوية بسرعة 4.0+ جيجاهرتز، 8 جيجابايت رام، 50 جيجابايت NVMe SSD، عرض نطاق 100 ميجابت
- متوسط (32-64 لاعب): 4-6 أنوية بسرعة 4.5+ GHz، 16 جيجابايت رام، 100 جيجابايت NVMe SSD، 250 ميجابت في الثانية عرض نطاق
- كبير (64-128 لاعب): 6-8 أنوية بسرعة 5.0+ GHz، 32 جيجابايت رام، 200 جيجابايت NVMe SSD، 500 ميجابت في الثانية عرض نطاق
- Enterprise (128+ players): معالج i9/Ryzen 9 مخصص بسرعة 5.5+ جيجاهرتز، 64 جيجابايت DDR5، 500 جيجابايت NVMe، 1 جيجابت في الثانية غير محدود
حماية DDoS: متطلب لا يمكن التفاوض عليه
خوادم FiveM هدف متكرر لهجمات DDoS. اللاعبون المحظورون الغاضبون، مالكو الخوادم المنافسون، ومراهقو السكريبت العشوائيون سيحاولون استهداف خادمك في وقت ما. بدون تدابير مناسبة لمواجهة DDoS، يمكن لهجوم واحد أن يوقف خادمك لساعات أو حتى أيام. ابحث عن مزودي استضافة يقدمون حماية DDoS دائمة على الطبقة 4 مصمم خصيصًا لحركة مرور خوادم الألعاب. غالبًا ما تقوم حماية DDoS العامة الموجهة للويب بتصفية حزم اللعبة الشرعية لأنها تبدو مشابهة لحركة الهجوم. يقدم أفضل المزودين تصفية واعية للألعاب تفهم أنماط حركة مرور UDP الخاصة بـ FiveM. يدعم بعض المزودين أيضًا GRE tunneling أو قواعد جدار حماية مخصصة تتيح لك إدراج نطاقات IP الخاصة بمرسل Cfx.re مع حظر كل شيء آخر. إليك كيفية تكوين server.cfg الخاص بك لتقييد الوصول وتقليل سطح الهجوم:
# server.cfg: Security hardening
sv_hostname "Your Server Name"
sv_maxclients 64
sv_endpointPrivacy true
sv_scriptHookAllowed 0
# Restrict RCON access
rcon_password "YOUR_STRONG_PASSWORD_HERE"
# Rate limiting
rate_limiter "strict"
# Only allow connections through Cfx.re
sv_forceIndirectListing true
# Firewall rules (Linux iptables example)
# Run these in your server startup script:
# iptables -A INPUT -p udp --dport 30120 -m state --state NEW -m recent --set
# iptables -A INPUT -p udp --dport 30120 -m state --state NEW -m recent \
# --update --seconds 10 --hitcount 20 -j DROP
موقع الخادم والكمون مهمان
يحدد الموقع الفعلي لخادمك الكمون الذي يختبره لاعبوك. لقاعدة لاعبين أوروبية بشكل رئيسي، الاستضافة في فرانكفورت، أمستردام، أو باريس تعطي أفضل متوسط زمن استجابة عبر القارة. لخوادم أمريكا الشمالية، المواقع في دالاس، شيكاغو، أو نيويورك توفر تغطية جيدة. إذا كانت مجتمعك يمتد عبر القارتين، اختر المنطقة التي يوجد بها غالبية لاعبيك، لأنه لا توجد طريقة جيدة لخدمة كل من الاتحاد الأوروبي وأمريكا الشمالية بزمن استجابة أقل من 50 مللي ثانية من موقع واحد. زمن استجابة أقل من 50 مللي ثانية يشعر بالاستجابة، 50-100 مللي ثانية ملحوظ لكنه قابل للعب، وأي شيء فوق 100 مللي ثانية يسبب تزامنًا مرئيًا خلال السيناريوهات السريعة مثل مطاردات الشرطة أو إطلاق النار. اختبر الكمون من المواقع المستهدفة قبل الالتزام بمضيف عن طريق إجراء اختبار ping بسيط أو استخدام أداة looking glass الخاصة بالمزود.
استضافة قاعدة البيانات: نفس الجهاز أم خارجي؟
تشغل معظم خوادم FiveM MySQL أو MariaDB على نفس الجهاز الذي يشغل خادم FiveM نفسه. هذا جيد للخوادم الصغيرة إلى المتوسطة لأنه يلغي تأخير الشبكة بين خادم اللعبة وقاعدة البيانات. ومع ذلك، بالنسبة للخوادم الكبيرة التي تضم أكثر من 100 لاعب وأنظمة اقتصاد معقدة، يمكن أن يحسن فصل قاعدة البيانات على جهاز مخصص الأداء لكل من خادم اللعبة وقاعدة البيانات. يحصل خادم اللعبة على المزيد من ذاكرة الوصول العشوائي ووحدة المعالجة المركزية لتنفيذ السكربتات، بينما تحصل قاعدة البيانات على عرض نطاق مخصص للمدخلات/المخرجات. إذا اخترت هذا المسار، تأكد من أن خادم قاعدة البيانات في نفس مركز البيانات مع خادم اللعبة للحفاظ على تأخير الاستعلام أقل من 1 مللي ثانية. إليك مثال على سلسلة اتصال oxmysql لكلا التكوينين:
# server.cfg: Database configuration
# Local database (same machine)
set mysql_connection_string "mysql://fivem:password@localhost/fivem_db?waitForConnections=true&connectionLimit=10&connectTimeout=60000"
# Remote database (separate server, same datacenter)
set mysql_connection_string "mysql://fivem:[email protected]/fivem_db?waitForConnections=true&connectionLimit=20&connectTimeout=10000"
# Performance tuning for oxmysql
set mysql_slow_query_warning 200
set mysql_debug false
# MariaDB recommended settings (my.cnf)
# [mysqld]
# innodb_buffer_pool_size = 4G
# innodb_log_file_size = 256M
# innodb_flush_method = O_DIRECT
# max_connections = 100
# query_cache_type = 1
# query_cache_size = 128M
إعداد خادمك على VPS جديد
بمجرد اختيار مزود الاستضافة الخاص بك، يتبع إعداد خادم FiveM على VPS لينكس جديد عملية قابلة للتكرار. ابدأ بـ Ubuntu 22.04 أو Debian 12، حدث النظام، أنشئ مستخدماً غير جذر لعملية FiveM، وقم بتكوين جدار الحماية. لا تشغل خادم FiveM كجذر أبداً لأن ثغرة في أي سكربت قد تعرض الجهاز بأكمله للخطر. استخدم systemd لإدارة عملية FiveM بحيث تعيد التشغيل تلقائيًا عند الأعطال وتبدأ عند الإقلاع. يستغرق هذا الإعداد حوالي 15 دقيقة ويوفر بيئة خادم جاهزة للإنتاج:
#!/bin/bash
# setup-fivem.sh - Fresh VPS setup script
# Update system
apt update && apt upgrade -y
# Create FiveM user
useradd -m -s /bin/bash fivem
mkdir -p /home/fivem/server /home/fivem/server-data
# Download FiveM server artifacts
cd /home/fivem/server
wget https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/LATEST_RECOMMENDED_URL -O fx.tar.xz
tar xf fx.tar.xz
rm fx.tar.xz
# Set permissions
chown -R fivem:fivem /home/fivem
# Configure firewall
ufw allow 30120/tcp
ufw allow 30120/udp
ufw allow 40120/tcp
ufw allow OpenSSH
ufw --force enable
# Create systemd service
cat > /etc/systemd/system/fivem.service << 'EOF'
[Unit]
Description=FiveM Server
After=network.target mariadb.service
[Service]
Type=simple
User=fivem
WorkingDirectory=/home/fivem/server-data
ExecStart=/home/fivem/server/run.sh +exec server.cfg
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable fivem
echo "Setup complete! Place your server-data files and run: systemctl start fivem"
مراقبة وصيانة خادمك
بعد النشر، المراقبة المستمرة أمر حاسم. قم بإعداد مراقبة أساسية للموارد باستخدام أدوات مثل htop لاستخدام CPU و RAM في الوقت الحقيقي، iotop لعمليات الإدخال/الإخراج على القرص، و vnstat لتتبع عرض النطاق الترددي. قم بتكوين نسخ احتياطية آلية لدليل بيانات الخادم وقاعدة البيانات الخاصة بك، ويفضل أن تكون إلى موقع خارجي. استراتيجية النسخ الاحتياطي الجيدة هي تفريغ كامل يومي لقاعدة البيانات ونسخ احتياطي تزايدي كل ساعة لجداول بيانات اللاعبين. راقب معدل التحديث الخاص بخادم FiveM الخاص بك من خلال لوحة الويب txAdmin، التي يقوم معظم مزودي الاستضافة بتثبيتها مسبقًا. يحافظ الخادم الصحي على معدل تحديث ثابت قريب من القيمة المُكوّنة (عادة 30 أو 48 تحديثًا في الثانية). عندما ينخفض معدل التحديث إلى أقل من 80% من الهدف، حان الوقت إما لتحسين السكربتات الخاصة بك أو ترقية الأجهزة.