Полное руководство по настройке онлайн-игрового сервера в Garry's Mod.
در این مقاله به آموزش قدم‌به‌قدم راه اندازی سرور بازی آنلاین Garry’s Mod برای مدیران سرور و گیمرها پرداخته می‌شود.

Полное руководство по настройке онлайн-сервера для игры Garry's Mod.

در این مقاله به آموزش قدم‌به‌قدم راه اندازی سرور بازی آنلاین Garry’s Mod پرداخته می‌شود. نکاتی از جمله انتخاب لوکیشن مناسب، نصب و پیکربندی SRCDS، تنظیمات امنیتی و بهینه‌سازی پینگ و منابع سخت‌افزاری شامل می‌شود.
0 Акции
0
0
0
0

آیا آماده‌اید یک سرور Garry’s Mod پایدار، امن و کم‌تاخیر راه‌اندازی کنید؟

در این راهنمای گام‌به‌گام برای مدیران سرور، گیمرها و تیم‌های DevOps، فرآیند کامل راه‌اندازی سرور Garry’s Mod (SRCDS) با استفاده از SteamCMD توضیح داده شده است. این مقاله شامل انتخاب لوکیشن مناسب، نصب و پیکربندی SRCDS، تنظیمات امنیتی مثل RCON و فایروال، بهینه‌سازی پینگ و سخت‌افزار، مدیریت Workshop، اتوماسیون آپدیت و بکاپ و نکات عملی برای نگهداری و مانیتورینگ است.

انتخاب لوکیشن و پلن مناسب

انتخاب لوکیشن برای Garry’s Mod بسیار مهم است چون تجربه بازیکنان به پینگ وابسته است. برای بازیکنان در یک کشور خاص، نزدیک‌ترین دیتاسنتر را انتخاب کنید: اروپا (فرانکفورت/لندن)، شمال آمریکا (نیویورک/شیکاگو)، غرب آمریکا (لس‌آنجلس)، آسیا (سنگاپور/توکیو)، استرالیا (سیدنی)، برزیل (سائوپائولو).

هدف پینگ زیر 80ms برای تجربه قابل‌قبول و زیر 60ms برای تجربه رقابتی توصیه می‌شود.

پیشنهاد سخت‌افزار بر اساس تعداد بازیکن

  • کوچک (تا 12 پلیر): 2 vCPU، 4GB RAM، SSD، پهنای باند 100Mbps.
  • متوسط (12–32 پلیر): 4 vCPU، 8–16GB RAM، NVMe SSD، 1Gbps.
  • بزرگ (بیش از 32 پلیر یا heavy addons): 6+ vCPU، 32GB+ RAM، NVMe، 1–10Gbps و سرور با I/O بالا.

برای کمترین تأخیر و حفاظت از حملات، از سرورهای گیمینگ اختصاصی یا سرورهای ضدDDoS استفاده کنید. برای توزیع فایل‌های دانلود (map، addon) از CDN بهره ببرید تا پهنای باند کاهش یابد و دانلود سریع‌تر انجام شود.

پیش‌نیازها و آماده‌سازی سیستم

Рекомендуемая операционная система: Ubuntu 20.04/22.04 Или Debian 11/12. دستورات زیر را به‌عنوان کاربر با دسترسی sudo اجرا کنید تا سیستم به‌روز و پیش‌نیازها نصب شوند.

sudo apt update && sudo apt upgrade -y
sudo apt install -y wget lib32gcc-s1 lib32stdc++6 ca-certificates screen tmux unzip

اگر پکیج steamcmd در مخازن موجود باشد:

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

برای دانلود آیتم‌های Workshop (مثال collection یا map):

/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +workshop_download_item 4020 <WORKSHOP_ID> +quit

برای بارگذاری اتوماتیک یک collection هنگام راه‌اندازی 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 را بر اساس پهنای باند و تعداد بازیکنان تنظیم کنید.
  • برای مدیریت مودها و دسترسی فایل‌ها از workshop collection استفاده کنید تا بازیکنان به‌طور خودکار فایل‌ها را دانلود کنند.

نمونه پارامتر اجرای 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
EOF
sudo 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 (بازی و query)
  • TCP/UDP 27015 (RCON ممکن است TCP استفاده کند)
  • UDP 27005 (Steam client)

مثال تنظیمات با UFW:

sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27005/udp
sudo ufw enable

برای محافظت در برابر DDoS از پلن‌های سرور ضدDDoS استفاده کنید تا حملات شبکه‌ای قبل از رسیدن به سرور فیلتر شوند.

Оптимизация производительности и снижение пинга.

