Назад в блог/Как поднять сервер CS2 на VPS: железо, тикрейт, сеть и выбор тарифа

Как поднять сервер CS2 на VPS: железо, тикрейт, сеть и выбор тарифа

Как поднять выделенный сервер CS2 на VPS: почему стабильные 64 тика упираются в частоту CPU, зачем NVMe, как выбрать между Москвой и Франкфуртом по пингу и не упереться в лимит трафика. Скелет установки через SteamCMD, плагины, бэкап и чеклист тарифа.

Свой сервер CS2 обычно начинается с простой мысли: «хочу играть с друзьями на своих правилах, без случайных людей и с нормальным пингом». Потом выясняется, что игра весит десятки гигабайт, плагины ломаются после каждого патча Valve, а «быстрый» сервер может подтормаживать из-за одного перегруженного ядра. Разберём узкий сценарий: дедик CS2 на VPS под 10–20 слотов — что важно в железе, почему тикрейт упирается в частоту CPU, где ставить сервер относительно игроков и как не сжечь трафик раньше конца месяца.

Это не общий гайд «как выбрать сервер». Только то, что реально влияет на ощущения в игре: стабильный тик, пинг и предсказуемость.

схема
Сервер CS2 на VPS: игроки, пинг до ДЦ, CPU и тикрейт, NVMe, трафик и бэкап

Требования CS2 dedicated server

Выделенный сервер CS2 ставится через SteamCMD и работает на Linux x64 — Windows для этого не нужен, и на VPS лишние ресурсы под графическую ОС не тратятся. Базовый набор выглядит так:

  • Linux x64 — Ubuntu или Debian актуальной LTS-версии, без экзотики;
  • диск — файлы игры занимают несколько десятков гигабайт и растут с обновлениями; закладывайте с запасом под патч, который скачивается рядом со старыми файлами, плюс логи и демки;
  • RAM — один инстанс на соревновательный режим живёт в нескольких гигабайтах, но запас под плагины и пиковые моменты (смена карты, загрузка Workshop) обязателен;
  • GSLT-токен — Game Server Login Token из Steam, без него сервер не попадёт в публичный список и будет вести себя как LAN;
  • открытые порты — по умолчанию 27015 (UDP для игры, TCP для RCON).

Главное, что стоит понять заранее: CS2-сервер — это не «веб-сайт, который можно повесить на любой самый дешёвый тариф». Это процесс реального времени, который каждые несколько миллисекунд должен обсчитать состояние мира и разослать его игрокам. Если не успел — игроки видят рассинхрон, «телепорты» и регистрацию попаданий, на которую хочется жаловаться в чат.

CPU и тикрейт: почему важна частота, а не число ядер

В CS2 серверный тикрейт фиксирован на 64 тиках в секунду, а поверх работает sub-tick система: клиент передаёт точный момент действия внутри тика. Привычный по CS:GO трюк с -tickrate 128 здесь официально не поддерживается — не стоит выбирать тариф в расчёте на то, что «потом поставим 128 тик». Задача сервера простая и жёсткая: каждый тик должен укладываться примерно в 15,6 мс, всегда, включая моменты, когда на точке пятеро игроков, летят гранаты и дым.

Отсюда практические выводы:

  • основной цикл игры в значительной степени однопоточный — 16 медленных ядер проиграют 2–4 быстрым. Смотрите на поколение и частоту CPU, а не на количество vCPU в тарифе;
  • Ryzen-класс процессоров с высокой частотой хорошо подходит под такую нагрузку — именно поэтому игровые тарифы часто строят на нём;
  • соседи по хосту влияют на стабильность тика сильнее, чем средняя загрузка. Пиковые просадки (steal time) превращаются в микролаги, которые не видно в средних графиках;
  • число слотов растит нагрузку не линейно: 5×5 соревновательный и 20 человек на DM-сервере с ботами — разные миры.

Как проверить на практике, без синтетических бенчмарков: поднимите сервер, соберите полный состав и смотрите на вывод status в консоли сервера и на телеметрию производительности у игроков (в CS2 она включается в настройках). Параллельно на хосте — top с разбивкой по ядрам и колонка st в vmstat 1. Если одно ядро упирается в 100 %, а остальные отдыхают — вы упираетесь в однопоток, и тут поможет только более быстрый CPU, а не «ещё два ядра». Подробнее про то, как отличить проблему CPU от диска и сети, — в разборе почему VPS тормозит: диагностика CPU, диска, RAM и сети.

