RE:NODE

Аренда сервера CS2: что проверить, прежде чем платить

Автор Команда RE:NODE
18 мин чтения


Аренда сервера Counter-Strike 2 стоит недорого, и почти всё, что отличает хорошее предложение от плохого, не указано на ценнике. Вы платите за долю одного быстрого ядра CPU, за достаточно памяти для вашего режима и плагинов, за место на диске под установку в несколько десятков гигабайт, за локацию рядом с игроками и за полный доступ к файлам, чтобы можно было поставить Metamod и CounterStrikeSharp. Вы не платите за tick rate, потому что продавать тут нечего, и не платите за токен, потому что Game Server Login Token нужно получить на собственном аккаунте Steam. Если предложение держится на одном из этих двух пунктов, остальная страница, скорее всего, написана в том же духе.

Этот текст написан со стороны покупателя. Сама настройка - SteamCMD, server.cfg, режимы игры, порты - описана в статье Counter-Strike 2 server setup and config, а установка плагинов - в статье Metamod and CounterStrikeSharp on CS2. Здесь вопрос другой: что проверить до того, как деньги уйдут, и когда лучше запустить всё самому.

За что вы на самом деле платите#

Выделенный сервер CS2 бесплатный. Он распространяется под собственным Steam app id игры, 730, скачать его через SteamCMD может любой, а Valve не берёт ничего ни за сервер, ни за игрока. Лицензии и платы за слоты выше по цепочке, до хостинга, нет. Всё, что вам выставляет хостер, - это железо и работа:

  • Процессорное время на машине, которую обслуживает кто-то другой; в CS2 это в первую очередь один главный поток.
  • Память, которая в случае CS2 составляет небольшую часть счёта.
  • Диск под установку, большую по меркам любых игровых серверов.
  • Сетевой адрес и порты, доступные снаружи, плюс фильтрация перед ними.
  • Панель или shell-доступ, чтобы запускать, останавливать, обновлять и редактировать сервер.
  • Backup, поддержка и чужое дежурство по ночам - то, что замечаешь только тогда, когда этого нет.

Этот список и есть всё сравнение. Когда предложение рассказывает о чём-то, чего в списке нет, - о «премиальном tick rate», о «бесплатном токене», о значке «про-лиги», - это либо украшение, либо непонимание того, как устроена игра. Ни то ни другое не повод платить больше.

Tick rate: число, которое нельзя купить#

Серверы CS:GO работали на 64 или 128 тиков в секунду, и цифра 128 стала рекламным аргументом. В CS2 модель изменилась. Сервер считает мир на 64 тика, а ввод игрока получает временную метку между тиками (система sub-tick), поэтому выстрел оценивается в тот момент, когда он был сделан, а не на ближайшей границе тика. В актуальных сборках старый параметр запуска -tickrate эту частоту не повышает. Valve может изменить это в будущем обновлении, поэтому, если вам это важно, смотрите на то, что сообщает сам сервер, а не на то, что говорит кто угодно, включая эту статью.

Что это значит при покупке:

  • «Сервер CS2 128 tick» - это ярлык. Хостер, который его рекламирует, либо не проверял, либо рассчитывает, что не проверите вы. Это не повод его выбирать, а доплата за это - тревожный знак.
  • То, что раньше подразумевали под tick rate, по-прежнему важно. Сервер, который не успевает закончить каждый тик в 15,6 мс из-за исчерпанной доли CPU, ощущается хуже любой цифры тиков. Это вопрос к CPU, о нём дальше.
  • Пинг - это не tick rate. Плавный сервер на 64 тика в 90 мс от вас играется хуже того же сервера в 20 мс. Локация - отдельное решение.

В статье What tick rate actually means разобраны тики, пинг, интерполяция и то, почему люди винят не то, что нужно. Для покупки сервера CS2 вывод короткий: игнорируйте любые заявления про tick rate и оценивайте CPU и локацию.

CPU: скорость одного потока и гарантированная доля#

