Свой сервер CS2 — это тренировки команды без посторонних, свои конфиги и карты, праки и миксы в любое время. Аренда готового кс2 сервера у игровых хостингов стоит дороже обычного VPS, а гибкости даёт меньше: вы ограничены панелью и не можете поставить свои плагины или второй сервер на то же железо. В этом руководстве поднимем выделенный сервер Counter-Strike 2 на VPS с Ubuntu 24.04 через SteamCMD: скачаем app 730, получим GSLT-токен, запустим с параметром -dedicated и оформим автозапуск. Все команды проверены и готовы к копированию.
Требования: сколько ресурсов нужно серверу CS2
CS2 на движке Source 2 заметно тяжелее старого CS:GO — и по диску, и по процессору. Реальная картина такая:
- Диск: файлы сервера занимают около 35 ГБ, плюс нужно место под систему и обновления — итого минимум 50–60 ГБ. NVMe обязателен: на медленном диске загрузка карт и валидация обновлений растягиваются на десятки минут;
- RAM: один матч 5x5 потребляет 2–4 ГБ; вместе с системой закладывайте от 8 ГБ, чтобы не упереться в память при смене карт;
- CPU: симуляция матча нагружает в основном 1–2 ядра, поэтому важна производительность каждого ядра, а не только их количество;
- Сеть: 10 игроков — это единицы Мбит/с, канала 100 Мбит/с с безлимитным трафиком хватает с большим запасом.
Один сервер под миксы с друзьями нормально живёт на VPS с 8–16 ГБ RAM. Если же вы строите комьюнити-проект — несколько серверов (retake, execute, DM) на одной машине — считайте по 2–4 ГБ RAM и 1–2 ядра на каждый инстанс. Для таких сценариев у Cheap-Host есть тариф Ultra: 20 vCPU, 32 ГБ RAM и 192 ГБ NVMe за 1500 ₽/мес — на нём помещаются 4–6 инстансов CS2. Сравнить аппетиты разных игр можно в статье «Сколько ресурсов нужно игровому серверу».
И про локацию: для шутера пинг важнее всего. Если игроки из России — берите сервер в Москве: 5–30 мс против 40–80 мс до Европы. Как измерить задержку до площадки заранее, описано в статье «Как проверить пинг и скорость VPS».
Шаг 1. Подготовка Ubuntu 24.04 и установка SteamCMD
Подключаемся к VPS по SSH и обновляем систему. SteamCMD — 32-битное приложение, поэтому сначала добавляем архитектуру i386 и репозиторий multiverse:
sudo apt update && sudo apt upgrade -y
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd lib32gcc-s1
При установке нужно принять лицензионное соглашение Steam. Дальше создаём отдельного пользователя — запускать игровой сервер под root не стоит:
sudo useradd -m -s /bin/bash cs2server
sudo su - cs2server
Шаг 2. Загрузка сервера CS2 (app_update 730)
Важный нюанс, на котором спотыкаются почти все: в отличие от CS:GO, у CS2 нет отдельного приложения выделенного сервера. Серверные файлы входят в состав основного app 730, и анонимный вход (login anonymous) их не скачает — нужен реальный Steam-аккаунт. Владеть игрой не обязательно (CS2 бесплатна), но разумно завести отдельный аккаунт без Steam Guard на почте или с настроенным мобильным подтверждением.
Запускаем SteamCMD и скачиваем сервер (замените ВАШ_ЛОГИН на логин Steam; при первом входе SteamCMD спросит пароль и код Steam Guard):
steamcmd +force_install_dir /home/cs2server/cs2 +login ВАШ_ЛОГИН +app_update 730 validate +quit
Загрузка ~35 ГБ на канале 100 Мбит/с занимает около часа — можно спокойно идти за кофе. Параметр validate проверяет целостность файлов; используйте его и при последующих обновлениях. Обратите внимание: +force_install_dir указывается до +login, иначе SteamCMD проигнорирует путь установки.
Шаг 3. GSLT-токен: пропуск в интернет
Без Game Server Login Token сервер CS2 запустится, но подключиться к нему извне будет нельзя. Токен выдаётся бесплатно:
- Откройте
https://steamcommunity.com/dev/managegameserversпод своим аккаунтом; - В поле App ID укажите 730, в memo — любую пометку (например, «msk-mix-1»);
- Нажмите «Create» и скопируйте полученный токен.
Один токен — один запущенный сервер. Для нескольких инстансов создайте несколько токенов. Учтите, что аккаунт должен быть без ограничений (не limited): для этого на нём должна быть хотя бы одна покупка в Steam.
Шаг 4. Первый запуск с -dedicated
Серверный бинарник лежит в game/bin/linuxsteamrt64/. Запускаем классический competitive-сервер на de_dust2:
cd /home/cs2server/cs2/game/bin/linuxsteamrt64
./cs2 -dedicated -port 27015 +map de_dust2 +sv_setsteamaccount ВАШ_GSLT_ТОКЕН
Полезные параметры запуска и консольные переменные:
-dedicated— обязательный флаг запуска выделенного сервера;-port 27015— игровой порт (стандартный для Source-игр);+game_type 0 +game_mode 1— соревновательный режим;+game_mode 2— Wingman,+game_type 1 +game_mode 2— Deathmatch;+sv_password "пароль"— закрыть сервер паролем для своих;+exec server.cfg— подхватить свой конфиг изgame/csgo/cfg/.
Когда в консоли появится строка о успешном входе с игровым токеном (logged on / VAC secure), сервер готов. Игроки подключаются из консоли клиента командой connect IP_сервера:27015.
Шаг 5. Файрвол и автозапуск через systemd
Открываем игровой порт по TCP и UDP (и SSH, чтобы не потерять доступ):
sudo ufw allow OpenSSH
sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw enable
Чтобы сервер переживал перезагрузки VPS и сам поднимался после падений, оформим его как службу. Создаём файл /etc/systemd/system/cs2.service (от root):
[Unit]
Description=Counter-Strike 2 Dedicated Server
After=network.target
[Service]
User=cs2server
WorkingDirectory=/home/cs2server/cs2/game/bin/linuxsteamrt64
ExecStart=/home/cs2server/cs2/game/bin/linuxsteamrt64/cs2 -dedicated -port 27015 +map de_dust2 +sv_setsteamaccount ВАШ_GSLT_ТОКЕН
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
Активируем:
sudo systemctl daemon-reload
sudo systemctl enable --now cs2
sudo journalctl -u cs2 -f
Директивы Restart=on-failure и RestartSec=15 означают, что после падения сервер автоматически перезапустится через 15 секунд — вручную ничего поднимать не придётся.
Обновления и обслуживание
После каждого патча Valve версия сервера должна совпадать с клиентской, иначе игроки не подключатся. Обновление — та же команда, что и установка:
sudo systemctl stop cs2
sudo su - cs2server -c "steamcmd +force_install_dir /home/cs2server/cs2 +login ВАШ_ЛОГИН +app_update 730 validate +quit"
sudo systemctl start cs2
Ещё несколько практических советов:
- Плагины. Экосистема Metamod: Source и CounterStrikeSharp даёт админ-меню, retake-режимы и статистику — аналог SourceMod из времён CS:GO;
- RCON. Задайте
+rcon_passwordв параметрах запуска, чтобы управлять сервером удалённо без захода в SSH; - Защита. Публичный игровой сервер — магнит для сканеров и флуда. Базовая DDoS-фильтрация L3/L4 на стороне хостинга обязательна, остальные меры описаны в статье «Защита игрового сервера от атак и гриферов»;
- Мониторинг. Следите за
htopво время матчей: если ядро, на котором крутится симуляция, стабильно упирается в 100 %, игроки почувствуют потерю тиков.
FAQ
Можно ли скачать сервер CS2 анонимным входом?
Нет. Сервер входит в app 730, и login anonymous его не загрузит — нужен реальный Steam-аккаунт. Игру покупать не требуется, CS2 бесплатна.
Сколько ресурсов нужно серверу CS2?
Матч 5x5 — это 2–4 ГБ RAM и 1–2 загруженных ядра, файлы занимают ~35 ГБ. Минимум для одного сервера — VPS с 8 ГБ RAM и NVMe; для нескольких инстансов — 16–32 ГБ.
Что такое GSLT и обязателен ли он?
Это токен, привязывающий сервер к вашему Steam-аккаунту. Без него к серверу нельзя подключиться из интернета. Создаётся бесплатно на странице управления игровыми серверами Steam для App ID 730; один токен — один инстанс.
Какой пинг будет у игроков из России?
С московского VPS — 5–30 мс, этого хватает для соревновательной игры. Из Европы (например, Германии) — уже 40–80 мс, в шутере такая задержка заметна.
Как обновлять сервер после патчей?
Остановить службу, выполнить app_update 730 validate в SteamCMD и запустить снова. Это стоит автоматизировать скриптом, который дергается после выхода обновлений.
Вывод
Поднять свой сервер CS2 через SteamCMD — час работы, большую часть которого занимает загрузка 35 ГБ: подготовка системы, app_update 730 под своим аккаунтом, GSLT-токен, запуск с -dedicated и systemd-служба. Дальше сервер живёт сам: праки, миксы и retake без посторонних и очередей. Если железа ещё нет — у Cheap-Host под один сервер хватит тарифа Pro (12 vCPU, 16 ГБ RAM, 128 ГБ NVMe) за 750 ₽/мес, а под комьюнити-проект с несколькими инстансами подойдёт Ultra за 1500 ₽/мес: 20 vCPU, 32 ГБ RAM, 192 ГБ NVMe, безлимитный трафик и московская локация с низким пингом для игроков из РФ. Сервер выдаётся за 45–60 секунд, а ресурсы при росте проекта расширяются без переустановки. Кстати, если ваша команда играет не только в CS2 — посмотрите разбор установки сервера Minecraft на VPS: обе игры спокойно уживаются на одной машине с 32 ГБ RAM.