MAATRIX GAMES / Блог / Как поднять сервер Insurgency: Sandstorm: пошаговая инструкция

Как поднять сервер Insurgency: Sandstorm: пошаговая инструкция

MAATRIX GAMES

Если ты искал гайд по Insurgency и наткнулся на этот — не перепутай: Sandstorm (2018) не имеет ничего общего по установке с оригинальной Insurgency 2014 года, кроме названия студии New World Interactive. Это отдельная игра на другом движке, с другим app id, другой структурой конфигов и своим набором граблей. Ниже — весь путь от чистого VPS до рабочего сервера с ротацией карт, RCON и автозапуском.

Системные требования и в чём отличие от оригинала

Ключевая разница: Insurgency (2014) работает на движке Source, а Sandstorm — на Unreal Engine 4. Это не формальность — UE4-сервер ощутимо прожорливее по CPU и памяти, хуже размазывает нагрузку по ядрам и требовательнее к диску из-за размера установки. Если когда-то поднимал сервер по оригинальной Insurgency, забудь про её лёгкость — Sandstorm играет в другой весовой категории.

Ориентировочные требования под сервер на 16-24 игрока:

  • RAM: от 3 ГБ — рабочий минимум для небольшого закрытого сервера на 8-12 слотов; для комфортного паблика на 16-24 игрока закладывай 4-6 ГБ, особенно если планируешь режим Frontline с расширенным составом
  • CPU: 2-4 ядра с высокой частотой — UE4 у Sandstorm однопоточно упирается в производительность ядра сильнее, чем в их количество
  • Диск: SSD/NVMe обязателен, под установку и обновления закладывай 20+ ГБ — точный размер гуляет от патча к патчу
  • ОС: Ubuntu 22.04/24.04 LTS или Debian 12 для Linux-сборки сервера; Windows Server тоже поддерживается, но бинарник и пути будут другие
  • Канал: от 15-20 Мбит/с исходящего на полное лобби

Если тариф уже держит Source-сервер вроде CS2 или того же Insurgency — не думай, что Sandstorm впишется в те же рамки по железу, разница в требованиях реальная.

Устанавливаем SteamCMD и качаем сервер

Дедикейтед-сервер Sandstorm ставится через SteamCMD под отдельным app id — 581330 (это именно серверная сборка, не путай с клиентским app id самой игры). Как и с любым другим игровым сервером, работай от отдельного пользователя без root-прав:

sudo adduser sandstorm
sudo su - sandstorm
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

Скачиваем сервер анонимно, логин Steam-аккаунта не нужен:

cd ~/steamcmd
./steamcmd.sh +force_install_dir /home/sandstorm/sandstorm-server +login anonymous +app_update 581330 validate +quit

Первая установка может занять от 15-20 минут до часа в зависимости от канала — качается больше десятка гигабайт. Для будущих обновлений после патчей держи ту же команду в отдельном скрипте update.sh: validate докачает только изменившееся, полную переустановку делать не придётся.

Поднять сервер Insurgency: Sandstorm за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Первый запуск и структура файлов

После установки в ~/sandstorm-server появится основная папка Insurgency. Ключевые пути:

sandstorm-server/
└── Insurgency/
    ├── Binaries/Linux/
    │   ├── InsurgencyServer.sh          # обёртка для запуска
    │   └── InsurgencyServer-Linux-Shipping
    └── Saved/Config/LinuxServer/
        ├── Game.ini
        ├── Engine.ini
        └── GameUserSettings.ini

Пробный запуск, чтобы убедиться, что бинарник стартует и не падает сразу:

cd ~/sandstorm-server/Insurgency/Binaries/Linux
./InsurgencyServer.sh Farmhouse?Scenario=Scenario_Farmhouse_Checkpoint_Security?MaxPlayers=16 -Port=27102 -QueryPort=27131 -log

Карта и режим в Sandstorm задаются одной строкой — имя карты плюс сценарий через ?Scenario=, а не отдельными параметрами, как в большинстве других шутеров. Флаг -log пишет подробный вывод в Insurgency/Saved/Logs/ — на первом запуске держи его обязательно, так проще понять, что пошло не так, если сервер не поднялся или не появился в списке серверов. Если в консоли появилось что-то вроде LogInit: Game Engine Initialized и сервер не упал через несколько секунд после загрузки карты — всё встало нормально, можно останавливать (Ctrl+C) и переходить к нормальной конфигурации через файлы, а не через флаги командной строки.

При первом запуске папка Saved/Config/LinuxServer/ может не содержать всех файлов сразу — часть создаётся движком после первого старта. Если Game.ini пуст или отсутствует — создай его вручную по образцу ниже, движок подхватит настройки при следующем запуске.

Настраиваем Game.ini

Открой Insurgency/Saved/Config/LinuxServer/Game.ini и пропиши базовые параметры сервера:

[/Script/Insurgency.INSGameSession]
Hostname="Мой сервер Sandstorm | RU"
MaxPlayers=16
GamePassword=
AdminPassword=поставь-сложный-пароль
IdleTimeout=180

[URL]
Port=27102

Что здесь важно:

  • Hostname — имя, которое видят игроки в браузере серверов; пиши так, чтобы сразу было понятно про регион и правила
  • MaxPlayers — реальный лимит слотов; для 3-4 ГБ RAM не стоит задирать выше 12-16
  • GamePassword — если сервер закрытый, для друзей или клана, впиши сюда пароль
  • AdminPassword — используется для входа в консоль администратора и часто как база для RCON, обязательно смени со значения по умолчанию