Сервер CS2 выполняет большую часть работы в одном потоке. Четыре медленных ядра дают ему меньше, чем одно быстрое, а тариф «4 vCPU» может работать хуже тарифа с 1,5 ядрами, если эти четыре - доли старого процессора с низкой частотой, который делят со всеми остальными на узле. В статье Reading game server CPU usage объяснено, почему график на 30% всё равно может означать сервер на пределе.

Что спросить у предложения:

  • Что означает цифра CPU. «1 vCPU» должен быть заявленной долей - 100% одного ядра или 150% одного ядра, - а не «до». Цифра со словом «до» описывает лучший случай, который вы увидите в четыре утра.
  • Соблюдается ли доля в обе стороны. Жёсткий лимит значит, что вы не можете занять простаивающее время соседа, но и сосед не может отобрать ваше. Мягкий лимит в тихий час кажется быстрее, а в субботний вечер - хуже. Что такое перепродажа ресурсов, если смотреть изнутри, описано в статье Shared CPU and noisy neighbours.
  • Видите ли вы это сами. График CPU относительно лимита - способ отличить занятый сервер от придушенного. Без него каждая жалоба превращается в тикет в поддержку и гадание.
  • Поколение процессора, если хостер готов его назвать. Тактовая частота и поколение предсказывают производительность CS2 гораздо лучше, чем число ядер. Хостер, который вообще ничего не сообщает о железе, не обязательно что-то скрывает, но вам остаётся меньше опорных данных.

Что в CS2 расходует CPU, примерно по убыванию: боты - они настолько дороги, что полный набор ботов может обходиться дороже людей, которых заменяет; плагины, которые работают на каждом тике вместо таймера; режимы с частыми респаунами, такие как deathmatch и retakes; и, в небольшой степени, GOTV. Соревновательный матч 10 игроков без ботов и без плагинов - самое лёгкое, что делает сервер CS2.

На RE:NODE значение CPU - это процент одного ядра и жёсткое ограничение до купленной доли: Starter даёт 100%, старшие тарифы - до 300%, а панель рисует CPU относительно этого лимита. Сервер на 100% работает медленно, но не сломан, и за это его никогда не приостанавливают.

RAM, диск и слоты#

Память редко является ограничением для сервера CS2, и именно поэтому хостеры любят привязывать цену к ней. Ванильный сервер спокойно укладывается примерно в 1 GB на десять игроков. CounterStrikeSharp приносит в процесс среду выполнения .NET, и с несколькими плагинами реалистичный минимум - около 2 GB. Дальше режим и плагины решают больше, чем число слотов.

СерверRAMCPU
5v5 тренировка или scrim, ваниль1 GB1 быстрое ядро
5v5 с MatchZy или подобным2 GB1-1.5 ядра
12-16 игроков в casual или пары Wingman2 GB1.5 ядра
16-24 игрока в deathmatch или retakes2-3 GB2 ядра
Сервер сообщества, много плагинов3-4 GB2-3 ядра

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

Диск - место, где дешёвые предложения тихо ломаются. Установка сервера CS2 занимает порядка десятков гигабайт - 40-60 GB это нормально, и она растёт с обновлениями, - а SteamCMD резервирует место под обновление до загрузки, поэтому на диске с нехваткой места обновление не застревает на полпути, а просто завершается ошибкой, и сервер не запускается. Демо GOTV и карты из workshop добавляют объём. Спросите, как хостер засчитывает установку в ваш лимит диска, потому что ответы бывают разными, а тариф, у которого заявленный диск меньше самой игры, либо считает иначе, либо перестанет работать на следующем крупном патче. Если это всё же случилось, очистка описана в статье game server disk space full.

Сами слоты вы задаёте в строке запуска:

bash
$ ./game/bin/linuxsteamrt64/cs2 -dedicated -usercon -port 27015 \    -maxplayers 12 +game_type 0 +game_mode 1 \    +sv_setsteamaccount YOUR_TOKEN +map de_inferno

