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

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

MAATRIX GAMES

Захотели погонять Antistasi или King of the Hill со своей группой без чужих админов и рандомных вайпов миссии — и уткнулись в то, что Arma 3 не похожа на условный Rust, где сервер поднимается за пять минут. Тут своя терминология, отдельный бинарник, конфиги в двух местах и ключи подписи модов. Разберём по шагам весь путь: от установки через SteamCMD до автозапуска, без лишней воды.

Системные требования

Arma 3 Server не такой прожорливый, как клиентская игра, но экономить на железе всё равно не стоит — движок Enfusion/RV известен тем, что слабо параллелится, и упирается в частоту ядра куда быстрее, чем в их количество.

  • RAM: от 4 ГБ хватает для старта на лёгких миссиях (Team Deathmatch, небольшие коопы) с 10-20 игроками. Для миссий с активным ИИ и скриптами — Antistasi, Escape from Tarkov-style режимы, King of the Hill — закладывайте 6-8 ГБ с запасом, память там уходит не только на игроков, но и на ботов, зоны и логику миссии.
  • CPU: важнее частота ядра, а не их число — сервер практически весь висит на одном потоке. Берите тариф с современным процессором с высокой одноядерной производительностью.
  • Диск: SSD/NVMe обязателен. Сама игра с DLC весит около 40-50 ГБ, серверные файлы чуть компактнее, но с модами и несколькими картами (Altis, Tanoa, Livonia, Global Mobilization и другие воркшоп-карты) закладывайте от 60 ГБ свободного места.
  • ОС: Linux (Debian/Ubuntu) или Windows Server — оба варианта официально поддерживаются, серверный бинарник для Linux работает стабильно уже много лет, ниже разберём именно этот путь как более бюджетный у большинства хостеров.
  • Сеть: белый IP обязателен, без него сервер не зарегистрируется в списке через Steam Query и его не найдут через браузер серверов.

Если берёте VPS у MAATRIX GAMES под Arma 3, тариф уже подобран под этот движок — не придётся угадывать, хватит ли памяти под конкретную модовую сборку.

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

У Arma 3 отдельный дедик-сервер со своим App ID — 233780, он не совпадает с App ID самой игры (107410) и качается отдельно.

Важный нюанс, который часто путает новичков: серверные файлы Arma 3 бесплатны и скачиваются анонимным логином в SteamCMD, владеть игрой на этом аккаунте не нужно. Лицензия на саму игру требуется только тем, кто подключается как игрок.

Ставим SteamCMD и зависимости (Debian/Ubuntu):

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl unzip
useradd -m steam
su - steam
mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

Отдельный непривилегированный пользователь steam — не формальность: если через уязвимый мод кто-то доберётся до процесса сервера, root на машине он не получит.

Скачиваем сервер:

./steamcmd.sh +force_install_dir ~/arma3server +login anonymous +app_update 233780 validate +quit

Первая закачка может занять 20-40 минут в зависимости от канала — ждите строку Success! App '233780' fully installed. Той же командой сервер обновляется после патчей — гоняйте её каждый раз, когда выходит апдейт Arma 3, и лучше останавливать сервер перед обновлением.

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

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

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

Базовая конфигурация server.cfg

Основной конфиг сервера — текстовый файл server.cfg, который вы создаёте сами в корне папки сервера (~/arma3server/server.cfg). Готового шаблона из коробки нет.

hostname = "Мой Arma 3 сервер";
password = "";
passwordAdmin = "supersecretpassword";
maxPlayers = 32;
motd[] = {"Добро пожаловать!", "Правила в дискорде"};
motdInterval = 5;
persistent = 1;
verifySignatures = 2;
kickDuplicate = 1;
voteThreshold = 0.33;
voteMissionPlayers = 1;
disableVoN = 0;
vonCodecQuality = 20;

class Missions
{
    class Mission1
    {
        template = "coop_antistasi.altis";
        difficulty = "Regular";
    };
};

Что реально важно на старте:

  • hostname — имя в браузере серверов.
  • password / passwordAdmin — пароль входа для игроков и отдельный пароль администратора, обязательно смените дефолтное значение.
  • maxPlayers — реальный лимит слотов соотносите с RAM: на 4 ГБ комфортно держать 15-20 слотов на лёгкой миссии, выше — уже риск просадок при активном ИИ.
  • persistent = 1 — сервер не закрывается, когда на нём никого нет, а ждёт подключения новых игроков.
  • verifySignatures = 2 — проверка ключей подписи модов, отключать не стоит даже на модовом сервере.
  • class Missions — список миссий в ротации, template указывает на файл миссии в папке mpmissions в формате имя_миссии.карта (без расширения .pbo).

Запуск сервера

Сервер запускается бинарником arma3server_x64 (64-битный, рекомендуемый вариант) из корня папки сервера. Помимо server.cfg есть второй конфиг — basic.cfg, он отвечает за сетевые параметры (размер пакетов, полосу пропускания) и подключается отдельным ключом.

Базовая команда запуска:

./arma3server_x64 -config=server.cfg -port=2302 -profiles=profiles -cfg=basic.cfg -world=empty -noSound