Учитывай нюанс: часть параметров (порт, лимит игроков, карту со сценарием) можно продублировать и переопределить прямо в строке запуска — так делают многие серверные скрипты, чтобы не трогать Game.ini на каждый рестарт. Если значения в командной строке и в Game.ini расходятся — приоритет обычно у командной строки, поэтому при отладке лучше держать источник настроек в одном месте.

Карты, сценарии и ротация

В Sandstorm карта и режим объединены в понятие "сценарий" (Scenario) — имя карты плюс постфикс режима и стороны. Например, Farmhouse может встречаться со сценариями вроде Scenario_Farmhouse_Checkpoint_Security (кооп против ботов, оборона точек) или версией под PvP-режимы вроде Firefight и Push. Основные игровые режимы Sandstorm: Checkpoint (кооп-атака точек против AI), Push (атака/оборона по фазам), Firefight (командный TDM), Skirmish (захват точек с ограниченным респауном) и Frontline (крупномасштабный режим с расширенным составом игроков).

Ротация карт задаётся списком через запуск сервера или отдельным конфигом ротации, который читает сервер при смене карты. Общий подход — перечислить сценарии по одному на строку в порядке, в котором они должны сменять друг друга:

Farmhouse?Scenario=Scenario_Farmhouse_Checkpoint_Security
Hillside?Scenario=Scenario_Hillside_Checkpoint_Security
Precinct?Scenario=Scenario_Precinct_Firefight_Security
Refinery?Scenario=Scenario_Refinery_Push_Security

Точные имена доступных карт и сценариев для установленной у тебя версии игры лучше сверять в самом клиенте (экран выбора сервера/сценария в лобби) или в шаблонных конфигах, которые идут вместе с установкой сервера — с патчами New World Interactive периодически добавляет и переименовывает карты, и жёстко зашитый в статью список может устареть быстрее, чем хотелось бы.

Если параллельно держишь сервер по Squad — там ротация карт тоже завязана на понятие "слой" (карта+режим+баланс в одной строке), логика похожая, но формат файлов и названия параметров у движков разные, не путай синтаксис между играми.

Проброс портов, RCON и автозапуск

Sandstorm по умолчанию слушает UDP 27102 для игрового трафика и UDP 27131 для запросов из браузера серверов Steam. На VPS с внешним IP пробрасывать обычно ничего не нужно, но открыть брандмауэр — придётся:

sudo ufw allow 27102/udp
sudo ufw allow 27131/udp

Если сервер стоит за NAT (домашний ПК, а не VPS) — те же порты нужно пробросить в настройках роутера на внутренний IP машины.

RCON в Sandstorm настраивается отдельно и по умолчанию выключен — включается через Game.ini (в некоторых версиях сервера — через отдельную секцию [Rcon]):

[Rcon]
Rcon.Enabled=True
Rcon.Port=27015
Rcon.Password=другой-сложный-пароль

Права администраторов на сервере выдаются по SteamID64 через отдельный текстовый файл со списком (в зависимости от версии сборки он может называться по-разному — сверься с шаблоном, который идёт в комплекте установки в папке с конфигами). Формат обычно простой: один SteamID64 на строку с указанием уровня доступа.

Чтобы сервер не падал вместе с закрытой SSH-сессией и поднимался сам после ребута хоста, оформи его как systemd-сервис. Создай /etc/systemd/system/sandstorm.service:

[Unit]
Description=Insurgency Sandstorm Dedicated Server
After=network.target

[Service]
User=sandstorm
WorkingDirectory=/home/sandstorm/sandstorm-server/Insurgency/Binaries/Linux
ExecStart=/home/sandstorm/sandstorm-server/Insurgency/Binaries/Linux/InsurgencyServer.sh Farmhouse?Scenario=Scenario_Farmhouse_Checkpoint_Security -Port=27102 -QueryPort=27131 -log
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target

Активируй и запусти:

sudo systemctl daemon-reload
sudo systemctl enable --now sandstorm

Логи и статус смотри через sudo systemctl status sandstorm и journalctl -u sandstorm -f, либо напрямую в Insurgency/Saved/Logs/. Обновлять сервер после патчей — той же командой app_update 581330, лучше через отдельный скрипт с остановкой сервиса перед скачиванием и стартом после, чтобы не поймать конфликт файлов на живом процессе.

Поднять сервер Insurgency: Sandstorm за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Можно ли поставить оригинальную Insurgency и Sandstorm на один VPS?

Да, это два независимых app id (237410 и 581330), конфликтов по файлам не будет — просто закладывай ресурсы под обе игры отдельно, Sandstorm заметно тяжелее.

Сервер не появляется в браузере серверов Steam?

В первую очередь проверь, что Query Port (27131/UDP) реально открыт снаружи — это самая частая причина. Также убедись, что порт не занят другим процессом на том же хосте.

Почему сервер вылетает при смене карты в ротации?

Чаще всего дело в опечатке в имени сценария или в карте, которой нет в установленной версии игры — сверь точное написание в клиенте перед тем как прописывать ротацию в конфиг.

Сколько игроков реально тянет минимальный тариф на 3 ГБ RAM?

Для 8-12 слотов без тяжёлых режимов вроде Frontline — приемлемо, но при первой возможности стоит перейти на 4-6 ГБ, особенно если планируешь полный паблик на 16+ человек.

Нужен ли отдельный тестовый сервер перед запуском публичного?

Крайне желательно — RCON, права администраторов и ротация карт лучше обкатать на закрытом инстансе, чем ловить баги конфигурации на живом паблике с игроками.