Двенадцать вместо десяти оставляют место для администратора и для бота GOTV, который занимает отдельный слот, когда GOTV включён. У режимов есть свои естественные размеры - competitive это 10, Wingman 4, deathmatch от 16 до 24, - а сервер CS2 можно настроить на гораздо большее число, чем имеет смысл в любом режиме. Поэтому цена за слоты - это ловушка, о которой речь ниже.

GSLT ваш, а не хостера#

Публичному серверу CS2 нужен Game Server Login Token, чтобы зарегистрироваться на мастер-серверах Valve, появиться в браузере серверов сообщества и надёжно загружать контент из workshop. Вы создаёте его на steamcommunity.com/dev/managegameservers с app id 730 на аккаунте Steam, который владеет CS2, не ограничен и имеет привязанный номер телефона. Один токен на один работающий сервер.

Правило, важное при покупке: токен принадлежит аккаунту, который его создал, и баны тоже. Если сервер на токене получает бан этого токена, последствия ложатся на аккаунт Steam, стоящий за ним. Поэтому хостер никогда не должен создавать токен за вас, а предложение со словами «GSLT включён» заслуживает прямого вопроса: на чьём аккаунте он и что будет с вашим сервером, если другой клиент на том же аккаунте получит бан? Токен на вашем собственном аккаунте, лучше запасном, где нет ничего ценного, переезжает вместе с вами к другому хостеру и не может быть выбит чужим поведением.

Без токена сервер всё равно работает, и игроки по-прежнему могут подключиться командой connect 203.0.113.10:27015 из консоли. Закрытый паролем сервер для scrim среди друзей прекрасно живёт так. Не получится только публичное отображение в списке. В статье Steam game server tokens explained описаны требования к аккаунту, перевыпуск и токены, которые тихо истекают после месяцев простоя.

На RE:NODE токен вводится на вкладке Setup. Сервер создаётся сразу после прохождения платежа, и установка ждёт на этой вкладке, пока не появится токен, - поэтому первым делом после заказа нужно получить токен, а не писать в поддержку с вопросом, почему сервер не запустился.

Локация и пинг#

Counter-Strike - игра, в которой пинг ощущается острее всего. Peeker's advantage, трейды и ощущение, что вас убили за укрытием, ухудшаются по мере роста задержки, и никакая настройка сервера расстояние не компенсирует. Выбирайте локацию там, где ваши игроки, а не самый дешёвый регион в списке.

  • Меньше примерно 30 мс - то, чего соревновательные игроки ждут от тренировок и scrim.
  • 30-60 мс - нормально для игры сообщества и casual.
  • Больше 80-100 мс сервер играбелен, но игроки это заметят, а самые удалённые заметят сильнее всех.

Измеряйте, а не угадывайте. Тестовый адрес хостера или страница looking-glass позволяют нескольким вашим игрокам вечером, когда маршруты загружены сильнее всего, сделать ping и traceroute. Стабильность важна не меньше среднего значения: сервер с 35 мс и редкими скачками до 120 играется хуже, чем сервер с 45 мс, который не меняется. В статье Latency, jitter and packet loss объяснено, на что смотреть, а game server ping by region даёт реалистичные цифры между континентами.

Длинный список локаций помогает только в том случае, если одна из них рядом с вашими игроками, потому что сервер вы будете запускать в одном месте. RE:NODE работает в одной локации, в Германии, на оборудовании, которым мы управляем сами. Это подходит игрокам по всей Европе и в соседних регионах; для команды в Северной Америке или Азии это неверный выбор, и честный совет - взять хостера рядом с ними.

Плагины, карты из workshop и GOTV: какой нужен доступ#