RAM, диск NVMe и сеть

RAM. Под один сервер на 10–12 слотов с парой плагинов ориентируйтесь на 4 ГБ, под два инстанса или тяжёлые режимы с Workshop-картами — на 8 ГБ. Swap держите как страховку, но если сервер реально в него уходит, игроки это почувствуют быстрее, чем вы увидите в мониторинге.

Диск. Во время игры диск почти не нагружен, но есть три момента, где он решает:

  • обновление CS2 — гигабайты новых файлов, которые нужно скачать и распаковать, пока игроки ждут;
  • смена карты и загрузка Workshop-контента;
  • запись демок и логов.

NVMe здесь — это разница между «обновились за пару минут» и «сервер полчаса лежит после патча». Объём берите с запасом: файлы игры, место под обновление, демки, бэкапы конфигов.

Сеть. Для игрового сервера важны не «гигабиты в тарифе», а стабильность: малый джиттер, отсутствие потерь и понятный лимит трафика. Посчитайте объём заранее. Пример, чисто условный: если один игрок в среднем потребляет 40 КБ/с, то 10 игроков — около 400 КБ/с, это примерно 1,4 ГБ в час. Реальная цифра зависит от режима, rate-настроек и числа игроков, поэтому замерьте её у себя через vnstat за пару вечеров и умножьте на свой график.

Это важно, потому что после лимита большинство тарифов не отключают сервер, а режут скорость. Например, при лимите 3 ТБ скорость дальше ограничивается до 1 Мбит/с — для сайта это неприятно, а для CS2-сервера с несколькими игроками фактически означает «играть невозможно». Ставьте алерт на расход трафика заранее, а не после жалоб в Discord.

Москва или Франкфурт: пинг до игроков

Локация решает больше, чем любой процессор: сервер с идеальным тиком, но с пингом 90 мс до половины команды, проигрывает среднему серверу рядом с игроками.

  • Москва — логичный выбор, если большинство играет из европейской части России. Для игроков из Сибири и с Урала пинг будет выше, но обычно приемлемым для «своего» сервера.
  • Франкфурт — точка для смешанных составов: часть игроков в Европе, часть в России, или вам нужен хороший маршрут в европейские сети.

Не гадайте — измерьте. Попросите каждого игрока запустить mtr (или WinMTR на Windows) до тестового IP в каждой локации и прислать результат вечером, в прайм-тайм. Смотрите не только на средний пинг, но и на потери и разброс: стабильные 45 мс лучше «от 25 до 80».

Установка через SteamCMD: скелет команд

Ниже — минимальный каркас. Сервер запускаем от отдельного пользователя, не от root.

BASH
# пакеты и пользователь
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install -y steamcmd tmux
sudo useradd -m -s /bin/bash cs2
sudo -iu cs2

# загрузка/обновление сервера (app id 730)
steamcmd +force_install_dir /home/cs2/server \
  +login anonymous +app_update 730 validate +quit

# библиотека Steam, без которой сервер часто ругается при старте
mkdir -p ~/.steam/sdk64
ln -sf ~/.local/share/Steam/steamcmd/linux64/steamclient.so ~/.steam/sdk64/

Запуск — в tmux или, лучше, через systemd-юнит с автоперезапуском:

BASH
cd /home/cs2/server/game/bin/linuxsteamrt64
./cs2 -dedicated -port 27015 -maxplayers 10 \
  +game_type 0 +game_mode 1 +map de_dust2 \
  +sv_setsteamaccount ВАШ_GSLT

Пароль сервера, RCON и правила раунда выносите в game/csgo/cfg/server.cfg. Пути к steamclient.so могут отличаться в зависимости от того, как установлен SteamCMD, — проверьте через find / -name steamclient.so 2>/dev/null.

Плагины и бэкап

Стандартный стек для модификаций сейчас — Metamod:Source 2.x и поверх него CounterStrikeSharp для плагинов на C#. Подключается Metamod правкой gameinfo.gi, и это главная ловушка: обновление CS2 перезаписывает этот файл, и плагины молча перестают грузиться. Поэтому:

  • после каждого app_update проверяйте, что строка Metamod в gameinfo.gi на месте (удобно автоматизировать скриптом);
  • не обновляйте плагины в день патча Valve — дайте авторам время выпустить совместимые версии;
  • держите список плагинов с версиями в отдельном файле: при поломке проще откатиться.

