- آیا آمادهاید یک سرور Garry’s Mod پایدار، امن و کمتاخیر راهاندازی کنید؟
- انتخاب لوکیشن و پلن مناسب
- پیشنیازها و آمادهسازی سیستم
- دانلود و نصب SRCDS با SteamCMD
- پیکربندی سرور — server.cfg و پارامترهای اجرا
- اجرای سرور بهعنوان سرویس systemd
- فایروال، پورتها و امنیت شبکه
- بهینهسازی عملکرد و کاهش پینگ
- مدیریت مودها، Workshop و اتوماسیون دانلود
- آپدیت خودکار و بکاپ
- مانیتورینگ، لاگها و نگهداری
- نکات عملی برای مدیران و DevOps
- جمعبندی و پیشنهادات کلی
آیا آمادهاید یک سرور 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
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 (بازی و 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 توجه کنید.