Почти всё, что люди хотят от сервера CS2 сверх стандартных правил matchmaking, - MatchZy, retakes, deathmatch с собственными точками возрождения, меню администратора, таймеры для surf, - работает на Metamod:Source и CounterStrikeSharp. SourceMod на CS2 не работает. Для установки этого набора нужно то, что закрытый хостинг может не дать:

  1. Права на запись в `game/csgo/`, включая addons/ и файл game/csgo/gameinfo.gi, который нужно отредактировать, чтобы добавить путь поиска Metamod. Хостер, который показывает только список cvar, плагины запускать не позволяет вообще.
  2. SFTP или файловый менеджер, умеющий работать с архивами, потому что CounterStrikeSharp поставляется в zip-архиве с собственной папкой среды выполнения.
  3. Контроль над обновлениями. Каждое обновление CS2 переписывает gameinfo.gi и может ломать плагины, пока авторы их не пересоберут. Нужно знать, обновляет ли хостер автоматически, когда именно, и можно ли отложить обновление или самостоятельно вернуть строку Metamod после него.
code
game/csgo/  gameinfo.gi                 needs the Metamod line after every update  addons/metamod/             the loader  addons/counterstrikesharp/  runtime, plugins and configs  cfg/server.cfg              your settings

Карты из workshop загружаются по id командой host_workshop_map <id> или целой коллекцией через host_workshop_collection <id>. Им нужны рабочий токен и исходящий доступ к Steam, и они занимают диск. Если хостер не позволяет задавать параметры запуска или выполнять консольные команды, с ними неудобно; группы карт и ротация описаны в статье CS2 workshop maps and collections.

GOTV нужен второй порт, по умолчанию UDP 27020, и запас исходящего канала для зрителей. Если тариф даёт один порт и не позволяет добавить другой, GOTV не получится. Демо, записанные с tv_autorecord 1, накапливаются в game/csgo/, поэтому им тоже нужны диск и способ скачивать и чистить их - см. CS2 GOTV and demos.

На RE:NODE у каждого тарифа CS2 два выделенных порта, так что у GOTV есть собственный номер, плюс SFTP и файловый менеджер, который распаковывает архивы на месте. Белого списка разрешённых модов нет; Metamod, CounterStrikeSharp и плагины вы загружаете сами, а пароль RCON создаётся для каждого сервера отдельно, а не остаётся пустым.

DDoS: что хостер может и чего не может обещать#

Серверы Counter-Strike привлекают атаки по обычным причинам: кикнутый игрок, конкурирующее сообщество, сервис-стрессер, который стоит дешевле пиццы. Поэтому каждый хостер рекламирует защиту, а честная версия этого заявления уже, чем маркетинг.

Фильтрация выше по цепочке хорошо справляется с объёмными потопами - большими потоками трафика, который явно не является игровым, - а также с отражёнными атаками и искажёнными пакетами. Плохо она справляется с трафиком, имитирующим настоящих клиентов, например с потопами попыток подключения или пакетов запросов на UDP 27015, потому что для фильтра, рассчитанного на объём, это выглядит как игроки. Категории описаны в статье DDoS attacks on game servers explained.

На что смотреть в заявлении хостера:

  • Что фильтруется, простыми словами, а не терабитная цифра, описывающая всю сеть провайдера.
  • Что происходит, когда фильтрации не хватает. Некоторые хостеры отправляют адрес в null-route на время крупной атаки, чтобы защитить остальную сеть, и ваш сервер лежит, пока она не закончится. Разумно, но об этом стоит знать.
  • Никаких обещаний нулевого простоя. Хостер, обещающий отсутствие простоя при любой атаке, продаёт вам фразу, а не услугу.

Формулировка RE:NODE именно такая: фильтрация выше по цепочке, которая отбрасывает очевидные объёмные потопы, а также отражённый и искажённый трафик. Атаки, похожие на настоящих игроков, не фильтруются. Ваша часть работы - длинный пароль RCON (он передаётся открытым текстом по TCP через игровой порт) и отсутствие адреса сервера там, где он не нужен. Короткая статья Using RCON safely об этом.

Цена за слоты и другие ценовые ловушки#

