Выделенный сервер 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:
sudo apt update && sudo apt install -y libatomic1 libpulse-dev libgl1-mesa-glx steamcmd curl
Создайте отдельного пользователя steam, от имени которого будет производиться загрузка и выполнение сервера:
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:
sudo ufw allow 2456:2457/udp
Если вы хотите развернуть оптимизированный сервер викингов без ручной работы в терминале, специализированный хостинг серверов Valheim обеспечивает автоматическое обновление через SteamCMD при выходе патчей, автоматические бэкапы мира и веб-консоль управления.
Создание юнита systemd с поддержкой Crossplay#
При настройке службы systemd необходимо учесть три критических параметра:
Environment="LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH"— подключение нативных библиотек Steamworks.-crossplay— флаг активации сетевого бэкенда PlayFab, необходимый для подключения игроков с консолей Xbox One и Xbox Series X/S.ExecStop=/bin/kill -s INT $MAINPIDиTimeoutStopSec=60— отправка сигнала SIGINT, который заставляет сервер выполнить экстренное сохранение мира на диск перед завершением процесса, предотвращая потерю построек.
Создайте файл /etc/systemd/system/valheim.service:
[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
Зарегистрируйте созданный юнит, включите его в автозагрузку системы и запустите сервер:
sudo systemctl daemon-reload && sudo systemctl enable --now valheim && sudo systemctl status valheim
Проверить генерацию мира и появление сервера в глобальном лобби можно с помощью команды просмотра журналов journalctl -u valheim -f. При успешном старте в логе отобразится строка Game server connected и шестнадцатизначный код подключения (Join Code).




