Установка сервера Valheim
Как поднять выделенный сервер Valheim через SteamCMD и запустить его через systemd.
Время: 15 мин · Сложность: ★★☆☆☆
Подходит: ✓ Ubuntu 22.04 · ✓ Debian 12
Краткое описание
Дедикейтед-сервер Valheim, как и большинство серверов на движке Unity, распространяется через SteamCMD отдельным приложением.
Когда пригодится
- Хотите постоянный мир для игры с друзьями без ограничения по времени сессии
- Текущий хост игры (у кого-то на компьютере) отключается, когда человек выходит из игры
- Нужен мир, который не завязан на то, что кто-то из группы держит игру открытой
Что понадобится
- VPS от 2 ГБ RAM (для 5–10 игроков достаточно, под большие миры с полной картой закладывайте 4 ГБ)
- Доступ по SSH — см. Подключение по SSH
- Открытые порты
2456-2458/udp
Пошаговая инструкция
1. Установите SteamCMD
apt update
apt install -y lib32gcc-s1 curl
useradd -m -s /bin/bash steam
su - steam
mkdir ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
2. Скачайте сервер Valheim
./steamcmd.sh +force_install_dir /home/steam/valheimserver +login anonymous +app_update 896660 validate +quit
3. Запустите сервер вручную для проверки
cd /home/steam/valheimserver
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
./valheim_server.x86_64 -name "Мой сервер" -port 2456 -world "Dedicated" -password "смените_меня" -public 1
-password обязателен и должен быть не короче 5 символов, иначе сервер откажется стартовать. Дождитесь строки Game server connected и остановите Ctrl+C.
4. Заведите systemd-юнит
/etc/systemd/system/valheim.service:
[Unit]
Description=Valheim Dedicated Server
After=network.target
[Service]
User=steam
WorkingDirectory=/home/steam/valheimserver
Environment=LD_LIBRARY_PATH=/home/steam/valheimserver/linux64
Environment=SteamAppId=892970
ExecStart=/home/steam/valheimserver/valheim_server.x86_64 -name "Мой сервер" -port 2456 -world "Dedicated" -password "смените_меня" -public 1 -crossplay
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
SteamAppId=892970 (id клиента игры) нужен серверу, чтобы правильно инициализировать некоторые библиотеки — без него возможны падения при старте.
systemctl daemon-reload
systemctl enable --now valheim
5. Откройте порты
Серверу нужны три последовательных UDP-порта, начиная с указанного в -port:
ufw allow 2456:2458/udp
Подробнее — Настройка UFW.
Проверка результата
systemctl status valheim—active (running)- В логе видна строка
Game server connected:journalctl -u valheim -f - При
-public 1сервер находится в списке серверов внутри игры по имени; при-public 0подключение только напрямую по IP
Возможные ошибки
Сервер падает сразу после запуска без вывода в консоль — почти всегда не выставлен LD_LIBRARY_PATH (см. шаг 3/4) или не хватает пакета lib32gcc-s1.
Failed to start Steam client. Continuing without it — это предупреждение, не ошибка, сервер продолжает работать нормально. Игнорируйте.
Игроки видят «Connection error 4: Failed to connect» — версия сервера отстаёт от версии клиента. Обновите сервер тем же способом, что и в шаге 2, повторив app_update.
Мир не сохраняется между рестартами — проверьте, что параметр -world называется одинаково при каждом запуске и что процесс завершается штатно (systemctl stop, а не kill -9) — так гарантируется сохранение перед выходом.
FAQ
Как обновить сервер?
Остановите юнит, повторите команду app_update из шага 2, запустите юнит снова:
systemctl stop valheim
/home/steam/steamcmd/steamcmd.sh +force_install_dir /home/steam/valheimserver +login anonymous +app_update 896660 validate +quit
systemctl start valheim
Как сделать бэкап мира?
Файлы мира лежат в ~/.config/unity3d/IronGate/Valheim/worlds_local/. Достаточно архивировать эту папку по cron.
Можно ли поставить моды (BepInEx)?
Да, устанавливается поверх той же папки сервера — распакуйте BepInEx в /home/steam/valheimserver и добавьте doorstop_libs в LD_LIBRARY_PATH юнита. Сама механика запуска не меняется.