- لماذا يجب عليّ إعداد خادم Factorio على خادم Linux؟
- لماذا يُفضل استخدام خادم افتراضي خاص (VPS) أو خادم مخصص للعبة فاكتوريو؟
- متطلبات تشغيل لعبة Factorio بدون واجهة رسومية وتنزيلها
- الإعداد الأولي وتشغيل الخادم
- أنشئ خدمة systemd ليتم تشغيلها تلقائيًا
- تهيئة ملف server-settings.json (نقاط مهمة)
- تشغيل لعبة Factorio في Docker (طريقة بديلة)
- الأمان وجدار الحماية
- النسخ الاحتياطي التلقائي والاحتفاظ بالملفات المحفوظة
- مُحسَّن لتقليل زمن الاستجابة وتحسين الأداء
- المراقبة والسجلات
- نصائح حول التعديلات والتحديثات
- أمثلة عملية وحلول للمشاكل الشائعة
- استخدم خدمات الشركة للحصول على أفضل تجربة
- الخاتمة والتوصيات النهائية
- الأسئلة الشائعة
لماذا يجب عليّ إعداد خادم Factorio على خادم Linux؟
يقدم هذا الدليل شرحاً تفصيلياً وتقنياً لكيفية إعداد خادم ألعاب عبر الإنترنت. فاكتوريو يشرح هذا المقال كيفية استخدام خادم لينكس (خادم افتراضي خاص أو خادم مخصص). هذا المقال مخصص لـ مديرو الخوادم، واللاعبون، وفرق تطوير الألعاب مصمم لإنشاء خادم مستقر، ومنخفض زمن الاستجابة، وآمن لألعاب متعددة اللاعبين.
لماذا يُفضل استخدام خادم افتراضي خاص (VPS) أو خادم مخصص للعبة فاكتوريو؟
لعبة Factorio غير مناسبة للخوادم التي تضم عددًا كبيرًا من اللاعبين أو التعديلات الثقيلة. معالج أحادي النواة قوييتطلب ذلك ذاكرة كافية وسرعة إدخال/إخراج عالية. ويختلف الاختيار بين الخادم الافتراضي الخاص والخادم المخصص تبعًا لحجم اللاعبين والميزانية.
- مجموعة صغيرة (حتى 8 لاعبين): يكفي خادم افتراضي خاص (VPS) مزود بمعالج مركزي سريع، ومعالجين مركزيين افتراضيين (vCPUs)، وذاكرة وصول عشوائي (RAM) بسعة 4-8 جيجابايت.
- مجموعة متوسطة (8-32 لاعبًا): 4 وحدات معالجة مركزية افتراضية، وذاكرة وصول عشوائي من 8 إلى 16 جيجابايت، ويوصى باستخدام NVMe.
- خادم كبير (أكثر من 32 لاعبًا أو تعديلات ثقيلة): يُعد الخادم المخصص الذي يحتوي على 6-12 نواة عالية التردد، وذاكرة وصول عشوائي (RAM) بسعة 32 جيجابايت أو أكثر، وتقنية NVMe مناسبًا.
للحصول على أقل زمن استجابة (ping)، فإن الموقع الصحيح (من بين أكثر من 85 موقعًا عالميًا) مهم: أوروبا (فرانكفورت، أمستردام)، شرق الولايات المتحدة (نيو جيرسي)، غرب الولايات المتحدة (كاليفورنيا)، آسيا (سنغافورة، طوكيو)، أستراليا (سيدني)، والبرازيل (ساو باولو).
متطلبات تشغيل لعبة Factorio بدون واجهة رسومية وتنزيلها
المتطلبات الأساسية لخادم لينكس:
- توزيعة لينكس: أوبونتو 20.04/22.04 أو ديبيان 11+ مُستَحسَن.
- مستخدم غير مسؤول عن صلاحيات الجذر لتشغيل الخادم.
- إمكانية الوصول عبر SSH والقدرة على تثبيت الحزم.
مثال على الأوامر الأساسية (أوبونتو):
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget unzip tar libstdc++6
sudo adduser --disabled-login --gecos "Factorio Server" factorio
sudo usermod -aG sudo factorioقم بتنزيل النسخة بدون واجهة رسومية:
- قم بتنزيل النسخة بدون واجهة رسومية من موقع Factorio الرسمي (تحقق من الإصدار المناسب).
- مثال (استبدل عنوان URL بالرابط الرسمي):
sudo -u factorio mkdir -p /opt/factorio
cd /opt/factorio
sudo -u factorio wget https://www.factorio.com/get-download/latest/headless/linux64 -O factorio_headless.tar.xz
sudo -u factorio tar -xf factorio_headless.tar.xzالإعداد الأولي وتشغيل الخادم
تشغيل الخادم باستخدام ملف حفظ جديد أو تحميل ملف حفظ موجود:
بدء تشغيل الخادم بحفظ جديد:
sudo -u factorio /opt/factorio/bin/x64/factorio --start-server /opt/factorio/saves/my-save.zip --server-settings /opt/factorio/config/server-settings.json --port 34197تحميل ملف حفظ موجود (تحميل أحدث ملف حفظ):
sudo -u factorio /opt/factorio/bin/x64/factorio --start-server-load-latestالموانئ:
- نسخة اللعبة: UDP 34197 (افتراضي)
- RCON: في حال تفعيل هذه الخاصية، يمكنك تحديد منفذ TCP مخصص (مثلاً 27015). الإعدادات موجودة في الملف.
ملف server-settings.jsonلقد تم وضعه.
أنشئ خدمة systemd ليتم تشغيلها تلقائيًا
أنشئ ملف خدمة لبدء تشغيل الخادم وإدارته تلقائيًا:
sudo tee /etc/systemd/system/factorio.service > /dev/null <<'EOF'
[Unit]
Description=Factorio Headless Server
After=network.target
[Service]
User=factorio
Group=factorio
Type=simple
WorkingDirectory=/opt/factorio
ExecStart=/opt/factorio/bin/x64/factorio --start-server /opt/factorio/saves/my-save.zip --server-settings /opt/factorio/config/server-settings.json --port 34197
Restart=on-failure
RestartSec=10
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOFتفعيل الخدمة وتشغيلها:
sudo systemctl daemon-reload
sudo systemctl enable --now factorio.service
sudo journalctl -u factorio -fملف التكوين ملف server-settings.json (نقاط مهمة)
في الطريق /opt/factorio/config/server-settings.json تحقق من الإعدادات التالية أو عدّلها:
- اسم: اسم الخادم
- وصف: شرح للاعبين
- max_players: أقصى عدد من اللاعبين
- كلمة مرور اللعبة: اختياري لتسجيل الدخول (موصى به للخوادم الخاصة)
- يتطلب التحقق من المستخدم: ينطبق هذا على مصادقة Steam (إذا لزم الأمر)
مثال بسيط:
{
"name": "My Factorio Server",
"description": "سرور رسمی جامعه",
"max_players": 32,
"game_password": "securepassword",
"require_user_verification": true
}تشغيل لعبة Factorio في Docker (طريقة بديلة)
إذا كنت تفضل استخدام Docker، فإن المثال التالي يوفر طريقة سريعة ومعزولة للتشغيل:
docker run -d --name=factorio \
-p 34197:34197/udp \
-p 27015:27015/tcp \
-v /host/factorio/saves:/factorio/saves \
-v /host/factorio/config:/factorio/config \
--restart unless-stopped \
--user 1000:1000 \
factoriotools/factorio:latestالمزايا: العزل، وسهولة التحديث والنسخ الاحتياطي.
الأمان وجدار الحماية
توصيات أمنية أساسية لخوادم الألعاب:
1. تقييد الوصول عبر SSH:
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl reload sshd2. مثال على استخدام UFW لفتح المنافذ الضرورية فقط:
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
# اجازه SSH (اگر پورت 22 یا پورت دلخواه)
sudo ufw allow 22/tcp
# اجازه پورت بازی (UDP)
sudo ufw allow 34197/udp
# اگر RCON فعال است:
sudo ufw allow 27015/tcp
sudo ufw enable3. قم بتثبيت Fail2Ban لحماية SSH:
sudo apt install fail2ban -yالنسخ الاحتياطي التلقائي والاحتفاظ بالملفات المحفوظة
مثال على برنامج نصي بسيط للنسخ الاحتياطي يمكن تشغيله باستخدام cron أو مؤقت systemd:
#!/bin/bash
SAVE_DIR=/opt/factorio/saves
BACKUP_DIR=/var/backups/factorio
mkdir -p $BACKUP_DIR
TIMESTAMP=$(date +%F_%T)
cp $SAVE_DIR/*.zip $BACKUP_DIR/factorio_save_$TIMESTAMP.zip
# نگهداری آخرین 7 بکاپ
ls -1t $BACKUP_DIR | tail -n +8 | xargs -I{} rm -f $BACKUP_DIR/{}أضف إلى crontab لتشغيله كل ساعة:
0 * * * * /usr/local/bin/factorio_backup.shالتوصية: قم بمزامنة النسخ الاحتياطية مع وحدة تخزين الكائنات (S3 أو ما يماثلها) أو خادم آخر للحفاظ على البيانات في حالة حدوث مشكلة.
مُحسَّن لتقليل زمن الاستجابة وتحسين الأداء
- اختر موقعًا: اختر أقرب موقع جغرافي للاعبين أو موقعًا في وسط تجمع اللاعبين.
- وحدة المعالجة المركزية ذات التردد العالي: تعتمد محاكاة لعبة Factorio بشكل كبير على النوى الفردية؛ لذا يُفضل اختيار خادم بتردد عالٍ للنواة الواحدة (3.5 جيجاهرتز أو أعلى).
- الذاكرة والقرص: يُعد استخدام SSD/NVMe ضروريًا لعمليات الإدخال/الإخراج السريعة عند حفظ وتحميل العالم.
- الشبكة وجودة الخدمة: تأكد من وجود نطاق ترددي كافٍ (خاصة للتحميل) واستخدم الشبكات ذات زمن الوصول المنخفض وبروتوكول BGP إذا لزم الأمر.
المراقبة والسجلات
لعرض السجلات والتحقق من حالة الخادم:
sudo journalctl -u factorio -f
# یا اگر لاگ در فایل است:
tail -f /opt/factorio/factorio-current.logالأدوات المقترحة: نت داتا، بروميثيوس + غرافانا أو أدوات أبسط مثل أعلى و تحميل لعرض استخدام الموارد.
نصائح حول التعديلات والتحديثات
- أوضاع الاختبار: جرب التعديلات في بيئة اختبار قبل تثبيتها على الخادم الرئيسي؛ فقد تتسبب التعديلات في حدوث أعطال أو تباطؤ.
- توافق الإصدار: يجب أن تتطابق إصدارات العميل والخادم.
- طريقة التحديث: عند تحديث الخادم، تأكد من عمل نسخة احتياطية من الحفظ، وإيقاف الخدمة، وإجراء التحديث، ثم إعادة تشغيل الخادم.
أمثلة عملية وحلول للمشاكل الشائعة
المشكلة: لا يستطيع اللاعبون الاتصال
- تحقق من جدار الحماية والمنافذ:
حالة العمل غير المنظمتحقق من المنافذ المفتوحة باستخدامss. - تأكد من أن الخادم يستمع على منفذ UDP رقم 34197:
- تحقق من سجلات النظام بحثًا عن الأخطاء أو الرسائل ذات الصلة.
sudo ss -unlp | grep 34197المشكلة: تأخر الخادم مع ازدياد عدد اللاعبين
- تحقق من تردد وحدة المعالجة المركزية، وحمل النواة الواحدة، واستخدام ذاكرة الوصول العشوائي، وعمليات الإدخال/الإخراج.
- إذا لزم الأمر، قم بالترقية إلى نسخة أساسية أكثر قوة أو وزّع اللاعبين على عدة خوادم.
استخدم خدمات الشركة للحصول على أفضل تجربة
إذا كان لديك إمكانية الوصول إلى خدمات مثل أكثر من 85 موقعًا عالميًا، خادم افتراضي خاص للألعاب، خادم مضاد لهجمات DDoS و خادم سحابي مزود بتقنية NVMe يمكنك تحسين تجربة اللعب بشكل كبير.
الحالات المطبقة:
- اختر موقعًا قريبًا من اللاعبين لتقليل زمن الاستجابة (ping).
- أمثلة مع معالجات ذات ترددات عالية وتقنية NVMe لتحسين الأداء.
- استخدم خادمًا مضادًا لهجمات DDoS للحماية من هجمات UDP.
- الشبكة وBGP إذا كنت بحاجة إلى توجيه متقدم أو Anycast.
- شبكة توصيل المحتوى (CDN) للمحتوى الثابت (التعديلات والصور) - لاحظ أن شبكة توصيل المحتوى (CDN) غير قابلة للتطبيق على الألعاب التي تعمل في الوقت الفعلي باستخدام بروتوكول UDP.
الخاتمة والتوصيات النهائية
يتطلب إعداد خادم Factorio الاهتمام باختيار الأجهزة (وحدة معالجة مركزية قوية أحادية النواة، NVMe)، والموقع المناسب، وإعدادات الأمان، والنسخ الاحتياطية المنتظمة.
ملخص اقتراحات للبدء السريع:
- اختر خادمًا افتراضيًا خاصًا (VPS) مزودًا بمعالج قوي ووحدة تخزين NVMe.
- قم بتثبيت الإصدار بدون واجهة رسومية وقم بتكوين خدمة systemd وفقًا للتعليمات.
- أتمتة جدران الحماية والنسخ الاحتياطية.
- اختر مواقع الخوادم بناءً على عدد اللاعبين واستخدم خدمات مكافحة هجمات DDoS إذا لزم الأمر.
للحصول على معلومات حول الخطط والنصائح، يمكنك زيارة قسم الدعم.









