Valheim Руководство

Запуск сервера Valheim на Ubuntu без GUI: скрипты автозапуска, crossplay и обновление SteamCMD

Запуск выделенного сервера Valheim на Ubuntu Linux без GUI: установка зависимостей и SteamCMD (896660), порты UDP 2456:2457, поддержка crossplay для Xbox и юнит systemd.

Запуск сервера Valheim на Ubuntu без GUI: скрипты автозапуска, crossplay и обновление SteamCMD

Выделенный сервер Valheim на чистой серверной операционной системе Ubuntu Linux без графического окружения (headless) — наилучший выбор для стабильного кооперативного выживания викингов. Серверный бинарный файл Unity потребляет минимум ресурсов, позволяя полностью выделить ядра процессора и память под обработку физики построек, расчёт симуляции погоды и синхронизацию сетевых сущностей zDO.

В этом подробном руководстве мы разберём установку runtime-библиотек и SteamCMD на Ubuntu 22.04/24.04, загрузку выделенного сервера (AppID 896660), проброс UDP-портов для кроссплея с консолями Xbox и настройку надёжной службы systemd с безопасным сохранением мира при завершении работы.

Установка системных зависимостей и консольного клиента SteamCMD#

Бинарный файл valheim_server.x86_64 построен на движке Unity и использует системные библиотеки для работы со звуковым стеком и атомарными операциями, даже работая без графической оболочки.

Установите необходимые пакеты через системный менеджер APT:

bash
sudo apt update && sudo apt install -y libatomic1 libpulse-dev libgl1-mesa-glx steamcmd curl

Создайте отдельного пользователя steam, от имени которого будет производиться загрузка и выполнение сервера:

bash
sudo useradd -r -m -d /home/steam -s /bin/bash steam && sudo -u steam steamcmd +force_install_dir /home/steam/valheim_server +login anonymous +app_update 896660 validate +quit

Команда загрузит выделенный сервер Valheim (Steam AppID 896660) в каталог /home/steam/valheim_server и проверит целостность всех исполняемых файлов.

Настройка сетевых портов и фаервола UFW#

Сетевой движок Valheim требует открытия диапазона из двух последовательных портов UDP:

  • Порт 2456/udp — основной игровой порт для обмена данными между клиентом и сервером.
  • Порт 2457/udp — порт запросов Steam Master Server Query.

Откройте диапазон портов в сетевом фильтре Ubuntu:

bash
sudo ufw allow 2456:2457/udp

Если вы хотите развернуть оптимизированный сервер викингов без ручной работы в терминале, специализированный хостинг серверов Valheim обеспечивает автоматическое обновление через SteamCMD при выходе патчей, автоматические бэкапы мира и веб-консоль управления.

Создание юнита systemd с поддержкой Crossplay#

При настройке службы systemd необходимо учесть три критических параметра:

  1. Environment="LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH" — подключение нативных библиотек Steamworks.
  2. -crossplay — флаг активации сетевого бэкенда PlayFab, необходимый для подключения игроков с консолей Xbox One и Xbox Series X/S.
  3. ExecStop=/bin/kill -s INT $MAINPID и TimeoutStopSec=60 — отправка сигнала SIGINT, который заставляет сервер выполнить экстренное сохранение мира на диск перед завершением процесса, предотвращая потерю построек.

Создайте файл /etc/systemd/system/valheim.service:

ini
[Unit]
Description=Valheim Dedicated Headless Server
After=network.target

[Service]
Type=simple
User=steam
Group=steam
WorkingDirectory=/home/steam/valheim_server
Environment="LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH"
ExecStart=/home/steam/valheim_server/valheim_server.x86_64 -name "MyValheimServer" -port 2456 -world "Dedicated" -password "SecretPassword123" -public 1 -crossplay
ExecStop=/bin/kill -s INT $MAINPID
Restart=on-failure
RestartSec=15s
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target

Зарегистрируйте созданный юнит, включите его в автозагрузку системы и запустите сервер:

bash
sudo systemctl daemon-reload && sudo systemctl enable --now valheim && sudo systemctl status valheim

Проверить генерацию мира и появление сервера в глобальном лобби можно с помощью команды просмотра журналов journalctl -u valheim -f. При успешном старте в логе отобразится строка Game server connected и шестнадцатизначный код подключения (Join Code).

Источники#