Как поднять сервер Mount & Blade II: Bannerlord: пошаговая инструкция
Мультиплеер Bannerlord живёт почти целиком на кастомных серверах — официальных матчмейкинг-серверов TaleWorlds для постоянных комьюнити нет, и если хотите свой Captain-режим с постоянным составом или Persistent Kingdoms с модами — придётся поднимать dedicated-сервер самому. Процесс не особо документирован официально, зато у него есть один нюанс, о который спотыкается почти каждый новичок: сервер не запустится без токена, привязанного к вашему Steam-аккаунту. Разберём всё по шагам — от установки до автозапуска, чтобы не упереться в это на середине пути.
Содержание
Системные требования
Bannerlord — не самый прожорливый мультиплеер по сравнению с тем же Rust или ARK, но требования сильно зависят от режима игры:
- Skirmish и Duel (малые бои, до 6v6): 2 ядра CPU от 2-3 ГГц, от 4 ГБ RAM.
- Captain, Team Deathmatch, Siege (крупные замесы с ботами и толпой игроков): от 4 ядер, от 8 ГБ RAM.
- CPU — узкое место чаще, чем RAM: физика столкновений, пути ботов и обсчёт большого числа юнитов на карте держатся на одном ядре, поэтому частота важнее количества ядер.
- Диск: SSD желателен, но не критичен так, как в песочницах с процедурной генерацией — сам сервер и Native-модуль занимают немного места, от 5-8 ГБ с запасом под логи.
- Сеть: нужен публично видимый IP-адрес — TaleWorlds прямо не поддерживает анонимный хостинг за NAT без проброса, сервер должен быть доступен снаружи по UDP.
- ОС: есть сборки и под Windows, и под Linux. Если не привязаны к конкретным модам, требующим Windows-библиотек — берите Linux, меньше накладных расходов на VPS и проще с автозапуском через systemd.
Каталог MAATRIX GAMES отдаёт под Bannerlord от 4 ГБ RAM — этого достаточно под Skirmish/Duel, но под Captain или Siege с полным составом закладывайте тариф повыше.
Установка через SteamCMD
Сервер ставится отдельным Steam-приложением "Mount & Blade II: Dedicated Server" — это не тот же app id, что у самой игры, и качается он отдельно.
Готовим окружение (на Ubuntu 22.04/24.04, под отдельным пользователем без root):
sudo apt update && sudo apt install -y lib32gcc-s1 curl unzip
sudo useradd -m -s /bin/bash bannerlord
sudo su - bannerlord
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
Качаем сам dedicated-сервер — app id 1863440, анонимного логина достаточно именно для скачивания файлов:
./steamcmd.sh +force_install_dir /home/bannerlord/server +login anonymous +app_update 1863440 validate +quit
Загрузка небольшая по меркам жанра — пара гигабайт, минут 5-15 в зависимости от канала. validate в конце — не для галочки: без него иногда остаётся недокачанный файл, и сервер молча падает при старте без внятной ошибки в консоли.
Обновление — та же команда без validate:
./steamcmd.sh +force_install_dir /home/bannerlord/server +login anonymous +app_update 1863440 +quit
Держите её под рукой отдельным скриптом: TaleWorlds патчит мультиплеер нерегулярно, но при рассинхроне версий клиент просто не подключится к серверу.
Поднять сервер Mount & Blade II: Bannerlord за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверТокен доступа: без него сервер не стартует
Вот та самая грабля. Bannerlord не даёт хостить сервер анонимно — нужен auth-токен, привязанный к личному Steam-аккаунту с игрой. Получаем его так:
- Запускаете обычный клиент Bannerlord у себя на ПК, заходите в мультиплеерное лобби.
- Открываете консоль игры сочетанием Alt + ` (тильда).
- Вводите команду:
customserver.gettoken
- Токен сохранится в файл
Documents\Mount & Blade II Bannerlord\Tokens\DedicatedCustomServerAuthToken.txt.
Токен привязан к аккаунту, действует ограниченное время (около 3 месяцев) и потом требует перегенерации той же командой — держите это в голове, если сервер вдруг откажется стартовать спустя пару месяцев без видимых причин в конфиге.
Содержимое файла копируете на VPS и передаёте серверу через параметр запуска /dedicatedcustomserverauthtoken — либо прямо строкой, либо путём к файлу, в зависимости от того, как оформлен ваш стартовый скрипт.
Конфигурация: config-файл и режимы игры
Исполняемый файл лежит в bin/Linux_Shipping_Server/DedicatedCustomServer.Starter (на Windows — bin\Win64_Shipping_Server\DedicatedCustomServer.Starter.exe). Права на выполнение на Linux нужно выставить руками:
chmod +x /home/bannerlord/server/bin/Linux_Shipping_Server/DedicatedCustomServer.Starter
Конфиг — текстовый файл, команды выполняются построчно при старте. Кладётся в Modules/Native/, в комплекте уже есть примеры вида ds_config_*.txt под разные режимы — проще скопировать подходящий и править, чем писать с нуля.
Минимальный рабочий конфиг ds_config_myserver.txt:
ServerName Мой сервер Bannerlord
GameType Captain
WelcomeMessage Добро пожаловать! Правила — в Discord.
AdminPassword СЮДА_СЛОЖНЫЙ_ПАРОЛЬ
CultureTeam1 Empire
CultureTeam2 Sturgia
add_map_to_usable_maps Arena_Siege_A Captain
start_game_and_mission
Ключевые моменты:
GameType— режим игры:Captain,Skirmish,TeamDeathmatch,Siege,Duel,Battle. Меняется через отдельный конфиг под каждый режим — не пытайтесь переключать на лету одной командой, проще держать несколькоds_config_*.txtи запускать нужный.AdminPassword— по умолчанию пустой, и это реальная дыра: без пароля админ-функции в игровом чате доступны кому попало. Ставьте сразу, не откладывайте на "потом".CultureTeam1/CultureTeam2— культуры сторон (Empire, Sturgia, Aserai, Khuzait, Vlandia, Battania), влияют на визуал юнитов и доступное вооружение по умолчанию.add_map_to_usable_maps— регистрирует карту под конкретный режим; без этой строки сервер стартует, но список карт окажется пустым.start_game_and_mission— комбинированная команда, сразу переводящая сервер из лобби в играбельную миссию. Можно разбить наstart_game+start_missionотдельно, если нужен контроль над паузой между этапами.
Полный список поддерживаемых команд конфига можно получить командой list прямо в консоли запущенного сервера.
Первый запуск и проверка
Первый раз стоит запустить вручную — так виден весь вывод консоли и ошибки конфига, а не только код завершения в systemd-логе:
cd /home/bannerlord/server
./bin/Linux_Shipping_Server/DedicatedCustomServer.Starter \
/dedicatedcustomserverconfigfile ds_config_myserver.txt \
/dedicatedcustomserverauthtoken ВАШ_ТОКЕН \
/LogOutputPath /home/bannerlord/server/logs
Полезные дополнительные флаги: /port 7210 — задать порт вручную, если не устраивает дефолтный; /DisableErrorReporting — отключить автоматическую отправку крэш-репортов, если гоняете нестабильную сборку модов.
Если сервер запустился, но не отображается в браузере серверов клиента — почти всегда дело в одном из трёх: не проброшен UDP-порт наружу (следующий раздел), не выполнена start_game/start_game_and_mission в конце конфига, либо неверный или просроченный токен (проверяйте логи — там прямо пишет причину отказа авторизации).
Подключение из клиента: мультиплеерное лобби → "Прямое подключение" → IP:порт вашего сервера.
Проброс портов и файрвол
Bannerlord использует один основной порт — по умолчанию UDP 7210 для игрового трафика:
| Порт | Протокол | Назначение |
|---|---|---|
| 7210 (по умолчанию) | UDP | Основной игровой трафик |
| 7210 | TCP | Опционально, для веб-панели администрирования |
Если сервер на VPS с публичным IP без NAT — достаточно открыть порт в файрволе:
sudo ufw allow 7210/udp
sudo ufw allow 7210/tcp
sudo ufw enable
Если несколько инстансов Bannerlord на одном сервере — раздавайте порты с шагом (7210, 7211, 7212...) через /port в параметрах запуска каждого, и не забывайте открывать каждый отдельно.
Проверить, что порт реально виден снаружи, а не только слушает локально — nmap -sU -p 7210 ВАШ_IP с другой машины. Помните про требование TaleWorlds насчёт публичного IP: хостинг за жёстким NAT без проброса технически не даст серверу нормально анонсироваться, даже если процесс запущен и работает локально.
Автозапуск через systemd
Чтобы сервер не умирал при обрыве SSH-сессии и поднимался сам после ребута VPS — оформляем systemd-юнит /etc/systemd/system/bannerlord.service:
[Unit]
Description=Mount and Blade II Bannerlord Dedicated Server
After=network.target
[Service]
User=bannerlord
WorkingDirectory=/home/bannerlord/server
ExecStart=/home/bannerlord/server/bin/Linux_Shipping_Server/DedicatedCustomServer.Starter /dedicatedcustomserverconfigfile ds_config_myserver.txt /dedicatedcustomserverauthtoken ВАШ_ТОКЕН /LogOutputPath /home/bannerlord/server/logs
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Хранить токен прямо в юните — не лучшая практика с точки зрения безопасности (файл юнита читаем всем в системе с правами root на просмотр через systemctl), поэтому если сервер публичный и важна гигиена — вынесите токен в отдельный файл окружения через EnvironmentFile= и подставляйте переменной, а не пишите прямым текстом в ExecStart.
Активация:
sudo systemctl daemon-reload
sudo systemctl enable bannerlord
sudo systemctl start bannerlord
Логи — через journalctl -u bannerlord -f. Не забудьте про перегенерацию токена раз в три месяца: без этого шага юнит однажды перестанет стартовать, а в логе будет просто отказ авторизации, который легко принять за проблему с конфигом или портами — как поставите себе напоминание, решайте сами (календарь, cron-письмо, что угодно), но не полагайтесь на память.
Если параллельно держите ещё серверы для друзей — процесс установки через SteamCMD и логика systemd-юнита у большинства многопользовательских тайтлов из каталога MAATRIX GAMES похожа, например у Rust или у Squad — разница в основном в параметрах запуска и портах.
Поднять сервер Mount & Blade II: Bannerlord за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Можно ли обойтись без токена и хостить анонимно?
Нет, TaleWorlds прямо не поддерживает анонимный хостинг — токен обязателен, генерируется командой customserver.gettoken из клиента и привязан к вашему Steam-аккаунту.
Почему сервер не виден в браузере серверов клиента?
Чаще всего — не проброшен UDP-порт наружу, либо в конфиге не выполнена start_game/start_game_and_mission. Проверьте оба пункта по порядку, обычно причина в одном из них.
Можно ли менять режим игры (Captain/Skirmish/TDM) без переустановки сервера?
Да, но не на лету одной командой — держите отдельный ds_config_*.txt под каждый режим и перезапускайте сервер с нужным файлом через /dedicatedcustomserverconfigfile.
Нужен ли отдельный Steam-аккаунт с купленной игрой для сервера?
Файлы сервера скачиваются анонимно, но для генерации токена нужен аккаунт с Bannerlord — на нём же должен быть куплен мультиплеер, иначе консольная команда customserver.gettoken не сработает.
Что делать, если сервер падает сразу после старта без ошибки?
Проверьте лог по пути из /LogOutputPath — обычно там честно написана причина: просроченный токен, битый конфиг (незарегистрированная карта через add_map_to_usable_maps) или занятый порт.