با یک سرور اختصاصی Counter-Strike ۲، تیم یا کلن شما همیشه سرور تمرین، مسابقه یا Retake خودش را دارد؛ با پینگ پایین، تنظیمات دلخواه و بدون محدودیت سرورهای عمومی. در این آموزش سرور CS2 را روی VPS لینوکس با SteamCMD نصب میکنیم، توکن GSLT میگیریم، تنظیمات اصلی را انجام میدهیم و سرور را بهصورت سرویس دائمی و امن اجرا میکنیم.
فهرست مطالب
سرور مورد نیاز
- پردازنده: ۲ هسته با فرکانس بالا برای یک سرور ۱۰ تا ۱۲ نفره؛ برای Tick پایدار، کیفیت هسته مهمتر از تعداد است.
- RAM: حدود ۴ گیگابایت.
- دیسک: فایلهای سرور CS2 چند ده گیگابایت حجم دارند و با هر بهروزرسانی ممکن است بیشتر شوند؛ حداقل ۴۰ تا ۶۰ گیگابایت فضای آزاد در نظر بگیرید.
- شبکه: نزدیک به بازیکنان، با حفاظت DDoS.
- سیستمعامل: Ubuntu ۲۲.۰۴ یا ۲۴.۰۴ (۶۴ بیتی).
مقایسه منابع بازیهای مختلف در سرور گیم چه مشخصاتی لازم دارد.
گام ۱: دریافت توکن GSLT
برای اینکه سرور در فهرست سرورهای اینترنتی دیده شود و بازیکنان بتوانند وصل شوند، به یک Game Server Login Token نیاز دارید:
- با حساب Steam خود وارد صفحه مدیریت حسابهای سرور بازی Steam (Steam Game Server Account Management) شوید.
- App ID را
730وارد کنید و یک یادداشت (مثلاً نام سرور) بنویسید. - توکن ساختهشده را کپی و در جای امن نگه دارید.
حساب Steam برای ساخت توکن باید شرایط Valve را داشته باشد (مثلاً شماره تلفن تأییدشده و نداشتن محدودیت). هر توکن فقط برای یک سرور همزمان قابل استفاده است.
گام ۲: آمادهسازی سرور
ابتدا امنسازی اولیه را طبق تنظیمات امنیتی ضروری VPS انجام دهید. سپس کتابخانههای ۳۲ بیتی مورد نیاز SteamCMD را نصب و یک کاربر جداگانه بسازید:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 ca-certificates curl screen
sudo adduser --disabled-password --gecos "" steam
sudo -u steam -s
cd ~
گام ۳: نصب SteamCMD و فایلهای CS2
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +force_install_dir /home/steam/cs2 +login anonymous +app_update 730 validate +quit
دانلود بسته به سرعت شبکه چند دقیقه طول میکشد. سرور CS2 به کتابخانه steamclient.so در مسیر SDK نیاز دارد:
mkdir -p ~/.steam/sdk64
ln -sf ~/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so
گام ۴: اولین اجرا
cd ~/cs2/game/bin/linuxsteamrt64
./cs2 -dedicated -console -usercon -port 27015 \
+game_type 0 +game_mode 1 +map de_dust2 \
+sv_setsteamaccount YOUR_GSLT_TOKEN
game_type 0وgame_mode 1حالت Competitive است؛game_mode 0حالت Casual.- برای Deathmatch:
+game_type 1 +game_mode 2؛ برای Wingman:+game_type 0 +game_mode 2.
اگر سرور بدون خطا بالا آمد و نقشه بارگذاری شد، با quit آن را متوقف کنید و به تنظیمات بروید.
گام ۵: فایل server.cfg و حالتهای بازی
فایل ~/cs2/game/csgo/cfg/server.cfg را بسازید:
hostname "TrustHost CS2 | Tehran"
sv_password ""
rcon_password "YOUR_STRONG_RCON_PASSWORD"
sv_lan 0
sv_cheats 0
mp_autoteambalance 1
mp_limitteams 1
sv_hibernate_when_empty 1
log on
- برای سرور خصوصی تیم،
sv_passwordبگذارید. - رمز RCON را قوی انتخاب کنید و آن را در اختیار کسی نگذارید؛ RCON کنترل کامل سرور را میدهد.
sv_hibernate_when_emptyوقتی سرور خالی است مصرف پردازنده را کم میکند.
برای تنظیمات اختصاصی هر حالت، فایلهای پیکربندی جداگانه بسازید و با exec اجرا کنید.
گام ۶: اجرای دائمی با systemd
یک اسکریپت اجرا با توکن و تنظیمات بسازید (/home/steam/start-cs2.sh):
#!/bin/bash
cd /home/steam/cs2/game/bin/linuxsteamrt64
exec ./cs2 -dedicated -port 27015 +game_type 0 +game_mode 1 \
+map de_dust2 +sv_setsteamaccount "$(cat /home/steam/.gslt)" +exec server.cfg
echo "YOUR_GSLT_TOKEN" > /home/steam/.gslt && chmod 600 /home/steam/.gslt
chmod +x /home/steam/start-cs2.sh
سپس با کاربر دارای sudo، فایل /etc/systemd/system/cs2.service:
[Unit]
Description=Counter-Strike 2 Dedicated Server
After=network-online.target
[Service]
User=steam
ExecStart=/usr/bin/screen -DmS cs2 /home/steam/start-cs2.sh
Restart=on-failure
RestartSec=20
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now cs2
توکن در فایل جداگانه با دسترسی محدود نگهداری میشود تا در فهرست فرایندها یا اسکریپتهای عمومی دیده نشود.
فایروال و اتصال
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
بازیکنان با باز کردن کنسول بازی و دستور connect IP:27015 وصل میشوند (و در صورت داشتن رمز، password YOURPASS را پیش از آن وارد میکنند). برای امنیت بیشتر، پورت TCP مربوط به RCON را فقط برای IP خودتان باز کنید.
بهروزرسانی
Valve بهروزرسانیهای CS2 را مرتب منتشر میکند و بازیکنان با نسخه جدید بازی نمیتوانند به سرور قدیمی وصل شوند. پس از هر بهروزرسانی:
sudo systemctl stop cs2
sudo -u steam /home/steam/steamcmd/steamcmd.sh +force_install_dir /home/steam/cs2 \
+login anonymous +app_update 730 validate +quit
sudo systemctl start cs2
میتوانید این دستورها را در یک اسکریپت قرار دهید و با cron در ساعات خلوت اجرا کنید؛ آموزش در cron و systemd timers.
افزونهها
برای افزونههایی مثل Retake، تمرین Prefire، مدیریت ادمین و آمار، رایجترین مسیر در CS2، نصب Metamod:Source و فریمورک CounterStrikeSharp است. پیش از هر بهروزرسانی بازی، سازگاری این فریمورکها را بررسی کنید؛ بهروزرسانیهای بازی گاهی موقتاً آنها را از کار میاندازند. افزونهها را فقط از مخازن معتبر دریافت کنید.
سوالات متداول
بدون GSLT میتوان سرور CS2 داشت؟
برای بازی در شبکه محلی بله، اما برای اینکه بازیکنان از اینترنت وصل شوند و سرور در فهرستها دیده شود، توکن GSLT لازم است.
سرور CS2 روی ویندوز هم اجرا میشود؟
بله، اما نسخه لینوکس سبکتر است و منابع بیشتری برای بازی باقی میگذارد. این آموزش برای لینوکس نوشته شده است.
Tick Rate سرور CS2 چقدر است؟
CS2 از سیستم Sub-tick استفاده میکند و برخلاف CS:GO، تنظیم ۶۴ یا ۱۲۸ Tick برای سرورهای عادی مطرح نیست. کیفیت پردازنده و شبکه همچنان روی تجربه بازی اثر مستقیم دارد.
چرا سرور در فهرست سرورها دیده نمیشود؟
توکن GSLT، باز بودن پورت ۲۷۰۱۵ UDP و تنظیم نبودن sv_lan 1 را بررسی کنید. اگر سرور رمز دارد، در برخی فیلترهای فهرست نمایش داده نمیشود.
سرور CS2 با پینگ پایین و آنتیدیداس
سرورهای مجازی گیم تراست هاست در دیتاسنتر تهران با حفاظت DDoS لایه ۳ و ۴ در لبه شبکه، برای تیمها و کلنهای ایرانی مناسباند. برای فایلهای حجیم CS2، پلنی با دیسک کافی انتخاب کنید.