Как поднять сервер Barotrauma: пошаговая инструкция
Затопило отсек, реактор заглох, а половина команды всё ещё разбирается с интерфейсом — знакомая картина для тех, кто пробовал гонять Barotrauma по локалке через Hamachi. Рано или поздно упираешься в лаги, разрывы и полное отсутствие возможности оставить сервер работать без своего компьютера. Решение простое: свой dedicated-сервер на VPS, который живёт 24/7 и не зависит от того, кто из игроков сейчас онлайн. Разберём весь путь — от чистой машины до работающего сервера с автозапуском.
Содержание
Системные требования и что понадобится
Barotrauma — не самая прожорливая игра для сервера, но и не игрушка на 512 МБ. Симуляция физики воды, электричества и AI существ работает даже без визуального рендера, так что процессору и памяти есть чем заняться.
Ориентир по железу:
- RAM: от 3 ГБ — этого хватит на небольшой экипаж (4-6 игроков) без модов. С крупными сборками модов и подсабмаринами закладывайте запас в 1-2 ГБ сверху.
- CPU: 2 ядра как минимум, желательно с хорошей однопоточной производительностью — симуляция подлодки в основном упирается в один поток.
- Диск: 10-15 ГБ под сам сервер, моды из Steam Workshop и логи.
- ОС: Linux (Ubuntu/Debian) — самый предсказуемый вариант для dedicated-сервера, но бинарник Barotrauma Dedicated Server есть и под Windows.
Понадобится доступ по SSH (root или sudo-пользователь), установленный curl или wget, и открытые порты у провайдера — если это VPS с файрволом на уровне панели, порт придётся открыть отдельно (см. ниже раздел про проброс портов).
Готовые сборки под Barotrauma на VPS с уже открытыми портами и панелью управления избавляют от возни с зависимостями SteamCMD — но если хочется руками, дальше пошагово. Сам процесс установки через SteamCMD у большинства Steam-игр похож — если параллельно поднимаете ещё и сервер Rust, шаги с зависимостями будут почти идентичны.
Установка сервера через SteamCMD
Barotrauma распространяется через Steam, поэтому сервер ставится через SteamCMD — консольный клиент Steam для загрузки контента без графического интерфейса.
Сначала ставим зависимости и сам SteamCMD (пример для Ubuntu/Debian):
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl unzip
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" -o steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
Дальше запускаем SteamCMD и через него скачиваем Barotrauma Dedicated Server (Steam App ID 1026340):
./steamcmd.sh +force_install_dir /home/steam/barotrauma +login anonymous +app_update 1026340 validate +quit
Barotrauma Dedicated Server доступен анонимно, отдельный аккаунт Steam для него не нужен — это касается именно серверной части, не путайте с самой игрой, которую покупают в Steam для клиента. Загрузка обычно занимает несколько минут в зависимости от канала провайдера — точное время зависит от вашего VPS и текущей нагрузки на CDN Steam, так что ориентируйтесь по прогресс-бару, а не по чужим цифрам.
После завершения app_update в папке /home/steam/barotrauma появится исполняемый файл сервера и сопутствующие библиотеки.
Поднять сервер Barotrauma за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверПервый запуск и генерация конфигов
Прежде чем тонко настраивать сервер, дайте ему стартовать один раз — это создаст базовый набор конфигурационных файлов.
cd /home/steam/barotrauma
chmod +x ./DedicatedServer
./DedicatedServer
При первом запуске сервер спросит имя (если не задано заранее) и создаст рядом с исполняемым файлом serversettings.xml, а также файлы разрешений и списка модов. Дайте процессу подняться до сообщения о том, что сервер слушает порт, затем остановите его комбинацией Ctrl+C — конфиги уже сохранены, дальше редактируем их напрямую, без интерактивного мастера.
Если сервер падает сразу после старта — почти всегда это нехватка библиотек 32-бит (шаг lib32gcc-s1/lib32stdc++6 из установки) или запуск не из той директории, где лежат ассеты. Проверьте лог в консоли: там обычно прямо указано, какого файла или библиотеки не хватает.
Настройка serversettings.xml
Это основной конфиг, где задаётся всё поведение сервера. Открываем его любым текстовым редактором:
nano serversettings.xml
Ключевые параметры, которые обычно правят в первую очередь:
<ServerSettings
ServerName="Мой сервер Barotrauma"
ServerPort="27015"
QueryPort="27016"
MaxPlayers="8"
Password=""
GameStartWhenFull="false"
AutoRestart="true"
RandomizeSeed="true"
/>
- ServerName — имя, которое видно в списке серверов.
- ServerPort — игровой порт (по умолчанию 27015, при необходимости меняйте на свой).
- QueryPort — порт для запросов Steam-мастер-сервера, обычно на единицу больше игрового.
- MaxPlayers — лимит игроков в экипаже.
- Password — пароль на вход, оставьте пустым для открытого сервера.
- AutoRestart — автоматический рестарт раунда, когда все игроки готовы.
Выбор режима игры — Sandbox (свободная песочница без сюжета) или Campaign (кампания с прогрессом и деньгами экипажа) — задаётся отдельно при создании сессии через консоль сервера или в файле сохранения кампании, а не единственным флагом в serversettings.xml. Проще всего запустить сервер, подключиться клиентом с правами администратора и выбрать режим через игровое меню — сервер сам сохранит выбор для следующих запусков.
Обратите внимание: структура serversettings.xml менялась между крупными обновлениями Barotrauma, так что часть тегов у вас может называться иначе или лежать в отдельном файле рядом (например, настройки модов — в contentpackages.xml). Сверяйтесь с тем, что реально сгенерировалось у вас после первого запуска, а не только с этим примером.
Проброс портов и файрвол
Barotrauma работает через UDP, и если сервер стоит за файрволом или NAT, игроки просто не найдут его в списке или не смогут подключиться напрямую по IP.
На самом VPS (если используется ufw):
sudo ufw allow 27015/udp
sudo ufw allow 27016/udp
sudo ufw reload
Если провайдер даёт отдельную панель управления файрволом (это отдельный слой поверх ОС на многих VPS и хостингах игровых серверов), порты нужно открыть ещё и там — иначе правило ufw внутри системы ничего не даст, трафик срежет раньше. На хостингах с готовыми игровыми шаблонами порты под конкретную игру обычно открываются автоматически при создании сервера — это заметно экономит время по сравнению с ручной настройкой файрвола на голом VPS.
Проверить, что порт реально слушается снаружи, можно с другого компьютера через любой online-сканер портов или командой:
nc -vzu ВАШ_IP 27015
Если экипаж подключается не по прямому IP, а через список серверов Steam — убедитесь, что открыт именно QueryPort, иначе сервер не будет отображаться в браузере серверов, хотя прямое подключение по IP при этом может работать. Логика проброса та же, что и для сервера DayZ — отдельный игровой порт и отдельный порт запросов, оба обязательны.
Автозапуск и работа в фоне (systemd)
Держать SSH-сессию открытой ради того, чтобы сервер не падал — плохая идея. Правильный вариант — systemd-сервис, который поднимет Barotrauma при перезагрузке машины и перезапустит при падении процесса.
Создаём юнит:
sudo nano /etc/systemd/system/barotrauma.service
Содержимое:
[Unit]
Description=Barotrauma Dedicated Server
After=network.target
[Service]
Type=simple
User=steam
WorkingDirectory=/home/steam/barotrauma
ExecStart=/home/steam/barotrauma/DedicatedServer
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Включаем и запускаем:
sudo systemctl daemon-reload
sudo systemctl enable barotrauma
sudo systemctl start barotrauma
Смотреть логи сервера удобно через:
sudo journalctl -u barotrauma -f
Для обновлений сервера при выходе новых версий игры проще всего написать короткий скрипт, который останавливает сервис, гоняет app_update 1026340 validate через SteamCMD и снова стартует сервис — так вы не забудете накатить обновление вручную и не поймаете рассинхрон версий с клиентами, который в Barotrauma обычно жёстко блокирует подключение при несовпадении версии игры. Если уже настраивали автозапуск для сервера Project Zomboid, юнит-файл будет узнаваемым — меняется только путь и команда запуска.
Поднять сервер Barotrauma за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Нужен ли аккаунт Steam для запуска dedicated-сервера?
Нет, Barotrauma Dedicated Server скачивается и запускается анонимно через SteamCMD, отдельная лицензия для сервера не требуется.
Почему сервер не виден в браузере серверов Steam, хотя запущен?
Чаще всего не открыт QueryPort — проверьте, что проброшены оба порта, игровой и query, а не только один из них.
Можно ли поставить моды из Steam Workshop на dedicated-сервер?
Да, через SteamCMD или через клиентскую подписку с последующим копированием файлов модов в папку сервера; список активных модов сервер хранит в отдельном файле контент-пакетов, который нужно синхронизировать между сервером и клиентами.
Что делать, если после обновления игры сервер не пускает старых клиентов?
Это несовпадение версий — Barotrauma жёстко проверяет версию клиента и сервера при подключении, обновите сервер до актуальной версии через SteamCMD (app_update 1026340 validate).
Сколько игроков потянет сервер на 3 ГБ RAM?
Небольшой экипаж без тяжёлых модов и подсабмаринов — это разумный старт для такого объёма памяти, но с ростом числа игроков и объёма модов запас памяти стоит увеличивать заранее, а не после первых лагов.