Бэкап здесь — не файлы игры (их всегда можно скачать заново), а ваше: cfg/, addons/ с конфигами плагинов, базы статистики и банов, systemd-юниты, скрипты обновления. Это мегабайты, их легко копировать ежедневно на внешнее хранилище через restic или rsync. Отдельно проверьте, что восстановление на чистом сервере действительно поднимает всё за разумное время.

Чтобы узнать о падении раньше игроков, настройте проверки процесса, диска и CPU — см. мониторинг VPS: uptime, диск и CPU. Для игрового сервера полезно добавить проверку UDP-порта (A2S-запрос) и алерт на рост steal time.

DDoS и лимиты: что реально можно сделать

Игровые серверы атакуют чаще, чем сайты: проигравшему достаточно знать IP. Честно о главном: ни один VPS не даёт «иммунитета» к DDoS, и обещания «полной защиты» стоит воспринимать скептически. Что можно сделать своими силами:

  • не светить IP лишний раз — не публиковать его в открытых каналах, по возможности раздавать через закрытый Discord;
  • закрыть всё, кроме нужного: 27015/udp для игры, RCON — только с ваших адресов или через SSH-туннель, SSH — по ключам;
  • ограничить частоту запросов на уровне nftables/iptables — это помогает против мелких флудов и злоупотреблений A2S-запросами, но не против объёмной атаки;
  • заранее узнать политику провайдера: что происходит с IP при атаке, есть ли фильтрация, через сколько трафик возвращается.

Помните и про лимит трафика: даже небольшая атака съедает квоту, после которой включается шейпинг. Мониторинг расхода — часть защиты.

Чеклист тарифа под CS2

Перед заказом пройдитесь по списку:

  1. CPU — современный высокочастотный класс (Ryzen), а не просто много vCPU.
  2. RAM — 4 ГБ на один инстанс, 8 ГБ на два или на тяжёлые режимы.
  3. Диск — NVMe и запас по объёму под обновление, демки и бэкапы.
  4. Локация — Москва или Франкфурт по результатам mtr от ваших игроков.
  5. Трафик — посчитан под ваш онлайн с запасом, есть алерт до лимита.
  6. Скорость выдачи — чтобы протестировать в тот же вечер, а не ждать сутки.
  7. Поддержка — круглосуточная, потому что играют обычно вечером и в выходные.

Если нужен готовый вариант под эту задачу, посмотрите VPS для CS2: Ryzen и NVMe, дата-центры в Москве (Нагатинский) и во Франкфурте, выдача сервера до 120 секунд, поддержка 24/7, тарифы от 360 ₽. Для других задач — общий каталог VPS.

FAQ

Можно ли сделать сервер CS2 на 128 тиков? Официально — нет. CS2 работает на 64 тиках с sub-tick системой, а параметр -tickrate из CS:GO здесь не даёт поддерживаемого результата. Сосредоточьтесь на стабильности 64 тиков — это и есть «быстрый сервер».

Сколько слотов потянет небольшой VPS? Соревновательный 5×5 с парой плагинов — вполне реальная задача для небольшого тарифа на быстром CPU. Для 20+ слотов, DM с ботами и нескольких инстансов берите больше RAM и проверяйте нагрузку на одно ядро под полным составом.

Зачем нужен GSLT-токен? Без него сервер не появится в публичном списке и не будет нормально работать для подключения из интернета. Токен создаётся в Steam на аккаунте без ограничений и передаётся через +sv_setsteamaccount.

Почему после обновления CS2 перестали работать плагины? Чаще всего обновление перезаписало gameinfo.gi и Metamod не грузится, либо CounterStrikeSharp ещё не совместим с новой сборкой. Верните строку Metamod и дождитесь обновления фреймворка.

Хватит ли 3 ТБ трафика? Для своего сервера с компанией друзей обычно хватает с запасом, но посчитайте по своим замерам через vnstat. Учитывайте, что после лимита скорость режется до 1 Мбит/с, а это для игры неприемлемо — алерт на расход обязателен.

Нужен быстрый сервер под ваш проект?

Арендуйте производительный KVM VPS в Москве или Германии на скоростных NVMe дисках от 405 ₽/мес. Автовыдача за 60 секунд, выделенный IPv4 и защита от DDoS.

Выбрать тариф