- هل أنت مستعد لإعداد خادم Garry's Mod مستقر وآمن وذو زمن استجابة منخفض؟
- اختيار الموقع والخطة المناسبين
- المتطلبات الأساسية وإعداد النظام
- قم بتنزيل وتثبيت SRCDS باستخدام SteamCMD
- تكوين الخادم — ملف server.cfg ومعلمات التنفيذ
- تشغيل الخادم كخدمة systemd
- جدار الحماية والمنافذ وأمن الشبكة
- تحسين الأداء وتقليل زمن الاستجابة (ping)
- إدارة التعديلات، وورشة العمل، وأتمتة التنزيلات
- التحديثات والنسخ الاحتياطية التلقائية
- المراقبة والسجلات والصيانة
- نصائح عملية للمديرين ومهندسي DevOps
- ملخص وتوصيات عامة
هل أنت مستعد لإعداد خادم Garry's Mod مستقر وآمن وذو زمن استجابة منخفض؟
يشرح هذا الدليل المفصل خطوة بخطوة لمديري الخوادم واللاعبين وفرق DevOps العملية الكاملة لإعداد خادم Garry's Mod (SRCDS) باستخدام SteamCMD. تتناول هذه المقالة اختيار الموقع المناسب، وتثبيت وتكوين SRCDS، وإعدادات الأمان مثل RCON وجدار الحماية، وتحسين زمن الاستجابة (ping) والأجهزة، وإدارة ورشة العمل، وأتمتة التحديثات والنسخ الاحتياطي، ونصائح عملية للصيانة والمراقبة.
اختيار الموقع والخطة المناسبين
يُعدّ اختيار الموقع بالغ الأهمية في لعبة Garry's Mod، إذ تعتمد تجربة اللاعب على سرعة الاتصال (ping). بالنسبة للاعبين في بلد مُحدد، اختر أقرب مركز بيانات: أوروبا (فرانكفورت/لندن)، أمريكا الشمالية (نيويورك/شيكاغو)، أمريكا الغربية (لوس أنجلوس)، آسيا (سنغافورة/طوكيو)، أستراليا (سيدني)، البرازيل (ساو باولو).
الغرض من رسالة التنبيه التالية 80 مللي ثانية للحصول على تجربة مقبولة، اتبع ما يلي: 60 مللي ثانية يُنصح به لاكتساب خبرة تنافسية.
توصية بالأجهزة بناءً على عدد اللاعبين
- صغير (حتى 12 لاعبًا): 2 وحدة معالجة مركزية افتراضية، 4 جيجابايت من ذاكرة الوصول العشوائي، قرص صلب SSD، عرض نطاق ترددي 100 ميجابت في الثانية.
- متوسط (12-32 لاعبًا): 4 وحدات معالجة مركزية افتراضية، 8-16 جيجابايت من ذاكرة الوصول العشوائي، محرك أقراص الحالة الصلبة NVMe، 1 جيجابت في الثانية.
- كبير (أكثر من 32 لاعبًا أو إضافات ثقيلة): خادم ذو 6+ وحدات معالجة مركزية افتراضية، وذاكرة وصول عشوائي 32 جيجابايت أو أكثر، وNVMe، وسرعة نقل بيانات من 1 إلى 10 جيجابت في الثانية، وسرعة إدخال/إخراج عالية.
استخدم خوادم مخصصة للألعاب أو خوادم مضادة لهجمات DDoS لتقليل زمن الاستجابة وحماية البيانات من الهجمات. استخدم شبكة توصيل المحتوى (CDN) لتوزيع ملفات التنزيل (الخرائط، الإضافات) لتقليل استهلاك النطاق الترددي وتسريع التنزيلات.
المتطلبات الأساسية وإعداد النظام
نظام التشغيل الموصى به: أوبونتو 20.04/22.04 أو ديبيان 11/12. قم بتشغيل الأوامر التالية كمستخدم لديه صلاحيات sudo لتحديث النظام وتثبيت المتطلبات الأساسية.
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget lib32gcc-s1 lib32stdc++6 ca-certificates screen tmux unzipإذا كانت الحزمة ستيم سمد متوفر في خزانات:
sudo apt install -y steamcmdوإلا، فقم بتثبيت SteamCMD يدويًا:
sudo mkdir -p /opt/steamcmd
sudo chown $USER:$USER /opt/steamcmd
cd /opt/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gzأنشئ مستخدمًا غير مستخدم الجذر لتشغيل الخادم:
sudo useradd -m -s /bin/bash gmod
sudo passwd gmod
sudo mkdir -p /home/gmod/server
sudo chown -R gmod:gmod /home/gmodقم بتنزيل وتثبيت SRCDS باستخدام SteamCMD
قم بتسجيل الدخول إلى حساب مستخدم gmod وقم بتشغيل SteamCMD لتثبيت خادم Garry's Mod:
sudo su - gmod
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +quitلتنزيل عناصر ورشة العمل (مثل المجموعة أو الخريطة):
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +workshop_download_item 4020 <WORKSHOP_ID> +quitلتحميل مجموعة تلقائيًا عند بدء تشغيل SRCDS، استخدم المعلمات التالية:
+host_workshop_collection <COLLECTION_ID> +host_workshop_authkey <STEAM_WEB_API_KEY>تكوين الخادم — ملف server.cfg ومعلمات التنفيذ
ضع ملف الإعدادات الأساسي في المسار /home/gmod/server/garrysmod/cfg/server.cfg إنشاء أو تعديل. مثال على الإعدادات الأساسية:
hostname "My GMod Server"
rcon_password "PUT_A_STRONG_PASSWORD_HERE"
sv_password ""
sv_cheats 0
sv_lan 0
sv_allowdownload 1
sv_allowupload 1
sv_maxrate 30000
sv_minrate 5000
sv_timeout 120
sv_voiceenable 1
sv_pure 0
sv_region 3نصائح حول الإعدادات:
- sv_maxrate و sv_minrate يتم التعديل بناءً على عرض النطاق الترددي وعدد اللاعبين.
- لإدارة التعديلات والوصول إلى الملفات من مجموعة ورشة العمل استخدم هذه الخاصية لجعل اللاعبين يقومون بتنزيل الملفات تلقائيًا.
مثال على معلمات تنفيذ SRCDS:
cd /home/gmod/server
./srcds_run -game garrysmod +maxplayers 32 +map gm_flatgrass -tickrate 66 -port 27015 +host_workshop_collection <COLLECTION_ID> -autoupdateتشغيل الخادم كخدمة systemd
أنشئ خدمة systemd لتسهيل الإدارة والتشغيل التلقائي عند بدء التشغيل. مثال على إنشاء ملف خدمة:
sudo tee /etc/systemd/system/gmod.service <<'EOF'
[Unit]
Description=Garry's Mod Server
After=network.target
[Service]
Type=simple
User=gmod
WorkingDirectory=/home/gmod/server
ExecStart=/home/gmod/server/srcds_run -game garrysmod +maxplayers 32 +map gm_flatgrass -tickrate 66 -port 27015
Restart=on-failure
RestartSec=10
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
EOFsudo systemctl daemon-reload
sudo systemctl enable gmod.service
sudo systemctl start gmod.service
sudo journalctl -u gmod.service -fجدار الحماية والمنافذ وأمن الشبكة
منافذ Garry's Mod / SRCDS الشائعة:
- UDP 27015 (لعبة واستعلام)
- TCP/UDP 27015 (قد يستخدم RCON بروتوكول TCP)
- UDP 27005 (عميل ستيم)
مثال على التكوين باستخدام UFW:
sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27005/udp
sudo ufw enableللحماية من هجمات DDoS، استخدم خطط خوادم مضادة لهجمات DDoS لتصفية هجمات الشبكة قبل وصولها إلى الخادم.
تحسين الأداء وتقليل زمن الاستجابة (ping)
أهم النصائح لتحسين أداء الخادم:
- اختر موقعًا قريبًا من اللاعبين لتقليل زمن الاستجابة (RTT).
- استخدم SSD/NVMe لتقليل أوقات تحميل الخرائط وزيادة عمليات الإدخال/الإخراج.
- استخدم وحدة معالجة مركزية عالية التردد لإجراء حسابات الفيزياء؛ يعتمد GMod على تردد النواة الواحدة في كثير من الحالات.
إعدادات نواة الشبكة (مثال):
sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.wmem_max=26214400كذلك، يجب موازنة قيم sv_maxrate و tickrate و maxplayers بناءً على الموارد وعدد اللاعبين، واختبار التعديلات الثقيلة قبل إصدارها على الخادم.
إدارة التعديلات، وورشة العمل، وأتمتة التنزيلات
استخدم SteamCMD لإضافة التعديلات من ورشة العمل:
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +workshop_download_item 4020 <WORKSHOP_ID> +quitاقتراح: استخدم المجموعة ومرر معرّفها في المعامل +مجموعة ورش العمل المضيفة اضبط برنامج Steam على تنزيل العناصر عندما يكون الخادم قيد التشغيل.
لتثبيت الإضافات يدويًا، ما عليك سوى نسخ الملفات إلى garrysmod/addons قم بإدخاله وأعد تشغيل الخادم.
التحديثات والنسخ الاحتياطية التلقائية
نص برمجي بسيط لتحديث SRCDS:
#!/bin/bash
systemctl stop gmod
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +quit
systemctl start gmodقم بإضافته إلى cron (مثال: كل يوم في الساعة 4 صباحًا):
sudo crontab -e
0 4 * * * /home/gmod/update_gmod.sh >> /var/log/gmod_update.log 2>&1النسخ الاحتياطي: من المجلدات garrysmod/maps، garrysmod/addons وقم بعمل نسخ احتياطية منتظمة لملفات التكوين. استخدم أداة rsync أو لقطات البنية التحتية السحابية وتخزين الكائنات (متوافق مع S3) لاستعادة البيانات بسرعة.
المراقبة والسجلات والصيانة
تسجيل الدخول garrysmod/logs ويمكن رؤية systemd. استخدم logrotate لتدوير السجلات.
لمراقبة حالة الخادم، تُستخدم أدوات مثل بروميثيوس + غرافانا أو زابيكس يوصى بمراقبة وحدة المعالجة المركزية، وذاكرة الوصول العشوائي، والشبكة، وفقدان الحزم.
يمكن أن تؤدي عمليات إعادة التشغيل المجدولة (على سبيل المثال كل 6-12 ساعة) إلى تقليل تسرب الذاكرة والمشاكل التي تسببها الإضافات.
نصائح عملية للمديرين ومهندسي DevOps
- قم باختبار التحديثات على خادم تجريبي أولاً لتحديد مشاكل التعديلات.
- استخدم اسم نطاق أو نظام أسماء النطاقات (DNS) للخادم لتسهيل تغيير عنوان IP؛ أنشئ سجل A لـ server.example.com.
- استخدم شبكة توصيل المحتوى (CDN) لتنزيل الملفات، وموازن الأحمال (Load Balancer) وبروتوكول BGP/Anycast لضمان التوافر العالي.
أفضل الممارسات: عند زيادة السعة أو تقديم خدمة عامة، استخدم تقسيم حركة مرور الملفات إلى شبكات توصيل المحتوى (CDNs) والتصميم الموزع لتقليل حمل الخادم وتحسين التوافر.
ملخص وتوصيات عامة
باتباع هذا الدليل، يمكنك إعداد خادم Garry's Mod مستقر وآمن ومُحسَّن، بدءًا من تثبيت SRCDS باستخدام SteamCMD وصولًا إلى تهيئة ملف server.cfg وخدمة systemd وجدار الحماية والحماية من هجمات DDoS. انتبه إلى الموقع، والأجهزة المناسبة، واستخدام شبكة توصيل المحتوى (CDN) للحصول على أفضل أداء.









