Arma 3: установка и настройка выделенного сервера
Пошаговая установка сервера Arma 3 через SteamCMD: server.cfg, basic.cfg, моды, миссии, порты и headless client.
Кратко: для запуска сервера Arma 3 нужен SteamCMD с App ID 233780, настроенный server.cfg с именем и паролями, открытый порт 2302 UDP. Моды подключаются через ключ
-mod=в строке запуска, миссии кладутся в папкуmpmissions.
Arma 3: установка и настройка выделенного сервера
Arma 3 - одна из самых требовательных к железу и настройке многопользовательских игр. Сервер может обслуживать от пяти человек с лёгкими сценариями до 100+ игроков в реалистичных военных операциях с десятками модов. Правильно настроенный выделенный сервер даёт стабильный пинг, управляемую нагрузку ЦП и отказоустойчивость при крашах. Эта статья охватывает полный цикл: от установки через SteamCMD до настройки headless client и разбора частых проблем с модами.
Pterohost - игровой хостинг с NVMe-дисками, DDoS-защитой и поддержкой 24/7. Если не хочется заниматься конфигурацией сервера самостоятельно - панель управления сделает это за несколько кликов. Промокод 4START даёт -20% на первый заказ. Заказать сервер Arma 3
Системные требования
Прежде чем приступить к установке, убедитесь, что сервер соответствует минимальным требованиям. Arma 3 использует один поток для основной симуляции, поэтому важна тактовая частота ЦП, а не только количество ядер.
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| ОС | Ubuntu 20.04 LTS / Windows Server 2019 | Ubuntu 22.04 LTS |
| ЦП | 4 ядра @ 3.0 GHz | 6+ ядер @ 3.5+ GHz |
| ОЗУ | 4 GB | 16 GB |
| Диск | 50 GB HDD | 100 GB NVMe SSD |
| Сеть | 10 Mbps up | 100 Mbps up |
| Порты | 2302-2305 UDP | 2302-2306 UDP |
Для модпаков вроде RHS + CUP + ACE требования растут: только загрузка данных мода может занять 30-60 GB, а ОЗУ уходит под 12-14 GB при 30 игроках.
Установка SteamCMD и загрузка сервера
Linux (Ubuntu/Debian)
# Установка зависимостей
sudo apt-get update
sudo apt-get install -y lib32gcc-s1 lib32stdc++6 wget curl
# Создаём пользователя для сервера (рекомендуется)
sudo adduser --disabled-login arma3
# Скачиваем SteamCMD
mkdir -p /home/arma3/steamcmd
cd /home/arma3/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
# Загружаем сервер (App ID 233780)
./steamcmd.sh +force_install_dir /home/arma3/arma3server \
+login anonymous \
+app_update 233780 validate \
+quit
Windows
Скачайте steamcmd.exe с официального сайта Steam, распакуйте и выполните:
steamcmd.exe +force_install_dir "C:\arma3server" ^
+login anonymous ^
+app_update 233780 validate ^
+quit
После загрузки в директории сервера должен появиться файл arma3server_x64 (Linux) или arma3server_x64.exe (Windows) - это и есть исполняемый файл сервера.
Обновление сервера
Для обновления достаточно повторно запустить SteamCMD с той же командой app_update 233780 validate. Рекомендуется добавить это в cron или планировщик Windows для автоматических обновлений.
Настройка server.cfg
Основной конфигурационный файл сервера. Создайте его в директории сервера:
nano /home/arma3/arma3server/server.cfg
Базовый рабочий конфиг:
// Основные настройки сервера
hostname = "Мой сервер Arma 3";
password = ""; // Пароль для входа (пусто = открытый)
passwordAdmin = "adminpass"; // Пароль администратора - ОБЯЗАТЕЛЬНО СМЕНИТЬ
serverCommandPassword = "cmdpass"; // Пароль для команд через консоль
// Настройки слотов и доступа
maxPlayers = 64;
persistent = 1; // Сервер не выключается при пустом лобби
// Безопасность
BattlEye = 1; // Включить BattlEye (рекомендуется)
verifySignatures = 2; // Проверять подписи модов (2 - строгий режим)
allowedFilePatching = 0; // 0 - никому, 1 - только admins, 2 - всем
kickDuplicate = 1; // Выгонять дубликаты
// Миссии - список доступных в ротации
class Missions {
class Mission1 {
template = "co10_example.Altis"; // Имя файла миссии без .pbo
difficulty = "Regular";
class Params {};
};
};
// Логирование
logFile = "server_console.log";
timeStampFormat = "short";
Важные параметры verifySignatures:
0- не проверять (опасно, позволяет читы через моды)1- проверять только подписи v1 (устаревший)2- строгая проверка v2 (рекомендуется)
Настройка basic.cfg
Файл basic.cfg управляет сетевыми параметрами. Создайте его рядом с server.cfg:
// Настройки сети (basic.cfg)
MaxMsgSend = 128; // Максимум пакетов в очереди отправки
MaxSizeGuaranteed = 512; // Максимальный размер гарантированного пакета
MaxSizeNonguaranteed = 256; // Максимальный размер негарантированного пакета
MinBandwidth = 131072; // Минимальная пропускная способность (байт/с)
MaxBandwidth = 104857600; // 100 Mbps - максимум для сервера
MinErrorToSend = 0.001; // Точность синхронизации
MinErrorToSendNear = 0.01; // Точность для близких объектов
MaxCustomFileSize = 160; // Максимальный размер пользовательских файлов (kB)
adapter = -1; // -1 = все адаптеры
Для высоконагруженных серверов с хорошим каналом:
MaxMsgSend = 256;
MaxSizeGuaranteed = 1024;
MaxSizeNonguaranteed = 512;
MaxBandwidth = 524288000; // 500 Mbps
Открытие портов и запуск
Открытие портов (Linux/UFW)
sudo ufw allow 2302:2306/udp
sudo ufw reload
Открытие портов через iptables
iptables -A INPUT -p udp --dport 2302:2306 -j ACCEPT
iptables-save > /etc/iptables/rules.v4
Строка запуска сервера
Базовый запуск:
./arma3server_x64 \
-config=server.cfg \
-cfg=basic.cfg \
-port=2302 \
-profiles=/home/arma3/profiles \
-name=server \
-nosound
Расширенный запуск с параметрами производительности:
./arma3server_x64 \
-config=server.cfg \
-cfg=basic.cfg \
-port=2302 \
-profiles=/home/arma3/profiles \
-name=server \
-nosound \
-limitFPS=50 \
-cpuCount=4 \
-exThreads=7 \
-enableHT \
-noLogs
Пояснения ключевых параметров:
-limitFPS=50- ограничение FPS сервера снижает нагрузку на ЦП-cpuCount=N- количество ядер для сервера-exThreads=7- дополнительные потоки (рекомендуется для 8-поточных ЦП)-enableHT- включить Hyper-Threading-noLogs- отключить подробное логирование (снижает нагрузку на диск)
Systemd-сервис (Linux)
# /etc/systemd/system/arma3.service
[Unit]
Description=Arma 3 Dedicated Server
After=network.target
[Service]
Type=simple
User=arma3
WorkingDirectory=/home/arma3/arma3server
ExecStart=/home/arma3/arma3server/arma3server_x64 \
-config=server.cfg \
-cfg=basic.cfg \
-port=2302 \
-profiles=/home/arma3/profiles \
-name=server \
-nosound
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable arma3
sudo systemctl start arma3
sudo systemctl status arma3
Добавление модов
Загрузка модов через SteamCMD
Для загрузки модов Steam Workshop необходимо использовать аккаунт Steam с купленной игрой:
./steamcmd.sh +login вашлогин вашпароль \
+workshop_download_item 107410 <mod_id> \
+quit
Замените <mod_id> на ID мода из URL страницы Workshop. Например, для ACE3:
./steamcmd.sh +login вашлогин вашпароль \
+workshop_download_item 107410 463939057 \
+quit
Моды загружаются в ~/.steam/SteamApps/workshop/content/107410/<mod_id>/.
Структура папок для модов
/home/arma3/arma3server/
├── @ACE/
│ ├── addons/
│ │ └── *.pbo
│ └── keys/
│ └── *.bikey
├── @RHS_AFRF/
│ ├── addons/
│ └── keys/
└── @CBA_A3/
├── addons/
└── keys/
Папка keys/ содержит файлы .bikey - ключи подписи мода. Их нужно скопировать в директорию keys/ сервера:
cp /home/arma3/arma3server/@ACE/keys/*.bikey /home/arma3/arma3server/keys/
cp /home/arma3/arma3server/@RHS_AFRF/keys/*.bikey /home/arma3/arma3server/keys/
Подключение модов при запуске
./arma3server_x64 \
-config=server.cfg \
-cfg=basic.cfg \
-port=2302 \
-profiles=/home/arma3/profiles \
-name=server \
-nosound \
-mod=@CBA_A3;@ACE;@RHS_AFRF \
-serverMod=@Achilles
Разница между -mod= и -serverMod=:
-mod=- моды, которые должны быть у ВСЕХ клиентов (синхронизируются)-serverMod=- моды только на сервере, клиенты их не видят (например, административные утилиты)
Настройка миссий
Добавление миссий
Файлы миссий (.pbo) кладутся в папку mpmissions в директории сервера:
/home/arma3/arma3server/mpmissions/
├── co10_assault.Altis.pbo
├── tvt20_combat.Stratis.pbo
└── coop_30_zeus.Tanoa.pbo
Формат имени файла: <имя>.<карта>.pbo
Стандартные карты Arma 3: Altis, Stratis, Tanoa, Malden, VR.
Конфигурация ротации миссий в server.cfg
class Missions {
class Mission1 {
template = "co10_assault.Altis";
difficulty = "Regular";
class Params {
timelimit = 120; // Ограничение по времени в минутах
};
};
class Mission2 {
template = "tvt20_combat.Stratis";
difficulty = "Regular";
class Params {};
};
class Mission3 {
template = "coop_30_zeus.Tanoa";
difficulty = "Veteran";
class Params {};
};
};
Доступные значения difficulty: Recruit, Regular, Veteran, Custom.
Автозапуск миссии
Чтобы сервер сразу запускал миссию без ожидания в лобби, добавьте в server.cfg:
autoSelectMission = 1; // Автоматически выбирать миссию
skipLobby = 1; // Пропустить лобби (только для persistent серверов)
Headless Client
Headless client (HC) - мощный инструмент для разгрузки основного сервера. Он берёт на себя вычисление ИИ, что критично для миссий с десятками или сотнями юнитов.
Настройка в server.cfg
// Список IP-адресов headless client (локальные подключения)
headlessClients[] = {"127.0.0.1"};
localClient[] = {"127.0.0.1"};
Запуск headless client
./arma3_x64 \
-client \
-connect=127.0.0.1 \
-port=2302 \
-password="" \
-profiles=/home/arma3/hc_profiles \
-name=HC1 \
-nosound \
-noGUI \
-hugePages
Ключ -hugePages значительно повышает производительность HC на Linux-системах с настроенными HugePages:
# Настройка HugePages (добавить в /etc/sysctl.conf)
vm.nr_hugepages = 512
Распределение ИИ на HC в миссии
В скриптах миссии добавьте логику передачи групп:
// SQF-скрипт для передачи ИИ на headless client
private _HC = headlessClients select 0;
if (!isNull _HC) then {
[_HC, group _enemyGroup] remoteExec ["setGroupOwner", 2];
};
Для автоматического распределения используйте готовые решения типа HC_manager от сообщества Arma 3.
Частые проблемы и решения
Клиенты не видят сервер в списке
Проверьте, что:
- Порт 2302 UDP открыт в файрволе
- Сервер запустился без ошибок (проверьте
server_console.log) - IP в запросе указан правильно
- BattlEye успешно инициализирован (строка
BattlEye Server: Initializedв логе)
# Проверка открытых портов
sudo ss -ulnp | grep 2302
Ошибка “Bad version” или “Wrong version”
Клиент и сервер должны быть одной версии. Обновите сервер через SteamCMD:
./steamcmd.sh +force_install_dir /home/arma3/arma3server \
+login anonymous \
+app_update 233780 validate \
+quit
Ошибки подписей модов (“Bad key”)
Если клиент получает “You cannot play/remain on the server… (bad key)”:
- Убедитесь, что .bikey файлы модов скопированы в папку
keys/сервера - Клиент должен использовать точно такую же версию мода, что и сервер
- Временно снизьте
verifySignatures = 1для диагностики (не для продакшена)
Сервер не запускается или вылетает
# Проверка логов
tail -100 /home/arma3/arma3server/server_console.log
# Частые причины:
# "Cannot open file 'server.cfg'" - неверный путь к конфигу
# "Error compiling ..." - синтаксическая ошибка в .cfg файле
# "ADDON: ACE_... not found" - мод указан в -mod= но папка не найдена
Высокая нагрузка на ЦП
- Снизьте
maxPlayersдо реального числа игроков - Добавьте
-limitFPS=40в строку запуска - Используйте headless client для разгрузки ИИ
- Отключите подробное логирование через
-noLogs
Моды загружаются слишком долго
Если при запуске сервер долго инициализирует моды, это нормально для тяжёлых модпаков. Время загрузки RHS + CUP + ACE может достигать 5-10 минут. Использование NVMe SSD значительно ускоряет этот процесс.
Безопасность сервера
Защита от взлома и читов
// В server.cfg
BattlEye = 1; // Обязательно включить
verifySignatures = 2; // Строгая проверка модов
allowedFilePatching = 0; // Запретить file patching всем
kickUnflocked = 1; // Кикать незащищённых игроков
Административный доступ
Войти в режим администратора в игре: #login adminpass
Основные консольные команды:
#missions- список доступных миссий#mission <имя>- сменить миссию#restart- перезапустить миссию#kick <имя>- кикнуть игрока#ban <имя>- забанить игрока#shutdown- выключить сервер
Лог-файлы
По умолчанию логи пишутся в директорию профиля:
/home/arma3/profiles/server/
├── server.rpt # Основной лог ошибок
├── arma3server.log # Консольный лог
└── BattlEye/
├── BEServer.cfg # Конфиг BattlEye
└── bans.txt # Список банов
Связанные материалы
Если вас интересуют другие выживательные игры с выделенными серверами, читайте наши гайды. Полная настройка зомби-апокалипсиса описана в статье Project Zomboid: создание сервера. Для любителей постапокалиптической выживалки есть руководство 7 Days to Die: настройка сервера. А для скандинавского выживания с налётами - Valheim: настройка выделенного сервера.
Заключение
Настройка сервера Arma 3 требует больше усилий, чем большинство игровых серверов, но результат того стоит. Правильно сконфигурированный сервер с headless client, оптимизированным basic.cfg и проверкой подписей модов даёт стабильную работу на десятки часов игровых сессий. Ключевые моменты: всегда открывайте порты 2302-2305 UDP, копируйте .bikey файлы для всех модов, и используйте headless client при работе с тяжёлыми миссиями. При проблемах первым делом смотрите в server.rpt - там фиксируются все ошибки запуска и работы.
Pterohost - выделенные игровые серверы с DDoS-защитой, NVMe-дисками и живой поддержкой 24/7 для самых требовательных игр. Промокод 4START даёт -20% на первый заказ. Заказать сервер Arma 3