كيفية تشغيل خادم FiveM على VPS خطوة بخطوة
ثبّت FXServer على Ubuntu، وثبّت إصدار artifacts محدداً، وأضف مفتاح Cfx.re، وافتح المنفذ 30120 عبر TCP وUDP، مع إبقاء txAdmin خارج الإنترنت العام.
ما يحتاج إليه خادم FiveM على VPS
يتكوّن خادم FiveM على VPS من مستخدم Linux واحد غير مميّز، وإصدار artifacts واحد من Cfx.re، ومفتاح ترخيص واحد، ومنفذ مفتوح على TCP وUDP معاً. يستغرق التثبيت نحو عشر دقائق. أما بقية هذا الدليل فتتناول العوامل التي تحدد قابلية تشغيل الخادم: سرعة نواة CPU واحدة، والذاكرة التي تحتاج إليها مواردك، ولوحة إدارة يجب ألا تكون مكشوفة على عنوان عام.
هناك ثلاثة متطلبات ثابتة. تأتي ثنائيات الخادم، التي تُسمى artifacts، من قائمة الإصدارات الرسمية في Cfx.re. ويأتي مفتاح الترخيص من بوابة Cfx.re على portal.cfx.re، وهي الخدمة التي تسميها الأدلة القديمة keymaster، ويرتبط المفتاح بعنوان الجهاز الذي يستخدمه. يحتاج كل لاعب يتصل بالخادم إلى نسخة شرعية خاصة به من GTA V (Grand Theft Auto V) على Steam أو Rockstar Games Launcher أو Epic Games، إضافة إلى حساب Cfx.re مجاني. يتحقق العميل من ملكية اللعبة عند بدء تشغيله، لذلك لا يعمل خادم مبني على أي شيء آخر، ولا يغطي هذا الدليل أي محتوى للتحايل من أي نوع.
تختلف استضافة الخادم عن تشغيل اللعبة على الجهاز. ويتعلق ذلك بـإمكانية تشغيل اللعبة نفسها على VPS، وهو سؤال مستقل له إجابة مختلفة.
لماذا تحدد سرعة النواة الواحدة أداء خادم FiveM
يُشغّل FXServer، وهو الملف التنفيذي لخادم FiveM، منطق اللعبة في مسار رئيسي واحد. يمر كل resource script وكل event handler وكل تحديث للحالة عبر هذه الحلقة الوحيدة. تساعد الأنوية الإضافية النواة وقاعدة البيانات ومكدس الشبكة. لكنها لا تقسّم حلقة اللعبة. لذلك قد يتقطّع الأداء تحت الحمل على خادم يضم 4 vCPU بنواة بطيئة، بينما يبقى سلساً على خادم يضم 2 vCPU بنواة سريعة.
وهذا يعكس عادة اختيار VPS المعتادة، حيث يكون عدد الأنوية هو الرقم الأبرز. تحقّق من سرعة النواة قبل أن تدفع المال. ابدأ بطراز CPU:
lscpu | grep -E 'Model name|MHz'ثم ابحث عن نتيجة single thread المنشورة لهذا الطراز. إنّ تصنيف PassMark لـsingle thread ونتيجة Geekbench لـsingle-core متاحان للعامة، وكلاهما يقيس أداء نواة واحدة، وهو الرقم المهم هنا. بعد ذلك، قِس الخادم الذي حصلت عليه فعلياً:
sudo apt update && sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 runاقرأ السطر events per second. شغّل الأمر نفسه على خادمين محتملين من مزودين مختلفين، ويمكنك عندها مقارنتهما بموضوعية، لأن عبء العمل متطابق ومحصور في نواة واحدة. يوضّح اختبار VPS قابل للتكرار كيفية إبقاء هذه الأرقام قابلة للمقارنة بين الخوادم.
ثم تحقّق من أنّ النواة مخصّصة لك فعلاً:
vmstat 1 5العمود الأخير، st، هو وقت steal: النسبة من الوقت الذي كانت فيه وحدة CPU الافتراضية جاهزة للتشغيل، لكن hypervisor جعلها تنتظر. تعني القيمة المستقرة التي تتجاوز 1 أو 2 أنّك تشارك نواة فعلية مع جيران مشغولين، ويظهر أثر ذلك فوراً في حلقة اللعبة على شكل rubber banding. يوضّح وقت steal الناتج عن جار مزعج كيفية قراءة هذا العمود وما يمكنك فعله حياله.
تتوسع احتياجات الذاكرة وفقاً للموارد التي تشغّلها، وليس وفق عدد الخانات وحده. تعمل بيانات الخادم الأساسية من Cfx.re ضمن بضع مئات من الميغابايت. أما framework للـroleplay يضم أربعين أو خمسين resource، مع قاعدة بيانات MariaDB على الخادم نفسه، فيتطلب إعداداً مختلفاً: تُعد سعة 4 GB حداً أدنى مناسباً، وتكون سعة 8 GB مريحة عند 32 إلى 64 خانة. هذه أرقام نموذجية منشورة في إعدادات المجتمع، لذلك تعامل معها كنقطة بداية وراقب free -m تحت حمل لاعبين فعلي.
أنشئ مستخدماً وثبّت التبعيات
شغّل الخادم كمستخدم عادي، وليس بحساب root. هناك سببان لذلك. استخدام root عادة سيئة في أي خدمة متاحة عبر الإنترنت. كما أن ملف Linux التنفيذي يعمل داخل نظام ملفات root مضمَّن من Alpine Linux، لذلك لا يمكن لأي مستخدم آخر تنفيذ الملفات التي فكّها root. وهذا هو السبب الأكثر شيوعاً لرفض التثبيت الجديد التشغيل.
sudo adduser --disabled-password --gecos "" fivem
sudo apt update
sudo apt install -y git xz-utils curl tcpdump
sudo -iu fivemتُنفَّذ جميع الخطوات التالية باستخدام المستخدم fivem. يلزم xz-utils لأن التنزيل أرشيف .tar.xz، ويُستخدم git لاستنساخ بيانات الخادم الأساسية.
تنزيل إصدار محدد من artifact
يوجد إصدار Linux في قناة build_proot_linux على خادم artifacts التابع لـCfx.re. تعرض صفحة تنزيل خادم Cfx.re إصداراً واحداً بالتصنيف Recommended وإصداراً أحدث بالتصنيف Latest، ويتغير هذان التصنيفان إلى إصدارات جديدة عند إصدار نسخ جديدة. بدلاً من ذلك، ثبّت اسم المجلد الرقمي. عند إعادة إنشاء الخادم الشهر المقبل، ستحصل على الملف الثنائي نفسه الذي اختبرته هذا الشهر، وتصبح الترقية قراراً تتخذه عن قصد.
mkdir -p ~/FXServer/server
cd ~/FXServer/server
curl -fLO https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/35245-6efb47dff473c0e2a12fb50b08d74c0eb24a50d5/fx.tar.xz
tar xf fx.tar.xz
lsكان الإصدار 35245 يحمل التصنيف Recommended عندما تحققت من صفحة تنزيل خادم Cfx.re في 9 أكتوبر 2026. افتح الصفحة، واختر Linux، وانسخ اسم المجلد من الرابط الحالي fx.tar.xz إلى URL. يتكوّن الاسم من رقم الإصدار وhash الخاص بـcommit. أما قائمة مجلد artifacts القديمة التي لا تزال أدلة كثيرة تشير إليها، فأصبحت تعيد التوجيه إلى الصفحة نفسها.
حتى الإصدار المحدد له مدة صلاحية. تدعم Cfx.re artifact مصنفة Recommended حتى ستة أسابيع بعد إصدار artifact التالية، وتنص سياستها على أن artifacts الخادم غير المدعومة والأقدم من ثلاثة أشهر لن تكون قابلة للانضمام إليها من متصفح الخادم. يستمر الإصدار القديم في العمل، لكن اللاعبين لن يتمكنوا من الانضمام إليه من المتصفح. لذلك، حدّد مواعيد الترقية بدلاً من تثبيت إصدار إلى أجل غير مسمى.
يجب أن يعرض ls الآن run.sh ودليلاً باسم alpine. هذا الدليل هو جوهر العملية: يتضمن artifact الخاص بـLinux نظام ملفات root صغيراً مبنياً على Alpine، ويشغّل الخادم داخله باستخدام proot، وهي أداة في userspace تحاكي chroot من دون امتيازات root. لذلك يعمل تنزيل واحد على Ubuntu وDebian وRocky من دون حزم خاصة بالتوزيعة.
استنسخ الآن بيانات الخادم الأساسية، التي تحتوي على الموارد الافتراضية التي يبدأ بها server.cfg:
git clone https://github.com/citizenfx/cfx-server-data.git ~/FXServer/server-dataالحصول على مفتاح ترخيص وكتابة server.cfg
سجّل الدخول إلى portal.cfx.re باستخدام حساب Cfx.re، وأنشئ مفتاح خادم. يطلب منك portal عنوان IP للجهاز الذي سيستخدم المفتاح، ويرتبط المفتاح بهذا العنوان. عند الانتقال إلى VPS جديد، عدّل المفتاح في portal بدلاً من إنشاء مفتاح ثانٍ. يُطبَّق التعديل فوراً، لكن FXServer لا يعيد التحقق من المفتاح إلا بعد إعادة التشغيل.
اكتب ~/FXServer/server-data/server.cfg:
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
sv_hostname "My FiveM server"
sv_maxclients 48
set onesync on
sv_scriptHookAllowed false
sv_licenseKey ChangeMe
add_ace group.admin command allow
add_principal identifier.fivem:1 group.adminيقبل sv_maxclients قيمة من 1 إلى 2048. تحتاج القيمة 32 أو أعلى إلى ضبط onesync على on أو legacy، بينما تحتاج القيمة الأعلى من 64 إلى on. يحدد OneSync وضع وعي الخادم بالحالة، وهو ما يتيح للخادم تجاوز العدد الصغير الأساسي للخانات في اللعبة. لا يمنحك ضبط 128 خانة مع تعطيل OneSync عدد 128 خانة؛ بل ينتج إعداداً يرفضه الخادم.
يأخذ sv_licenseKey المفتاح من دون علامات اقتباس ومن دون مسافة في النهاية. يقسم FXServer هذا السطر عند المسافات، ولذلك يؤدي أي محرف زائد إلى كسر التحقق ورفض الخادم بدء التشغيل.
يغيب rcon_password عن هذا الملف عمداً. لا يُفعّل RCON (وحدة التحكم عن بُعد) إلا عند ضبط المتغير، وعندها يستمع إلى منفذ UDP نفسه الذي تستخدمه اللعبة. كلمة مرور RCON على منفذ عام هي قناة أوامر عن بُعد إلى خادمك. اتركه غير مضبوط ما لم تكن لديك حاجة محددة إليه، واجعل كلمة المرور طويلة وعشوائية إذا فعلت ذلك.
يبقى sv_scriptHookAllowed مضبوطاً على false. تضعه الوثائق الرسمية ضمن الإعدادات غير الموصى بها، لأن السماح لعملاء Script Hook V يعرّض الخادم لإساءة استخدام من جهة العميل.
يعمل السطران الأخيران معاً. يتيح add_ace group.admin command allow لمجموعة group.admin تنفيذ كل أمر، ويجعل add_principal identifier.fivem:1 group.admin حساب Cfx.re ذي المعرّف 1 يرث من تلك المجموعة، وهذا ما يمنح الحساب صلاحيات المسؤول. الصيغة الموثقة هي add_principal [child_principal] [parent_principal]، ولذلك يلزم كلا الجزأين: فسطر add_principal الذي يذكر الحساب وحده لا يحدد مجموعة يرث منها، ولا يمنح أي صلاحيات. استبدل 1 بمعرّفك الرقمي، وإلا منحت صلاحيات المسؤول لحساب شخص آخر ولم تمنحها لحسابك.
شغّله مرة واحدة يدوياً:
cd ~/FXServer/server-data
bash ~/FXServer/server/run.sh +exec server.cfgمن جلسة SSH ثانية، اطلب من الخادم عرض معلوماته:
curl -s http://127.0.0.1:30120/info.json | head -c 200يعني JSON الذي يحتوي على متغيرات الخادم وموارده أن FXServer ربط المنفذ ويستجيب. يعني Connection refused أنه لم يربط المنفذ، ولذلك اقرأ مخرجات وحدة التحكم بدلاً من التخمين.
يطبع الخادم الذي لا يملك مفتاحاً الرسالة التالية ثم يتوقف:
This server does not have a license key specified. Please set the sv_licenseKey console variable to a key from https://keymaster.fivem.net/.لا تزال الرسالة تشير إلى عنوان keymaster القديم. يقود هذا العنوان إلى portal نفسه الخاص بـ Cfx.re. إذا كان المفتاح مضبوطاً ولا يزال الخادم يرفض التشغيل، فالسبب المعتاد هو أن عنوان IP المسجّل مع المفتاح لم يعد يطابق عنوان هذا الجهاز.
ما المنافذ التي يحتاج خادم FiveM إلى فتحها؟
المنفذ 30120 عبر TCP (بروتوكول التحكم في الإرسال) وUDP (بروتوكول مخططات بيانات المستخدم). يستخدم FiveM رقم منفذ واحداً لبروتوكولين، ويحتاج إلى كليهما. إذا فتحت TCP فقط، فستظهر أعراض مربكة: يجيب http://your.ip:30120/info.json في المتصفح، لذلك يبدو الخادم سليماً، بينما يبقى عميل اللعبة عند Failed to get info from server ولا ينضم، لأن استعلام العميل نفسه وحركة بيانات اللعبة يمران عبر UDP.
sudo ufw allow OpenSSH
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw enable
sudo ufw status verboseأبقِ جلسة SSH ثانية مفتوحة أثناء تفعيل أي جدار ناري. يشرح أساسيات ufw لخادم VPS سياسة الرفض الافتراضية التي تجعل القواعد السابقة كافية بمفردها.
يشغّل معظم موفري الخدمة أيضاً جداراً نارياً للشبكة خارج الضيف، وتتحكم فيه من لوحة التحكم لا من shell. لا تثبت قاعدة ufw شيئاً بشأن هذه الطبقة. عندما يستجيب TCP من خارج الخادم، بينما يتعذر على اللاعبين الاتصال، راقب حركة الشبكة أثناء محاولة أحدهم الاتصال:
sudo tcpdump -ni any udp port 30120يعني وصول الحزم أن الجدار الناري الخارجي يعمل، وأن الخلل داخل الخادم. أما الصمت فيعني أن شيئاً أمام الخادم يحذف الحزم، لذا راجع لوحة تحكم موفر الخدمة بعد ذلك.
إدارة الخادم باستخدام txAdmin من دون تعريضه للإنترنت
يتضمن الـartifact الذي نزّلته مسبقاً txAdmin. شغّل run.sh من دون وسيطة +exec، وسيبدأ لوحة ويب على منفذ TCP 40120، ثم يطبع عنوان URL للوحة ورمز PIN قصير الصلاحية في وحدة التحكم. استخدم رمز PIN مرة واحدة لربط حساب Cfx.re الخاص بك. بعد ذلك، سجّل الدخول باستخدام حساب المسؤول الذي ينشئه.
لا يملك txAdmin كلمة مرور افتراضية. لذلك، لا يتمثل الخطر في بيانات اعتماد نسيت تغييرها. الخطر هو طبيعة اللوحة نفسها: فهي وحدة تحكم عن بُعد. يمكنها إعادة تشغيل الخادم، وتعديل server.cfg، ونشر بيانات الخادم، وتشغيل الأوامر باستخدام حساب مستخدم الخادم. يؤدي إبقاء 40120 متاحاً من الإنترنت إلى وضع صفحة تسجيل الدخول الخاصة بهذه الوظائف كلها على عنوان عام. وتكتشف أدوات الفحص المنافذ المفتوحة للوحات التحكم خلال ساعات. لا تفتح 40120 في جدار الحماية. صِل إليه عبر نفق SSH من جهازك:
ssh -N -L 40120:127.0.0.1:40120 fivem@YOUR_SERVER_IPثم افتح http://127.0.0.1:40120 في متصفحك. تمر حركة اللوحة داخل اتصال SSH، ويبقى المنفذ مغلقاً أمام الجميع الآخرين.
توجد نقطة مهمة يجب معرفتها قبل محاولة معالجة الأمر بطريقة أخرى. يقرأ txAdmin TXHOST_INTERFACE (القيمة الافتراضية 0.0.0.0) لتحديد الواجهة التي سيرتبط بها. وتوضح الوثائق صراحةً أن القيمة نفسها تُفرض على FXServer. إذا ضبطتها على 127.0.0.1 لإخفاء اللوحة، فسيستمع خادم اللعبة أيضاً على loopback، ولن يتمكن أي لاعب من الوصول إلى الخادم. أغلق منفذ اللوحة باستخدام جدار الحماية، وليس باستخدام ذلك المتغير. لنقل اللوحة إلى منفذ آخر، اضبط TXHOST_TXA_PORT، الذي يقبل أي قيمة باستثناء 30120. يظهر convar الأقدم +set txAdminPort في أدلة كثيرة. لكن وثائق txAdmin نفسها تضع علامة deprecated عليه وتذكر أنه سيتوقف عن العمل في إصدار مستقبلي.
إبقاء الخادم قيد التشغيل بعد تسجيل الخروج
يموت bash run.sh مع جلسة SSH. يكون tmux مناسباً أثناء الاختبار: شغّل tmux new -s fivem، ثم ابدأ الخادم، واضغط Ctrl-b ثم d لفصل الجلسة، واستخدم tmux attach -t fivem للعودة إليها. لا تستمر جلسة tmux بعد إعادة التشغيل، لذلك يجب وضع كل ما يهمك في وحدة systemd.
اكتب /etc/systemd/system/fivem.service:
[Unit]
Description=FiveM FXServer
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=fivem
Environment=HOME=/home/fivem
WorkingDirectory=/home/fivem/FXServer/server-data
ExecStart=/bin/bash /home/fivem/FXServer/server/run.sh +exec server.cfg
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now fivem
systemctl status fivem
journalctl -u fivem -fيؤدي enable --now مهمتين: يبدأ الخدمة فوراً، ويعيد تشغيلها بعد إعادة التشغيل. يختفي الخادم الذي بدأته يدوياً بعد تحديث kernel التالي. أصبحت journalctl -u fivem -f وحدة التحكم لديك الآن، لأن خدمة systemd لا تملك طرفية يمكنك الكتابة فيها. إذا كنت تدير الخادم من خلال txAdmin بدلاً من ذلك، فأزل +exec server.cfg من ExecStart، ووجّه WorkingDirectory إلى /home/fivem/FXServer/server، لأن txAdmin يبدأ خادم اللعبة بنفسه ويحتفظ بمجلد بياناته بجوار run.sh.
ما الذي يجب نسخه احتياطياً وأين يوجد
لا تستحق ملفات البناء نسخها احتياطياً، لأنك تستطيع تنزيل الإصدار المحدد مرة أخرى خلال دقيقة. هناك أربعة أشياء تخصك وحدك.
~/FXServer/server-data/resources: كل مورد ثبّتَّه أو اشتريته أو كتبته.server.cfg، أينما كان: إعداد الخادم بالكامل، بما في ذلك حسابات المسؤولين لديك.~/FXServer/server/txData: إعدادات txAdmin وقائمة المسؤولين والسجلات. عند استخدام إصدار Linux، يُنشأ هذا المجلد بجوارrun.sh.- قاعدة بيانات MariaDB أو MySQL، إذا كان إطار العمل لديك يستخدم واحدة. توجد الشخصيات والأموال والمركبات والمخزونات هناك وحدها، لذلك تؤدي نسخ الموارد احتياطياً من دون تفريغ قاعدة البيانات إلى استعادة عالم فارغ.
mkdir -p ~/backups
mysqldump -u fivem -p --single-transaction fivem_db > ~/backups/fivem-$(date +%F).sqlلا تُعد عملية تفريغ قاعدة البيانات الموجودة على القرص نفسه الذي يعمل عليه الخادم نسخة احتياطية، لأن القرص هو الجزء الذي قد يتعطل. انقلها دورياً إلى خارج الخادم، وهذا هو الغرض من نسخ restic الاحتياطية من VPS.
أنماط الفشل والعبارات التي ستظهر لك
رفض الإذن عند أداة التحميل. يتوقف الخادم فوراً ويعرض سطراً يشبه ما يلي:
run.sh: line 8: /home/fivem/FXServer/server/alpine/opt/cfx-server/ld-musl-x86_64.so.1: Permission deniedيحدث ذلك لأن الأرشيف استُخرج باستخدام sudo، ولذلك أصبحت كل الملفات ضمن alpine/ مملوكةً لـroot، ولا يستطيع المستخدم fivem تنفيذ أداة التحميل الموجودة داخله. أصلح الملكية باستخدام sudo chown -R fivem:fivem /home/fivem/FXServer، أو احذف المجلد واستخرج الأرشيف مرة أخرى باستخدام fivem.
يرفض tar فتح الملف الذي نزّلته. يعني tar (child): xz: Cannot exec: No such file or directory أن حزمة xz-utils مفقودة، ولذلك لا يستطيع tar فك ضغط أرشيف .tar.xz. ثبّت الحزمة ثم أعد الاستخراج. عادةً ما تكون عملية التنزيل التي تنتهي بسرعة كبيرة جداً صفحة خطأ HTML حُفظت باسم fx.tar.xz، ويُبلغ tar عن ذلك بوصفه أرشيفاً تالفاً.
يعمل الخادم ولا يستطيع أحد الانضمام. افحص المنافذ أولاً بالترتيب التالي: قاعدة ufw لكل من TCP وUDP على المنفذ 30120، ثم جدار الشبكة الخاص بمزوّد الخدمة، ثم عنوان IP المسجّل لمفتاح الترخيص. يتيح لك تنفيذ curl مقابل info.json من خارج الخادم التمييز بين مشكلة في الشبكة ومشكلة في الخادم باستخدام أمر واحد.
يزداد زمن الدورة عند انضمام اللاعبين. تعرض لوحة أداء txAdmin زمن دورة الخادم. عندما يزداد هذا الزمن مع عدد اللاعبين بينما يبدو استخدام CPU الإجمالي منخفضاً، يكون أحد الموارد مستنفداً للخيط الرئيسي. تذكّر الحساب: في خادم يضم 4 vCPU، يظهر استخدام نواة واحدة محمّلة بالكامل بنحو 25 بالمئة من إجمالي CPU في top، ما قد يبدو استخداماً منخفضاً لكنه ليس كذلك. أوقف الموارد واحداً تلو الآخر وراقب زمن الدورة لمعرفة المورد الذي يستهلك هذه السعة.
مقارنة متطلبات الحجم بخوادم الألعاب الأخرى
يتطلب خادم FiveM القابل للعب نواة واحدة سريعة وذاكرة كافية لقائمة الموارد التي تشغّلها فعلياً. ويتحدد عدد الخانات بهذين العاملين، ولا يمكن لأي عدد من vCPUs إصلاح بطء النواة. يشرح اختيار VPS لخوادم الألعاب هذه المفاضلة عند تشغيل مجموعة متنوعة من الخوادم، كما أن تشغيل خادم Minecraft على VPS يتبع المبدأ نفسه في الأساس: حلقة tick رئيسية واحدة، ولذلك تحدد سرعة النواة الحد الأقصى هناك أيضاً.
FAQ
ما مقدار CPU وRAM الذي يحتاج إليه خادم FiveM؟
تهم نواة سريعة واحدة أكثر من عدة أنوية بطيئة، لأنّ FXServer يشغّل منطق اللعبة على خيط رئيسي واحد. قارن نتيجة single thread المنشورة لطراز CPU، ثم أكّدها على الخادم باستخدام sysbench cpu --threads=1 run وتحقق من أن vmstat يعرض وقت steal قريباً من الصفر. بالنسبة إلى الذاكرة، تعمل بيانات خادم Cfx.re الأساسية ضمن بضع مئات من الميغابايت، بينما يكون إطار roleplay الذي يضم أربعين أو خمسين resource مع قاعدة بيانات محلية مريحاً عند 8 GB ويصبح محدوداً عند أقل من 4 GB. هذه أرقام شائعة لدى المجتمع، لذلك راقب free -m أثناء ذروة الاستخدام بدلاً من الاعتماد عليها.
هل يحتاج اللاعبون إلى امتلاك GTA V للانضمام إلى خادم FiveM؟
نعم. يحتاج كل لاعب متصل إلى نسخة شرعية ومرخّصة من GTA V على Steam أو Rockstar Games Launcher أو Epic Games، إضافة إلى حساب Cfx.re مجاني. يتحقق عميل FiveM من ملكية اللعبة قبل أن يتصل. لا توجد طريقة مدعومة لتجاوز ذلك، وتشغيل خادم يحاول التحايل عليه يخالف ما تسمح به Cfx.re.
ما المنافذ التي يجب فتحها لخادم FiveM؟
المنفذ 30120 على TCP وعلى UDP معاً. تستخدم نقاط نهاية HTTP مثل info.json وتنزيلات الموارد TCP، بينما تستخدم حركة مرور اللعبة لدى العميل UDP. يؤدي فتح TCP فقط إلى حالة مربكة، إذ يستجيب الخادم للمتصفح بينما يرى اللاعبون Failed to get info from server. يحتاج txAdmin إلى TCP 40120، ويجب أن يبقى هذا المنفذ مغلقاً أمام الإنترنت.
هل من الآمن إبقاء txAdmin متاحاً على المنفذ 40120؟
لا. txAdmin عبارة عن وحدة تحكم عن بُعد تعيد تشغيل الخادم، وتعدّل الإعدادات، وتشغّل الأوامر، لذلك فإن لوحة مكشوفة تعني كشف مستوى التحكم في خادم اللعبة بالكامل. لا توجد كلمة مرور افتراضية، لكن صفحة تسجيل دخول عامة تتيح هجمات على بيانات الاعتماد لا يمكنك رؤيتها. اترك 40120 مغلقاً في جدار الحماية، وادخل إلى اللوحة عبر نفق SSH باستخدام ssh -N -L 40120:127.0.0.1:40120 user@server، ثم انتقل إلى http://127.0.0.1:40120 في المتصفح. لا تربط txAdmin بالعنوان 127.0.0.1 باستخدام TXHOST_INTERFACE، لأن هذا الإعداد يجبر خادم اللعبة أيضاً على استخدام loopback، ولن يتمكن أي لاعب من الاتصال.
هل ينبغي تثبيت إصدار artifact محدد أم استخدام أحدث إصدار موصى به دائماً؟
ثبّت مجلد build ذي الرقم المحدد. ينتقل التصنيف الموصى به إلى build جديد بانتظام، لذلك قد يمنحك script يجلب build الموصى به ملفاً ثنائياً مختلفاً عند كل إعادة بناء، وقد يتعطل خادم كان يعمل بالأمس عند إعادة النشر لأسباب لا تتعلق بتغييراتك. سجّل رقم build وcommit hash اللذين اختبرتهما، ونفّذ الترقية عمداً، واحتفظ بالمجلد السابق على القرص حتى تتمكن من الرجوع إليه بتعديل مسار واحد في وحدة systemd. لكن لا تترك التثبيت ثابتاً قديماً: إذ تجعل سياسة Cfx.re الـartifacts غير المدعومة الأقدم من ثلاثة أشهر غير قابلة للانضمام من متصفح الخوادم، لذلك نفّذ الترقية ضمن فترة الدعم.