Самая частая ловушка - цена за слоты. В эпоху Source 1 в ней был смысл: железо у всех было одинаковым, а слоты были единственной переменной; для CS2 это в основном способ сделать дешёвый сервер дорогим на вид или дорогой - дешёвым. Сервер на 10 слотов для соревновательной игры и сервер на 10 слотов для deathmatch с плагинами стоят очень по-разному, а тариф «32 слота», который на деле означает 1 GB и половину ядра, не потянет 32 игроков ни в одном значимом режиме. Переведите каждое предложение со слотами обратно в долю CPU, память и диск и сравнивайте их.

Остальные ловушки, примерно в порядке того, во что они обходятся:

  • Надбавка за tick rate. Описана выше. Доплата за 128 tick в CS2 ничего не даёт.
  • «GSLT включён» или «токен не нужен». Либо токен на аккаунте хостера, с описанным риском бана, либо сервер не появится в списке.
  • Диск меньше установки. Нормально до следующего крупного обновления, а потом сервер, который не запускается.
  • Цена первого месяца. Скидка на первый месяц с продлением по двойной цене - обычное дело. Сравнивайте цену продления и цену в месяц при более длинном сроке, если собираетесь остаться.
  • Плата за настройку и платные дополнения к «панели управления» за то, что должно быть стандартом: SFTP, backup, консоль RCON.
  • Backup за отдельную плату или хранящиеся на той же машине. Backup рядом с тем, что он защищает, не защищает от потери этой машины. Вопросы, которые стоит задать, собраны в статье Backups that actually restore.
  • Локации, которыми вы никогда не воспользуетесь, поданные как причина платить больше.
  • Нет пути возврата денег. Узнайте, как работает возврат, до того, как он понадобится, а не после.
перевестиЧисло слотовмаркетинговая единицаПамятьрежим и плагиныДискустановка, демо, картыДоля CPUодно быстрое ядроЧестная цена
Откуда берётся месячная цена сервера CS2

Для масштаба: тарифы RE:NODE на CS2 начинаются с 1 GB и 100% ядра от $7 в месяц и доходят до 6 GB, а при сроке 3, 6 и 12 месяцев цена в месяц ниже. Дело не в цифре, а в форме предложения: память, CPU и цена названы для каждого тарифа, без числа слотов и без tick rate.

Аренда или собственный запуск#

Запустить сервер CS2 самому вполне возможно, и иногда это лучший ответ. Сервер бесплатный, SteamCMD ставит его одной командой, а современный настольный CPU тянет матч на 10 игроков, не замечая нагрузки. Вопрос в том, от чего вы отказываетесь.

Дома препятствия обычные для любого игрового сервера, и подробно они разобраны в статье hosting at home versus renting:

  • CGNAT. Многим подключениям больше не выдаётся собственный публичный адрес, и проброс портов этого не исправит.
  • Исходящий канал. Скорость загрузки не имеет значения; сервер отправляет данные каждому игроку, поэтому важна скорость отдачи, а её вы делите со всеми остальными дома.
  • Ваш домашний адрес - это адрес сервера. Любой, кто подключается, его видит, а атака на сервер отключает от сети весь дом.
  • Доступность. Сервер на ПК, за которым вы играете, существует только пока ПК включён, и он делит CPU с игровым клиентом.

Для закрытого scrim на соединении уровня LAN среди пятерых друзей домашний хостинг подходит. Для всего публичного его губит проблема безопасности, а не производительность.

Арендованный виртуальный или выделенный сервер находится между двумя вариантами. Вы получаете публичный адрес, сеть дата-центра и целую машину в своё распоряжение, а взамен делаете всё то, что делает хостер с панелью: устанавливаете через SteamCMD, открываете в firewall UDP 27015 и 27020, пишете unit-файл службы, чтобы сервер пережил перезагрузку, автоматизируете обновления и правку gameinfo.gi, настраиваете backup и следите за диском. Это имеет смысл, когда у вас несколько серверов, нужен root-доступ или на той же машине есть другие задачи. Этот путь описан в статьях Choosing between a VDS and a game panel и multiple game servers on one VDS.

