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

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

MAATRIX GAMES

Squad — это не Rust и не Minecraft на 4 ГБ RAM: сто игроков на одной карте, техника, логистика, полноценные war-сессии, которые грузят VPS так, что дешёвый тариф просто захлебнётся на первом же крупном бою. Вдобавок конфиги раскиданы по нескольким файлам, а ротация карт настроена совсем не так, как в большинстве шутеров, и новичков это обычно ставит в тупик. Разберём по шагам: от честного разговора о железе до systemd-юнита, который поднимет сервер сам после перезагрузки хоста.

Системные требования и подготовка VPS

Сразу честно: Squad — одна из самых тяжёлых игр среди тех, что вообще имеет смысл держать на арендованном VPS. Движок (Unreal Engine 4) не умеет эффективно размазывать нагрузку по ядрам, а сотня игроков с техникой и разрушаемым окружением на большой карте — это серьёзная просадка и по CPU, и по сети.

Формально сервер можно поднять и на 6 ГБ RAM — но это по факту тестовый вариант для небольшого закрытого сквада на 10-20 человек, не полноценный паблик на 100 слотов. Для чего ориентироваться:

  • 6 ГБ RAM — минимум для теста, малых миксов, локальной игры со своей командой.
  • 8-12 ГБ RAM — комфортно для сервера на 40-60 игроков без сложных плагинов.
  • 16 ГБ и выше — для полноценного паблика на 80-100 слотов, особенно если планируете SquadJS и плагины для статистики/античита.
  • CPU — важнее частота ядра, чем их количество: движок плохо параллелится, ищите тариф с быстрыми ядрами, а не просто с их числом.
  • Диск — только SSD/NVMe, установка вместе с обновлениями занимает ориентировочно 40+ ГБ, точная цифра гуляет от патча к патчу.
  • Канал — от 100 Мбит/с и без строгих лимитов по исходящему трафику: сотня клиентов постоянно синхронизируют состояние мира.

ОС — Ubuntu 22.04/24.04 LTS или Debian 12. Дальше все команды и пути — под Linux; на Windows-хосте логика конфигов та же, но исполняемый файл будет SquadGameServer.exe, а не .sh-скрипт.

Установка Squad через SteamCMD

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

sudo adduser squadserver
sudo su - squadserver
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

Сама установка — анонимный логин, SteamCMD скачивает и распаковывает файлы сервера:

cd ~/steamcmd
./steamcmd.sh +force_install_dir /home/squadserver/squad-server +login anonymous +app_update 403240 validate +quit

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

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

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

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

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

После установки структура каталогов выглядит так:

squad-server/
├── SquadGame/
│   ├── Binaries/Linux/SquadGameServer.sh
│   ├── ServerConfig/
│   │   ├── Server.cfg
│   │   ├── Rules.cfg
│   │   ├── Admins.cfg
│   │   ├── Bans.cfg
│   │   ├── MapRotation.cfg
│   │   └── MOTD.cfg
│   └── Saved/Logs/

Пробный запуск — из каталога с бинарником:

cd /home/squadserver/squad-server/SquadGame/Binaries/Linux
./SquadGameServer.sh Port=7787 QueryPort=27165 -log

-log пишет подробный вывод в SquadGame/Saved/Logs/ — при первом запуске обязательно держите этот флаг, так проще ловить причину, если сервер не поднялся или не появился в браузере серверов. Полная инициализация занимает пару минут: движок собирает список карт, факций и плагинов, если они установлены.

Если файлов Server.cfg, Rules.cfg и остальных нет в ServerConfig/ — это нормально для самой первой установки, часть из них создаётся сервером при первом запуске, часть нужно скопировать из шаблонов, идущих в архиве установки, или создать вручную по образцу ниже.

Server.cfg — базовая конфигурация

Это основной файл сервера: имя в списке, порты, лимиты и пароли. Рабочий каркас:

ServerName=My Squad Server
ServerPassword=
AdminPassword=SuperSecretAdmin123
MaxPlayers=100
PublicQueueLimit=25
ReservedSlots=8
ReservedSlotsPassword=ReservedPass123
VACEnabled=true
DemoEnabled=false

Разберём ключевые поля: ServerName — то, что видят игроки в браузере серверов; MaxPlayers — вместе с командными слотами, Squad поддерживает до 100 игроков на сессию, но полную сотню стоит выставлять только если железо реально тянет; PublicQueueLimit — сколько человек может стоять в очереди сверх MaxPlayers, чтобы слот не пустовал при дисконнекте; ReservedSlots и ReservedSlotsPassword — зарезервированные места для админов и донатеров, которые заходят по отдельному паролю поверх забитого лобби; AdminPassword используется и как пароль входа в консоль администратора, и как база для RCON-доступа.

ServerPassword оставляйте пустым для публичного сервера — заполненное поле превращает сервер в приватный, доступный только тем, кому вы лично дали пароль.