Разберём ключи:

  • -config — путь к server.cfg.
  • -port — базовый игровой порт, по умолчанию 2302.
  • -profiles — папка профиля сервера, где хранятся логи (создаётся автоматически).
  • -cfg — путь к basic.cfg с сетевыми настройками (необязателен на старте, но полезен при просадках у игроков с плохим пингом).
  • -world=empty — предзагрузка пустой карты вместо стандартной, ускоряет первый запуск и смену миссий.
  • -noSound — на headless-Linux звуковое устройство всё равно не нужно, ключ убирает лишние попытки его инициализировать.

Если добавляете моды, сюда же дописывается -mod=@ace;@cba_a3 — подробнее в следующем разделе.

Установка миссии и модов

Миссии — это .pbo-файлы, которые кладутся в папку mpmissions (~/arma3server/mpmissions/). Имя файла миссии — то самое значение template из server.cfg плюс расширение .pbo, например coop_antistasi.altis.pbo.

Моды качаются со Steam Workshop через тот же SteamCMD, но уже под App ID клиентской игры — 107410, с указанием ID конкретного мода из ссылки воркшопа:

./steamcmd.sh +login anonymous +workshop_download_item 107410 <workshop_id> +quit

Дальше скачанную папку с цифровым ID нужно переименовать в формат @ИмяМода (в нижнем регистре, без пробелов) и положить рядом с папкой сервера. Ключи подписи мода (файлы .bikey из подпапки Keys внутри мода) копируются в общую папку keys сервера — без этого игроков с модом будут банить как "unsigned data".

Есть два типа модов в запуске: -mod= — для модов, которые должны совпадать у клиента и сервера (контент, оружие, техника), и -serverMod= — для серверных модов, которые не видны игрокам (например, серверная часть логирования или админ-инструментов). Похожий принцип разделения контента и инструментов встречается и в других играх на модах — например, при установке сервера DayZ, тоже родом от Bohemia Interactive, или в Garry's Mod, где Steam Workshop интегрирован ещё плотнее через коллекции аддонов.

Проброс портов

Arma 3 использует не один порт, а диапазон из пяти, начиная с базового игрового (по умолчанию 2302):

ПортПротоколНазначение
2302UDPОсновной игровой трафик
2303UDPSteam Query (отображение в браузере серверов)
2304UDPSteam Query / регистрация в мастер-сервере
2305UDPVoN — голосовой чат в игре
2306UDPРезервный Steam-порт

Если сервер стоит на VPS с публичным IP напрямую на интерфейсе (как обычно бывает у игровых хостеров), достаточно открыть эти порты в файрволе самой машины:

sudo ufw allow 2302:2306/udp

Если разворачиваете сервер дома за роутером — пробросьте тот же диапазон на локальный IP машины и убедитесь, что провайдер выдаёт реальный белый IP, а не серый адрес за NAT. Логика портов в целом похожа на другие игры с ботами и большими картами вроде ARK: Survival Evolved — тоже диапазон UDP-портов под игровой трафик и отдельный порт под query.

Автозапуск сервера

Запускать сервер вручную через SSH-сессию — плохая идея: закрыли терминал, процесс оборвался вместе с ним. Правильный путь на Linux — systemd-юнит с автоперезапуском.

Создаём /etc/systemd/system/arma3server.service:

[Unit]
Description=Arma 3 Dedicated Server
After=network.target

[Service]
User=steam
WorkingDirectory=/home/steam/arma3server
ExecStart=/home/steam/arma3server/arma3server_x64 -config=server.cfg -port=2302 -profiles=profiles -cfg=basic.cfg -world=empty -noSound -mod=@ace;@cba_a3
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Включаем и запускаем:

sudo systemctl daemon-reload
sudo systemctl enable arma3server
sudo systemctl start arma3server

Проверка статуса и логов:

sudo systemctl status arma3server
journalctl -u arma3server -f

С таким юнитом сервер сам поднимется после перезагрузки хоста и после случайного краша — не придётся среди ночи вручную стартовать процесс, потому что кто-то в дискорде написал "сервер лёг".

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

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

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

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

Нужно ли покупать Arma 3, чтобы поднять сервер?

Нет, дедик-сервер (App ID 233780) бесплатен и скачивается через анонимный логин в SteamCMD. Лицензия на игру нужна только тем, кто подключается как игрок.

Сколько игроков потянет сервер на минимальных 4 ГБ RAM?

На лёгкой миссии без активного ИИ — комфортно 15-20 слотов. На миссиях с постоянно работающим ИИ и скриптами (Antistasi, King of the Hill) нагрузка на RAM и CPU заметно выше, точные цифры зависят от конкретной сборки и лучше проверять на своём железе.

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

Останавливаете сервис (sudo systemctl stop arma3server), запускаете ту же команду SteamCMD с +app_update 233780 validate, затем стартуете сервис обратно.

Можно ли запустить сервер на Windows?

Да, используется arma3server_x64.exe, установка через SteamCMD аналогична, а для автозапуска вместо systemd применяют службу Windows или сторонний менеджер вроде NSSM.

Почему сервер не отображается в браузере серверов?

Чаще всего не открыт диапазон Steam Query портов (2303-2304 UDP) либо сервер ещё не прошёл первую регистрацию в мастер-сервере Steam — подождите пару минут после старта и перепроверьте файрвол.