آموزش کامل راه اندازی سرور بازی آنلاین Garry's Mod
در این مقاله به آموزش قدم‌به‌قدم راه اندازی سرور بازی آنلاین Garry’s Mod برای مدیران سرور و گیمرها پرداخته می‌شود.

آموزش کامل راه اندازی سرور بازی آنلاین Garry’s Mod

در این مقاله به آموزش قدم‌به‌قدم راه اندازی سرور بازی آنلاین Garry’s Mod پرداخته می‌شود. نکاتی از جمله انتخاب لوکیشن مناسب، نصب و پیکربندی SRCDS، تنظیمات امنیتی و بهینه‌سازی پینگ و منابع سخت‌افزاری شامل می‌شود.
0 Hisse senetleri
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 بهره ببرید تا پهنای باند کاهش یابد و دانلود سریع‌تر انجام شود.

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

Önerilen işletim sistemi: Ubuntu 20.04/22.04 Veya 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 Ve 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 Veya 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) بهترین روش است.

Ayrıca Şunları da Beğenebilirsiniz

God of War 3 hikayesi

Giriş Tanrıların alacakaranlığından önce, onun arasında yerini talep edecek bir efsane ortaya çıktı…