Rules.cfg и ротация карт

Здесь у Squad есть нюанс, который путает новичков, приходящих из других шутеров: правила сервера и ротация карт — это разные механизмы.

Rules.cfg — простой текстовый файл с правилами сервера, которые видят игроки во вкладке "Rules" в игровом меню. Формат — обычный текст, без секций:

1. Уважайте других игроков, без токсика в чате.
2. Тимкилл карается баном без предупреждения.
3. Discord сервера: your-discord-invite

Ротация карт устроена иначе и настраивается через MapRotation.cfg — список слоёв (layers), по одному на строку. В Squad карта, режим и версия баланса объединены в одну сущность-«слой»:

Narva_RAAS_v1
Yehorivka_AAS_v1
Gorodok_Invasion_v1
Mutaha_RAAS_v2
Fallujah_TC_v1

RAAS (Random Advance and Secure), AAS (Advance and Secure), Invasion, TC (Territory Control) — это игровые режимы, зашитые в название слоя. Список слоёв обновляется вместе с патчами игры, часть старых карт со временем убирают или переименовывают — сверяйтесь с актуальным списком в самой игре (вкладка выбора карты в лобби) перед тем как собирать длинную ротацию, иначе рискуете вписать в файл слой, которого уже нет в текущей версии.

Отдельно есть FactionRotation.cfg — список пулов фракций для тех, кто хочет ограничить, какие армии выпадают на сервере. Для старта его можно не трогать: по умолчанию используется полный пул из установленной версии игры.

Порты, firewall и автозапуск

Squad слушает три порта, и открывать их нужно отдельно — путаница с портами одна из самых частых причин "сервер запустился, но его не видно":

ПортНазначениеПроброс
7787 (UDP)Game Port — основной игровой трафикобязателен
27165 (UDP)Query Port — отображение в браузере серверов Steamобязателен
21114 (TCP)RCON Port — удалённое администрированиеопционально, но рекомендуется

Это стандартные значения по умолчанию, но всегда сверяйте их с тем, что реально прописано в вашем Server.cfg — при желании их можно и нужно менять, если на VPS уже что-то занимает эти же порты.

Открываем через ufw:

sudo ufw allow 7787/udp
sudo ufw allow 27165/udp
sudo ufw allow 21114/tcp
sudo ufw enable

RCON включается и настраивается прямо в Server.cfg:

RconEnabled=true
RconPort=21114
RconPassword=AnotherSecretPass456

Подключаться можно любым RCON-клиентом, понимающим протокол Squad (например, через плагины SquadJS или отдельные RCON-инструменты) — удобно для смены карты, кика/бана игроков и рассылки сообщений без захода в саму игру под админом.

Автозапуск и восстановление после падений — через systemd:

# /etc/systemd/system/squad-server.service
[Unit]
Description=Squad Dedicated Server
After=network.target

[Service]
User=squadserver
WorkingDirectory=/home/squadserver/squad-server/SquadGame/Binaries/Linux
ExecStart=/home/squadserver/squad-server/SquadGame/Binaries/Linux/SquadGameServer.sh Port=7787 QueryPort=27165 -log
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now squad-server

После этого сервер сам поднимется после перезагрузки хоста и перезапустится при падении. Логи смотрите через journalctl -u squad-server -f или напрямую в SquadGame/Saved/Logs/ — на модовых и плагинных сборках стоит первое время держать вкладку с логом открытой, чтобы сразу видеть причину, если что-то пошло не так.

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

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

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

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

Реально ли поднять полноценный сервер на 100 игроков на 6-8 ГБ RAM?

Формально запустится, но под нагрузкой полного лобби с техникой и боями это, скорее всего, будет проседать. 6-8 ГБ — это честный минимум для теста или маленького сквада, для стабильного паблика закладывайте 12-16 ГБ.

Сервер запущен, но не появляется в браузере серверов игры?

В 9 случаях из 10 дело в непроброшенном Query Port (27165/UDP) — проверьте ufw status и правила firewall у хостера, иногда провайдеры дополнительно блокируют UDP на уровне сети.

Как обновить сервер после патча?

Останавливаете systemd-юнит, запускаете ту же команду SteamCMD с +app_update 403240 validate, запускаете юнит обратно. Делать это стоит до того, как игроки массово обновят клиент — иначе они не смогут зайти из-за несовпадения версий.

Можно ли изменить ротацию карт без перезапуска сервера?

Правки в MapRotation.cfg подхватываются не мгновенно — надёжнее всего перезапустить сервис или, если админ на сервере в этот момент, сменить карту вручную через RCON-команду смены следующей карты.

Нужен ли отдельный сервер под тесты плагинов (SquadJS и подобное)?

Крайне желательно — плагины трогают RCON и логи в реальном времени, и лучше ловить их баги на тестовом инстансе, а не на паблике с живыми игроками.