Как поднять сервер Counter-Strike 2: пошаговая инструкция
Свой сервер CS2 нужен либо чтобы гонять с друзьями без рандомных тиммейтов из мэтчмейкинга, либо чтобы поднять коммьюнити-проект с нормальным античитом и своими правилами. Разворачивается всё за 20-30 минут, если не наступить на пару типовых граблей — а наступают на них почти все новички: забытый GSLT-токен, не тот app id для сервера и невнятная ошибка при первом запуске cs2.sh. Разберём по шагам, с командами, которые реально работают в 2026 году.
Содержание
Системные требования
CS2 на движке Source 2 заметно легче того же Rust или ARK — сервер не рендерит картинку, вся нагрузка идёт на симуляцию физики, хитбоксов и сетевой код.
- RAM: от 2 ГБ на пустой сервер с одной картой. Комфортный минимум для 10-слотового паблика — 3-4 ГБ, с запасом под ОС и логи.
- CPU: важна частота одного ядра, а не их количество — Source 2 плохо параллелит игровой поток. Современный VPS с 2-4 виртуальными ядрами от 3 ГГц закрывает вопрос с головой.
- Диск: SSD/NVMe желательно, но не критично так жёстко, как для игр с процедурной генерацией — карты CS2 статичные, лишней записи на диск немного.
- Место на диске: от 45-50 ГБ под клиентские файлы сервера (сама игра весит по историческим меркам немало, особенно с учётом Workshop-карт, которые вы наверняка захотите добавить).
- ОС: Ubuntu 22.04/24.04 LTS — под неё больше готовых зависимостей и меньше сюрпризов с библиотеками SteamCMD.
Если планируете турнирный сервер под 128-тик или несколько инстансов на одной машине — закладывайте RAM с запасом от 6-8 ГБ и следите за CPU steal, если VPS виртуализован жёстко: для шутера с точным сетевым кодом просадки по CPU ощущаются игроками сразу, в отличие от той же песочницы.
Установка сервера через SteamCMD
Здесь есть нюанс, который путает даже тех, кто раньше ставил CS:GO: у отдельного дедик-билда CS:GO был свой app id — 740, а у CS2 отдельного дедик-билда нет. Valve объединила клиент и серверные файлы под одним app id 730 — тем же, что у самой игры. Скачивается всё через анонимный логин, покупать ничего не нужно, CS2 free-to-play.
Ставим зависимости и создаём отдельного пользователя — не запускайте игровые сервисы под root, это касается вообще любого дедика:
sudo apt update && sudo apt install -y lib32gcc-s1 curl unzip
sudo useradd -m -s /bin/bash cs2server
sudo su - cs2server
Ставим SteamCMD:
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" -o steamcmd.tar.gz
tar -xvzf steamcmd.tar.gz
И качаем сам сервер CS2:
./steamcmd.sh +force_install_dir /home/cs2server/cs2 +login anonymous +app_update 730 validate +quit
Флаг validate в конце обязателен — сверяет контрольные суммы файлов. Без него после нестабильного соединения можно получить битый билд, который падает при старте без внятной ошибки в консоли. Загрузка — порядка 45-50 ГБ, на среднем канале уйдёт от получаса до пары часов.
Обновление сервера — та же команда без validate, SteamCMD докачает только разницу:
./steamcmd.sh +force_install_dir /home/cs2server/cs2 +login anonymous +app_update 730 +quit
Valve обновляет CS2 нередко, иногда с правками сетевого кода и античита — держите команду обновления под рукой в отдельном скрипте и обновляйтесь оперативно после патчей, иначе игроки с актуальным клиентом просто не смогут подключиться из-за несовпадения версии протокола.
Поднять сервер Counter-Strike 2 за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверКонфигурация server.cfg
Внутри установленного сервера файл конфигурации лежит по пути game/csgo/cfg/server.cfg — да, папка называется именно csgo, это наследие движка, которое Valve не переименовала даже в CS2, и это нормально, а не баг установки.
Создаём или редактируем файл:
nano /home/cs2server/cs2/game/csgo/cfg/server.cfg
Минимальный рабочий набор:
hostname "Мой CS2 сервер"
sv_password ""
rcon_password "СЮДА_СЛОЖНЫЙ_ПАРОЛЬ"
sv_lan 0
sv_setsteamaccount "ВАШ_GSLT_ТОКЕН"
mp_maxrounds 24
mp_autoteambalance 1
mp_autokick 0
sv_cheats 0
Отдельно про GSLT (Game Server Login Token) — это то, что чаще всего забывают новички, и сервер потом либо не виден нормально, либо получает урезанный лимит подключений и отваливается через 30-60 минут работы. Токен получаете бесплатно на странице Steam для владельцев серверов (steamcommunity.com/dev/managegameservers), привязываете к app id 730, и прописываете значение в sv_setsteamaccount.
Режим игры задаётся через game_type/game_mode — пара значений, унаследованная ещё от CS:GO и в целом рабочая в CS2, но перед продакшен-запуском стоит свериться с актуальной вики Valve, если планируете нестандартный режим:
| Режим | game_type | game_mode |
|---|---|---|
| Competitive | 0 | 1 |
| Casual (Незаряженное) | 0 | 0 |
| Wingman (2х2) | 0 | 2 |
| Deathmatch | 1 | 2 |
| Arms Race | 1 | 0 |
Задаются либо строкой в server.cfg (game_type 0 / game_mode 1), либо параметром запуска через +game_type/+game_mode — второй вариант удобнее, если один сервер периодически переключаете между режимами скриптом.
Запуск через cs2.sh
Стартует сервер обёрточным скриптом cs2.sh в корне установки, который сам разбирается с путями до бинарника Source 2. Минимальный рабочий запуск:
cd /home/cs2server/cs2
./cs2.sh -dedicated -console -usercon \
-port 27015 \
+map de_dust2 \
+game_type 0 +game_mode 1 \
+exec server.cfg
Разберём ключевые флаги:
-dedicated— запуск в режиме выделенного сервера, без клиентского окна.-usercon— включает удалённый RCON поверх обычного игрового порта (без негоrcon_passwordиз конфига не даст подключиться извне).-port— основной UDP/TCP-порт, по умолчанию 27015. Если поднимаете несколько серверов на одном IP — раздавайте с шагом минимум 5-10, у CS2 рядом с основным портом резервируются служебные.+map— стартовая карта. Ротацию карт после первого запуска настраивают отдельно черезmapcyclefileв конфиге или Matchmaking-подобные конфиги для competitive.+exec server.cfg— подтягивает конфиг, который мы правили на прошлом шаге. Без этой строчки сервер стартует с настройками по умолчанию, и половина ваших правок вserver.cfgпросто не применится.
Если хочется GOTV (демо-трансляцию матча вживую) — добавьте +tv_enable 1 +tv_port 27020, это отдельный UDP-порт, который тоже придётся пробросить.
Первый запуск стоит сделать вручную в текущей сессии SSH (или в screen/tmux), чтобы увидеть ошибки в консоли живьём, а не гадать по обрывочным логам systemd. Если сервер падает сразу после старта без сообщения — почти всегда это либо неверный GSLT (или его отсутствие при sv_lan 0), либо занятый порт (ss -ulnp | grep 27015), либо битый билд после прерванной загрузки — переустановите с validate.
Подключение и проверка
Из клиента игры: открываем консоль разработчика (нужно включить её в настройках игры — Options → Game → Enable Developer Console) и вводим:
connect ВАШ_IP:27015
Если задан пароль сервера — Steam спросит его отдельным окном, либо можно сразу передать его в команде:
connect ВАШ_IP:27015; password СЮДА_ПАРОЛЬ
В консоли самого сервера полезные команды для первичной проверки:
status— список подключённых игроков и текущее состояние сервера.changelevel de_mirage— смена карты без перезапуска процесса.sv_cheats 1— только для тестового прогона механик, не забудьте вернуть в0перед тем, как пускать реальных игроков (иначе часть статистики и достижений у них просто не засчитается).
Проброс портов и файрвол
CS2 использует один основной порт для игрового трафика и RCON вместе (в отличие, например, от Rust, где под RCON выделен отдельный порт), плюс опциональный порт GOTV:
| Порт | Протокол | Назначение |
|---|---|---|
| 27015 | UDP/TCP | Игровой трафик + RCON (через -usercon) |
| 27020 | UDP | GOTV / SourceTV (если включено) |
Если VPS сидит на публичном IP без NAT — обычно достаточно открыть порты в файрволе:
sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27020/udp
sudo ufw enable
Если хостинг держит инстанс за NAT — нужен проброс на уровне панели управления или роутера, одного ufw тут не хватит: пакеты просто не дойдут до внутреннего адреса машины. Проверить, что порт реально виден снаружи, можно с другой машины: nmap -sU -p 27015 ВАШ_IP, либо любым онлайн-сканером.
RCON-пароль лучше не светить и ограничивать доступ по IP там, где это возможно на уровне файрвола — брутфорс RCON на популярных играх это фоновый шум интернета, а не редкость.
Автозапуск через systemd
Ручной запуск умирает вместе с SSH-сессией и не поднимается сам после ребута хоста. Решение — systemd-юнит, аналогично тому, как это делается для Rust или Garry's Mod.
Создаём /etc/systemd/system/cs2server.service:
[Unit]
Description=Counter-Strike 2 Dedicated Server
After=network.target
[Service]
User=cs2server
WorkingDirectory=/home/cs2server/cs2
ExecStart=/home/cs2server/cs2/cs2.sh -dedicated -console -usercon -port 27015 +map de_dust2 +game_type 0 +game_mode 1 +exec server.cfg
Restart=on-failure
RestartSec=10
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
Активация:
sudo systemctl daemon-reload
sudo systemctl enable cs2server
sudo systemctl start cs2server
Логи смотрим через journalctl -u cs2server -f — так же удобно, как со всеми остальными Source-серверами. Для обновления после патчей Valve пишут обычно отдельный скрипт: остановить юнит, прогнать steamcmd с app_update 730, запустить юнит обратно — и вешают его либо на ручной запуск после анонса патча, либо в cron с проверкой версии.
Поднять сервер Counter-Strike 2 за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Почему сервер не виден в браузере серверов или в списке друзей?
Чаще всего — не задан или неверный GSLT-токен в sv_setsteamaccount, либо sv_lan оставлен в 1 (это режим локальной сети без Steam-авторизации, для публичного сервера нужен 0).
Нужен ли отдельный app id для дедик-сервера, как раньше у CS:GO?
Нет, у CS2 клиент и серверные файлы качаются под одним app id 730 — отдельного 740-подобного билда больше не существует.
Можно ли поставить CS2-сервер на Windows VPS?
Технически Valve выпускает и Windows-сборку, но подавляющее большинство готовых скриптов автозапуска, мониторинга и панелей управления написаны под Linux — плюс он стабильно легче по потреблению ресурсов на длительной работе.
Сколько игроков реально тянет минимальный сервер на 2 ГБ RAM?
Ориентировочно хватает на 10-слотовый казуальный сервер, для competitive/premier-подобных матчей с полной статистикой лучше закладывать 3-4 ГБ и следить за нагрузкой по status и логам, а не гадать заранее.
Как настроить кастомные карты из Workshop?
Через host_workshop_collection <ID коллекции> в конфиге или параметре запуска — сервер сам скачает карты коллекции при старте, но учитывайте это в расчёте места на диске из раздела про системные требования.