Выделенный сервер Valheim решает главную проблему совместной игры: мир доступен 24/7, а не только пока хост сидит за компьютером. Друзья заходят в любое время, прогресс общий, а пинг стабильный, потому что сервер работает в дата-центре, а не на домашнем ноутбуке через Wi-Fi. В этой инструкции разберём, как поднять Valheim-сервер на VPS с Ubuntu 24.04: установим SteamCMD, скачаем серверную часть (приложение 896660), напишем скрипт запуска с параметрами -name, -world и -password, откроем порты 2456–2458 UDP и настроим автозапуск через systemd. Весь процесс занимает около 30 минут, навыков Linux нужен минимум — достаточно уметь копировать команды в терминал.
Требования: какой VPS нужен для сервера Valheim
Valheim написан на Unity, и его серверная часть заметно прожорливее, чем кажется по «мультяшной» картинке. Основная нагрузка ложится на одно-два ядра CPU (симуляция мира плохо параллелится) и на оперативную память: чем больше исследована карта и чем масштабнее постройки, тем больше объектов держит в памяти сервер.
- CPU: минимум 2 ядра, важна производительность на ядро. На слабом процессоре при активных боях и большом количестве построек мир начинает «тормозить» для всех игроков сразу.
- RAM: свежий мир — 2–3 ГБ, обжитый мир на 5–10 игроков — 4–6 ГБ. С запасом под ОС и обновления нужен сервер с 8–16 ГБ.
- Диск: сам сервер занимает около 2 ГБ, мир — сотни мегабайт, но быстрый диск ускоряет сохранения (мир пишется каждые 30 минут). NVMe здесь ощутимо приятнее HDD: автосохранение не вызывает фриз.
- Сеть: Valheim передаёт немного данных (до 1–2 Мбит/с на игрока), канала 100 Мбит/с хватает с огромным запасом. Важнее стабильность и низкий пинг.
Практичный вариант — тариф Pro у Cheap-Host за 750 ₽/мес: 12 vCPU, 16 ГБ RAM, 128 ГБ NVMe, безлимитный трафик и выделенный IPv4, без которого игровой сервер просто не примет входящие подключения. KVM-виртуализация означает, что ресурсы выделены вам честно — сосед по ноде не «съест» ваш CPU в разгар рейда на босса. Если играете вдвоём-втроём и мир небольшой, для старта хватит и тарифа Start (6 vCPU, 8 ГБ RAM, 450 ₽/мес) — апгрейд позже делается без потери данных. Подробный расчёт по разным играм есть в статье «Сколько ресурсов нужно игровому серверу».
Шаг 1. Подготовка сервера и отдельный пользователь
После заказа VPS (у Cheap-Host сервер выдаётся за 45–60 секунд вместе с IP и SSH-доступом) подключаемся по SSH и обновляем систему:
ssh root@ВАШ_IP
apt update && apt upgrade -y
Игровой сервер не должен работать от root — это базовая гигиена безопасности. Создаём отдельного пользователя:
adduser --disabled-password --gecos "" valheim
Если вы настраиваете VPS впервые, пройдитесь по чек-листу из статьи «Первые 10 шагов после покупки VPS» — SSH-ключи, файрвол и fail2ban займут ещё 15 минут и избавят от большинства проблем.
Шаг 2. Установка SteamCMD
SteamCMD — консольный клиент Steam, через который скачиваются серверные части игр. Он 32-битный, поэтому сначала добавляем архитектуру i386 и репозиторий multiverse:
dpkg --add-architecture i386
add-apt-repository multiverse -y
apt update
apt install -y steamcmd
Во время установки нужно принять лицензионное соглашение Steam. Также поставим библиотеку, которая понадобится серверу Valheim, и утилиты на будущее:
apt install -y libatomic1 libpulse-dev libpulse0
Шаг 3. Загрузка сервера Valheim (app 896660)
Переключаемся на пользователя valheim и скачиваем Valheim Dedicated Server. ID приложения в Steam — 896660, вход анонимный, покупать игру для сервера не нужно:
su - valheim
steamcmd +@sSteamCmdForcePlatformType linux \
+force_install_dir /home/valheim/server \
+login anonymous \
+app_update 896660 validate \
+quit
Загрузка занимает пару минут — дистрибутив весит около 2 ГБ, и на NVMe-диске распаковка проходит быстро. Этой же командой сервер в будущем обновляется: после каждого патча Valheim версии клиента и сервера должны совпадать, иначе игроки не смогут подключиться.
Шаг 4. Скрипт запуска: -name, -world и -password
В каталоге сервера уже лежит пример start_server.sh. Создадим свой рабочий вариант:
cat > /home/valheim/server/start_valheim.sh << 'EOF'
#!/bin/bash
export templdpath=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
export SteamAppId=892970
cd /home/valheim/server
./valheim_server.x86_64 \
-nographics -batchmode \
-name "Midgard" \
-port 2456 \
-world "Midgard" \
-password "секретный_пароль" \
-public 1 \
-crossplay
export LD_LIBRARY_PATH=$templdpath
EOF
chmod +x /home/valheim/server/start_valheim.sh
Что означают параметры:
-name— имя сервера в списке серверов (не имя мира, они могут отличаться);-world— имя мира: если файлов мира с таким именем нет, сервер сгенерирует новый;-password— пароль подключения, минимум 5 символов и он не должен входить в имя сервера, иначе сервер не запустится;-port 2456— игровой порт (сервер дополнительно займёт порт+1 под query);-public 1— показывать сервер в общем списке; поставьте0, чтобы заходить только по IP;-crossplay— включает кроссплатформенную игру (Xbox, Game Pass); если все играют в Steam-версию, флаг можно убрать — без него соединение идёт напрямую и пинг обычно ниже.
Обратите внимание на SteamAppId=892970 — это ID клиентской игры, он нужен серверному процессу для корректной работы со Steam; сам сервер мы скачивали как app 896660.
Шаг 5. Открываем порты 2456–2458 UDP
Valheim использует UDP-порты 2456–2458: 2456 — игровой трафик, 2457 — query-порт для списка серверов Steam, 2458 — резервный. Возвращаемся в сессию root и настраиваем UFW:
ufw allow OpenSSH
ufw allow 2456:2458/udp
ufw enable
ufw status
Именно закрытые UDP-порты — причина №1, почему «сервер запущен, но никто не может зайти». Если вы меняли игровой порт через -port, открывайте соответствующий диапазон. Про тонкую настройку файрвола есть отдельная статья — «Настройка файрвола UFW на Ubuntu».
Шаг 6. Автозапуск через systemd
Чтобы сервер переживал перезагрузки VPS и сам поднимался после сбоев, оформим его как службу systemd. От root создаём unit-файл:
cat > /etc/systemd/system/valheim.service << 'EOF'
[Unit]
Description=Valheim Dedicated Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=valheim
WorkingDirectory=/home/valheim/server
ExecStart=/home/valheim/server/start_valheim.sh
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now valheim
Важный момент — KillSignal=SIGINT: по этому сигналу сервер корректно сохраняет мир перед остановкой. Проверяем состояние и смотрим логи:
systemctl status valheim
journalctl -u valheim -f
Когда в логе появится строка Game server connected, сервер готов принимать игроков. Первый запуск с генерацией мира занимает 1–3 минуты.
Подключение к серверу и перенос существующего мира
В игре: Начать игру → выбрать персонажа → Присоединиться к игре → Присоединиться по IP — и вводите ВАШ_IP:2456. Если сервер публичный (-public 1), он появится в списке сообщества в течение нескольких минут — ищите по имени из параметра -name.
Чтобы перенести мир, в который вы уже играли локально, скопируйте его файлы на сервер. Миры лежат в worlds_local:
- Windows:
C:\Users\ИМЯ\AppData\LocalLow\IronGate\Valheim\worlds_local - Сервер Linux:
/home/valheim/.config/unity3d/IronGate/Valheim/worlds_local
Нужны два файла — ИмяМира.db и ИмяМира.fwl. Скопируйте их, например, через scp, укажите это имя в -world и перезапустите службу:
scp Midgard.db Midgard.fwl valheim@ВАШ_IP:/home/valheim/.config/unity3d/IronGate/Valheim/worlds_local/
systemctl restart valheim
Бэкапы мира и обновление сервера
Мир Valheim — это сотни часов прогресса в двух файлах, и потерять его из-за неудачного обновления обидно. Простейший бэкап по расписанию через cron (от пользователя valheim, crontab -e):
0 */6 * * * tar -czf /home/valheim/backups/world_$(date +\%F_\%H%M).tar.gz -C /home/valheim/.config/unity3d/IronGate/Valheim worlds_local
Каталог /home/valheim/backups создайте заранее и периодически вычищайте старые архивы. Хорошая практика — выгружать копии за пределы VPS; как построить полноценную стратегию, описано в статье «Резервное копирование VPS: стратегия 3-2-1».
Обновление сервера после патча игры:
systemctl stop valheim
su - valheim -c 'steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir /home/valheim/server +login anonymous +app_update 896660 validate +quit'
systemctl start valheim
FAQ
Сколько оперативной памяти нужно серверу Valheim?
Свежий мир занимает 2–3 ГБ RAM, но по мере исследования карты и строительства потребление растёт до 4–6 ГБ. Для стабильной игры компанией до 10 человек берите сервер минимум с 8 ГБ, комфортно — 16 ГБ.
Какие порты нужно открыть для сервера Valheim?
Порты 2456–2458 UDP: 2456 — игровой, 2457 — query-порт Steam, 2458 — резервный. Если меняете игровой порт параметром -port, открывайте новый порт и порт+1.
Почему сервер не виден в списке серверов?
Чаще всего закрыт UDP-порт 2457 или пароль короче 5 символов — во втором случае сервер вообще не стартует, смотрите journalctl -u valheim. Самый надёжный способ подключения — напрямую по IP:2456.
Можно ли перенести локальный мир на выделенный сервер?
Да: скопируйте файлы .db и .fwl из папки worlds_local на ПК в каталог worlds_local на сервере и укажите имя мира в параметре -world.
Сколько стоит сервер для Valheim?
VPS с 16 ГБ RAM и NVMe, которого хватает компании до 10 игроков, стоит от 750 ₽/мес — например, тариф Pro у Cheap-Host.
Вывод
Выделенный сервер Valheim на VPS — это 30 минут настройки по инструкции: SteamCMD, app 896660, скрипт запуска с -name/-world/-password, порты 2456–2458 UDP и служба systemd. Взамен вы получаете мир, который живёт круглосуточно, не зависит от компьютера хоста и автоматически бэкапится. Если для этой задачи вам нужен сервер — у Cheap-Host тариф Pro от 750 ₽/мес: 12 vCPU, 16 ГБ RAM, NVMe, KVM, безлимитный трафик и выдача сервера за минуту. Заказать можно на cheap-host.onl, а если сомневаетесь в выборе конфигурации — поддержка 24/7 подскажет без шаблонных ответов.