Игровые серверы на часы. Платите, только когда играете.

Как поднять сервер CS:GO, к которому друзья смогут подключиться через интернет

Поднять старый сервер CS:GO, к которому друзья реально смогут подключиться через интернет, сложнее, чем кажется. Valve заморозила CS:GO с выходом CS2, а затем отключила официальный матчмейкинг и внутриигровой браузер серверов. Сервер, запущенный обычным способом, стартует нормально, но каждый друг, который пытается подключиться, видит только "connect failed after 30 retries". Это руководство объясняет, почему так, и показывает точную настройку, которая работает. Каждый шаг здесь проверен на реальном публичном сервере.

Почему прямое подключение не работает

Старому серверу CS:GO в интернете мешают две вещи:

  • Нет GSLT. Публичному серверу CS:GO нужен Game Server Login Token. Без него консоль пишет "No Steam account token was specified. Connections will be restricted to LAN only."
  • Барьер резервирования лобби. Даже с токеном CS:GO пропускает прямые подключения через систему резервирования матчмейкинга. Valve отключила её для замороженной сборки, поэтому сервер создаёт резервирование, которое никогда не завершается. Именно это и есть те самые "30 retries", которые вы видите.

Что вам понадобится

  • Машина с реальным публичным IP (VPS, а не домашний ПК за роутером).
  • Файлы выделенного сервера CS:GO (steamcmd app 740).
  • GSLT для приложения, которым пользуются твои игроки: 4465480 для бесплатного отдельного приложения CS:GO, 730 для ветки csgo_legacy в CS2. Создай его на steamcommunity.com/dev/managegameservers.
  • MetaMod:Source, SourceMod и плагин NoLobbyReservation.

Рабочая настройка

  1. Установите через steamcmd: +login anonymous +app_update 740 validate
  2. Удалите встроенный bin/libgcc_s.so.1. Замороженная сборка поставляется со старой копией, которая ломается на современном Linux (сервер циклически падает при загрузке libtier0.so). Удаление файла позволяет загрузиться системной библиотеке.
  3. Установите MetaMod:Source и SourceMod в папку мода csgo/, затем добавьте NoLobbyReservation. Именно NoLobbyReservation снимает барьер резервирования, без него клиенты вообще не смогут подключиться. Это самая важная часть.
  4. Укажи app id под клиент игроков в двух файлах: csgo/steam.inf (строка appID=, сохрани windows-переводы строк) и steam_appid.txt рядом с srcds_run. 4465480 для отдельного приложения или 730 для ветки csgo_legacy в CS2. steamcmd validate возвращает steam.inf к 730, поэтому выставляй его заново перед каждым запуском.
  5. Пропишите ваш GSLT в server.cfg: sv_setsteamaccount YOUR_TOKEN
  6. Запустите на реальном порту: -port 27015 +sv_lan 0. Если у машины больше одного сетевого интерфейса, добавьте также -ip с вашим публичным адресом, чтобы сервер слушал нужный.
  7. Друзья подключаются из внутриигровой консоли: connect YOUR_IP:27015

Частые ловушки

  • "STEAM validation rejected" значит, что клиент и app id сервера не совпадают. Сервер принимает один клиент: 4465480 для отдельного приложения, 730 для ветки csgo_legacy в CS2. Проверь оба файла с app id и что GSLT создан для того же приложения.
  • Готовый .smx для NoLobbyReservation из случайного репозитория часто не загружается (он собран под другую сборку SourceMod). Скомпилируйте его заново под ваш SourceMod.
  • Тестирование из той же домашней сети, где стоит сервер, не сработает, даже если настройка верна, потому что соединение разворачивается на вашем роутере (hairpin). Тестируйте из реального внешнего подключения.

Или пропустите всё это

Это много движущихся частей, которые надо поддерживать в рабочем состоянии для игры, которую Valve больше не обновляет. На 2hours.gg сервер CS:GO поставляется с уже встроенными токеном, плагинами и конфигом. Вы разворачиваете сервер, выбираете карту, и друзья подключаются по IP. Никаких плагинов для компиляции, никакого токена для управления. Запустить сервер CS:GO.

← Назад ко всем руководствам