ВариантПодходит дляНа вас
Домашний ПКЗакрытые scrim, проверка конфиговСеть, доступность, ваш домашний адрес
VDS или выделенныйНесколько серверов, полный root-контрольВсё: ОС, обновления, firewall, backup
Хостинг с игровой панельюОдин или несколько серверов, минимум обслуживанияКонфиги, плагины, токен

Хостинг с панелью - это меньше всего работы на сервер и меньше всего контроля. VDS - больше всего контроля и больше всего работы. Ни один вариант не неправильный; пропускают обычно другое - выбор того, который соответствует числу часов в месяц, которые вы готовы на это тратить.

Чек-лист перед оплатой#

  1. Локация рядом с большинством ваших игроков, подтверждённая ping и traceroute от нескольких из них.
  2. CPU указан как доля ядра, соблюдается и виден на графике.
  3. Память под ваш режим и плагины - 1 GB для ванили, 2 GB с CounterStrikeSharp, больше для загруженных серверов сообщества.
  4. Диск достаточный для установки плюс обновления, демо и карты из workshop, с ясным ответом, как засчитывается установка.
  5. Два порта, если нужен GOTV, и возможность задавать параметры запуска, например -maxplayers.
  6. Доступ к файлам через SFTP и файловый менеджер, который может редактировать gameinfo.gi и распаковывать архивы.
  7. Свой токен, созданный на вашем аккаунте Steam и введённый вами.
  8. Backup вне машины, который вы можете восстановить сами, и честное описание защиты от DDoS.
  9. Цена продления, а не цена первого месяца, и известный путь возврата денег.

Если предложение проходит эти девять пунктов, остальные различия - скорее вопрос вкуса. Части, применимые ко всем играм, разобраны в статье How to choose game server hosting.

FAQ#

Сколько стоит аренда сервера CS2?

Для соревновательного или тренировочного сервера на 10 игроков достаточно небольшого тарифа с примерно 1 GB памяти и одним быстрым ядром, и он стоит в дешёвой части списка любого хостера. Серверам сообщества с плагинами и 16-24 игроками нужно в два-четыре раза больше. Серверное ПО и токен ничего не стоят; вы платите только за железо и обслуживание.

Можно ли арендовать сервер CS2 на 128 tick?

Ни в каком осмысленном смысле. CS2 работает на 64 тика с sub-tick временем ввода, а в актуальных сборках параметр -tickrate времён CS:GO этого не меняет. Хостер, продающий сервер CS2 на 128 tick, продаёт ярлык, поэтому сравнивайте долю CPU и локацию.

Нужен ли мне GSLT, если я арендую сервер?

Для публичного сервера, который появляется в браузере и загружает карты из workshop, да, и он должен быть с вашего собственного аккаунта Steam. Закрытый сервер, куда все заходят через connect и пароль, работает и без него.

Сколько слотов нужно для CS2?

Для competitive нужно 10, для Wingman 4, для casual 10-20, для deathmatch 16-24. Добавьте один для бота GOTV, если GOTV включён, и один-два для администраторов. Покупайте CPU и память, нужные этим игрокам, а не число слотов.

Будут ли плагины работать на любом арендованном сервере CS2?

Только там, где вы можете писать в game/csgo/addons и редактировать gameinfo.gi. Плагины работают на Metamod:Source и CounterStrikeSharp, а не на SourceMod, и ломаются при обновлениях CS2, пока их не пересоберут, поэтому вам также нужен контроль над тем, когда обновляется сервер.

Дешевле ли разместить CS2 дома?

На бумаге часто да - железо уже есть. На практике CGNAT, ограниченная скорость отдачи, открытый домашний адрес и ПК, который должен быть всегда включён, делают такой вариант подходящим для закрытых scrim, а не для публичного сервера.