نکات کلیدی برای بهبود عملکرد سرور:

  • لوکیشن نزدیک بازیکنان انتخاب کنید تا RTT پایین بیاید.
  • از SSD/NVMe برای کاهش زمان بارگذاری map و افزایش I/O استفاده کنید.
  • برای محاسبات فیزیک از CPU با فرکانس بالا استفاده کنید؛ GMod در بسیاری موارد به فرکانس تک‌هسته‌ای وابسته است.

تنظیمات کرنل شبکه (مثال):

sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.wmem_max=26214400

همچنین sv_maxrate، tickrate و maxplayers را براساس منابع و تعداد بازیکنان بالانس کنید و مودهای سنگین را قبل از انتشار در سرور تست نمایید.

مدیریت مودها، Workshop و اتوماسیون دانلود

برای اضافه کردن مودها از Workshop از SteamCMD استفاده کنید:

/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +workshop_download_item 4020 <WORKSHOP_ID> +quit

پیشنهاد: از collection استفاده کنید و ID آن را در پارامتر +host_workshop_collection قرار دهید تا هنگام اجرای سرور، Steam آیتم‌ها را دانلود کند.

برای نصب دستی addons کافی است فایل‌ها را در 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

قرار دادن در کرون (مثال هر روز ساعت ۴ صبح):

sudo crontab -e
0 4 * * * /home/gmod/update_gmod.sh >> /var/log/gmod_update.log 2>&1

بکاپ: از فولدرهای garrysmod/maps, garrysmod/addons و cfg بکاپ منظم بگیرید. از rsync یا snapshotهای زیرساخت ابری و object storage (S3-compatible) برای بازیابی سریع استفاده کنید.

مانیتورینگ، لاگ‌ها و نگهداری

لاگ‌ها در garrysmod/logs و systemd قابل مشاهده‌اند. از logrotate برای چرخش لاگ‌ها استفاده کنید.

برای مانیتورینگ وضعیت سرور ابزارهایی مانند Prometheus + Grafana Или Zabbix توصیه می‌شود تا CPU, RAM, network و packet loss را پایش کنید.

ری‌استارت زمان‌بندی شده (مثلاً هر 6–12 ساعت) می‌تواند حافظه نشت و مشکلات ناشی از addons را کاهش دهد.

نکات عملی برای مدیران و DevOps

  • ابتدا آپدیت‌ها را در یک سرور staging تست کنید تا مشکلات مودها شناسایی شوند.
  • از نام دامنه یا DNS برای سرور استفاده کنید تا تغییر IP ساده‌تر باشد؛ رکورد A برای server.example.com بسازید.
  • برای فایل‌های دانلود از CDN و برای دسترسی بالا از Load Balancer و BGP/Anycast استفاده کنید.

Best Practice: هنگام افزایش ظرفیت یا ارائه سرویس عمومی، از تقسیم ترافیک فایل‌ها به CDN و طراحی توزیع‌شده استفاده کنید تا بار سرورها کاهش یابد و دسترسی بهتر شود.

جمع‌بندی و پیشنهادات کلی

با دنبال کردن این راهنما می‌توانید یک سرور Garry’s Mod پایدار، امن و بهینه راه‌اندازی کنید؛ از نصب SRCDS با SteamCMD تا پیکربندی server.cfg، سرویس systemd، فایروال و محافظت ضدDDoS. برای عملکرد بهتر به لوکیشن، سخت‌افزار مناسب و استفاده از CDN توجه کنید.

نزدیک‌ترین دیتاسنتر به کاربران هدف (مثلاً اروپا: فرانکفورت/لندن، آسیا: سنگاپور/توکیو) بهترین گزینه برای کمترین پینگ است.
با ایجاد کاربر غیرروت، دانلود SteamCMD و اجرای دستور +app_update 4020 از SteamCMD می‌توانید SRCDS را نصب کنید.
RCON را تنها در صورت نیاز فعال کنید، از رمز قوی و محدودسازی دسترسی IP استفاده کنید و در صورت امکان از تونل یا VPN مدیریت بهره ببرید.
از collection استفاده کنید و ID آن را در +host_workshop_collection قرار دهید تا Steam آیتم‌ها را خودکار دانلود کند؛ مودهای سنگین را قبل از انتشار تست کنید.
بکاپ منظم از فولدرهای maps، addons و cfg با rsync یا snapshot ابری و ذخیره در object storage (S3-compatible) بهترین روش است.

Вам также может понравиться

Сюжет игры God of War: Ragnarok

В основе сюжета — Кратос, бог войны, и его сын-подросток Атреус, которые сталкиваются с надвигающимся конфликтом Рагнарёк...