MAATRIX GAMES / Блог / Как поднять сервер Sons of the Forest: пошаговая инструкция

Как поднять сервер Sons of the Forest: пошаговая инструкция

MAATRIX GAMES

Официальный dedicated-сервер Sons of the Forest вышел не сразу после релиза игры, и первое время выживание в мультиплеере держалось на костылях вроде Steam-инвайтов и проброса портов вручную через хост-клиента. Сейчас всё проще: Endnight Games выложили нормальный headless-сервер через SteamCMD, и поднять его на VPS можно за 20-30 минут, если знать, куда смотреть. Ниже — рабочий процесс от установки до автозапуска, с граблями, на которые я лично успел наступить.

Системные требования

Sons of the Forest — не самая лёгкая игра для dedicated-сервера, особенно с открытым миром и физикой разрушений. Минимум, с которым сервер вообще стартует и не падает под нагрузкой:

  • RAM: от 4 ГБ для игры на 2-4 игрока, но на практике под 6-8 игроков с активной стройкой и вырубкой леса лучше закладывать 6-8 ГБ — движок съедает память с ростом построек и убитых NPC в мире.
  • CPU: 2+ ядра, желательно с приличной частотой на поток — игра не особо параллелится, узкое место чаще в single-core производительности, а не в количестве ядер.
  • Диск: 15-20 ГБ под сам сервер, клиентские файлы SteamCMD и сохранения. SSD ощутимо ускоряет подгрузку мира при старте.
  • ОС: Windows Server или Linux через Proton/Wine-обвязку (об этом ниже — официально сервер под Linux не поддерживается напрямую).

Если берёте готовый VPS под игровые серверы, ориентируйтесь на тариф от 4 ГБ RAM как на стартовую точку — это соответствует тому, что заявляет сама игра в качестве минимума для сервера.

Установка через SteamCMD

Dedicated-сервер Sons of the Forest распространяется как отдельное Steam-приложение с app id 2465200. Устанавливается он без покупки игры — сервер бесплатный для всех.

Если SteamCMD ещё не стоит на машине, сначала ставим его:

mkdir C:\steamcmd
cd C:\steamcmd
# скачать steamcmd.zip с сайта Valve и распаковать сюда

На Linux (если разворачиваете через Proton, об этом ниже):

mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" -o steamcmd.tar.gz
tar -xvzf steamcmd.tar.gz

Дальше запускаем сам SteamCMD и качаем сервер анонимным логином:

steamcmd.exe +force_install_dir C:\sotf-server +login anonymous +app_update 2465200 validate +quit

Флаг validate в конце обязателен при первой установке — он проверяет целостность файлов и докачивает то, что могло не докачаться. На апдейтах его можно опускать, чтобы не тратить время на пересчёт хешей каждого файла, но раз в несколько крупных патчей игры всё же стоит гонять валидацию — после больших обновлений сервер иногда падает именно из-за недокачанных ресурсов.

Установка занимает от 10 до 25 минут в зависимости от скорости канала — сам билд сервера весит около 10 ГБ.

Поднять сервер Sons of the Forest за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Особенность: сервер официально только под Windows

Важный нюанс, который часто ловит новичков: dedicated-сервер Sons of the Forest — это Windows-приложение (SonsOfTheForestDS.exe). Официальной Linux-сборки нет. Есть два рабочих пути:

  1. Windows VPS — самый предсказуемый вариант. Сервер запускается нативно, без прослоек, меньше шансов словить странный баг с сохранениями или сетью.
  2. Linux + Proton/Wine — работает, но с оговорками. Комьюнити гоняет сервер через Proton (обычно через SteamCMD с +@sSteamCmdForcePlatformType windows и запуском через proton run или обвязку вроде wine). Часть игроков сообщает о стабильной работе, часть — о случайных вылетах при большой нагрузке или после патчей игры. Если для вас критична стабильность 24/7, я бы рекомендовал Windows VPS как более надёжный вариант, особенно для только запущенного сервера, где вы ещё не набили руку на дебаге Proton-специфичных падений.

Дальше в статье пример конфигурации и команд дан под Windows-запуск — это основной и наиболее протестированный путь.

Конфигурация через dedicatedserver.cfg

После установки в папке сервера (C:\sotf-server\, если следовали примеру выше) появляется файл конфигурации dedicatedserver.cfg. Он в формате JSON, несмотря на расширение .cfg. Открываем любым текстовым редактором и правим ключевые поля:

{
  "ServerName": "Мой сервер Sons of the Forest",
  "SaveSlot": 1,
  "MaxPlayers": 4,
  "Password": "supersecret",
  "LanOnly": false,
  "ServerVisible": true,
  "GamePort": 8766,
  "QueryPort": 27016,
  "BlockingPort": 8767,
  "AutoSaveInterval": 60,
  "Perma-Death": false,
  "PlayerDamageMultiplier": 1.0,
  "EnemyDamageMultiplier": 1.0,
  "AllowCrossplay": true
}

Разберём поля, которые реально стоит трогать:

  • ServerName — имя, которое видят игроки в списке серверов.
  • SaveSlot — номер игрового сохранения (слота), с которым работает сервер. Полезно, если хотите вести несколько параллельных миров.
  • MaxPlayers — лимит игроков. Помните про требования к RAM: каждый дополнительный игрок ощутимо добавляет нагрузку.
  • Password — пароль на вход. Оставьте пустым, если хотите публичный сервер (не рекомендую для survival-игры без вайтлиста).
  • GamePort / QueryPort / BlockingPort — сетевые порты, о них подробнее в следующем разделе.
  • AutoSaveInterval — интервал автосохранения в секундах. Значение 60 — разумный компромисс между сохранностью прогресса и нагрузкой на диск при частых сейвах большого мира.
  • Perma-Death — хардкорный режим без возрождения. Ставьте осознанно, это решение на весь мир.

После правки конфига файл нужно сохранить в той же кодировке и структуре JSON — если сломать синтаксис (забыть запятую или скобку), сервер откажется стартовать и в логе будет ошибка парсинга.

Проброс портов: 8766-8767 UDP

Sons of the Forest использует Steam-сетевой стек, и по умолчанию сервер слушает:

  • 8766/UDP — основной игровой порт (GamePort).
  • 8767/UDP — блокирующий порт (BlockingPort), используется для части сетевого взаимодействия Steam.
  • 27016/UDP — порт запроса статуса сервера (QueryPort), нужен, чтобы сервер отображался в списке публичных серверов и отвечал на пинг.

Если сервер стоит на выделенном VPS с белым IP (что обычно и есть у арендованных игровых серверов), отдельно пробрасывать порты через NAT не нужно — трафик и так приходит напрямую на машину. Проброс актуален, если вы поднимаете сервер дома за роутером: тогда в настройках роутера открываем диапазон 8766-8767 UDP и 27016 UDP и направляем их на локальный IP машины с сервером.

Проверить, что порты реально открыты и сервер отвечает снаружи, можно любым онлайн-чекером UDP-портов или командой с другой машины:

Test-NetConnection -ComputerName ВАШ_IP -Port 8766 -InformationLevel Detailed

Учтите, что UDP не всегда честно проверяется такими тулзами (в отличие от TCP, где есть handshake) — самый надёжный способ убедиться, что порты открыты, это зайти на сервер клиентом Sons of the Forest напрямую по IP через меню "Join Game" → "Direct Connect".

Настройка автозапуска

Ручной запуск через SonsOfTheForestDS.exe удобен для отладки, но для боевого сервера нужен автозапуск — чтобы сервер поднимался сам после перезагрузки VPS или падения процесса.

На Windows Server проще всего сделать это через Планировщик заданий (Task Scheduler):

  1. Создаём новую задачу с триггером "При запуске системы".
  2. В качестве действия указываем путь к SonsOfTheForestDS.exe с рабочей директорией, равной папке сервера.
  3. Ставим галочку "Выполнять вне зависимости от того, вошёл ли пользователь в систему".
  4. В настройках задачи включаем "Перезапускать при сбое" с интервалом в 1 минуту, до 3 попыток — это спасает, если сервер вылетит из-за редкого краша движка.

Для тех, кто предпочитает батник и NSSM (Non-Sucking Service Manager) — рабочий вариант превратить сервер в полноценную Windows-службу с автоматическим перезапуском:

nssm install SonsOfTheForestServer "C:\sotf-server\SonsOfTheForestDS.exe"
nssm set SonsOfTheForestServer AppDirectory "C:\sotf-server"
nssm set SonsOfTheForestServer AppExit Default Restart
nssm start SonsOfTheForestServer

Этот путь даёт больше контроля: логи службы, статус через services.msc, управление через nssm stop/start/restart без захода в GUI планировщика.

Особенности сохранения прогресса

Сохранения сервера лежат в профиле пользователя, под которым запущен сервер — обычно это путь вида %appdata%\..\LocalLow\Endnight\SonsOfTheForest\Saves\Server\. Внутри — папки с номерами слотов, которые соответствуют полю SaveSlot из конфига.

Несколько практических моментов:

  • Бэкапьте папку с сейвами регулярно. Sons of the Forest — игра, где потеря прогресса за десятки часов стройки болезненна. Простейший вариант — задача в планировщике, которая раз в сутки архивирует папку сохранений в отдельное место (не на тот же диск, если есть возможность).
  • AutoSaveInterval не панацея. Автосохранение снижает нагрузку в моменте, но сам процесс сохранения на большом освоенном мире может занимать заметное время и на слабом диске подвешивать сервер на секунду-другую — это нормально, паниковать не стоит, если видите в логе паузу при сейве.
  • Смена SaveSlot = новый мир. Если хотите начать заново, не удаляя старый прогресс, просто меняйте номер SaveSlot в конфиге — сервер создаст новую папку сохранения, а старая останется нетронутой.
  • Перенос сейва между серверами делается копированием папки нужного слота в аналогичный путь на новой машине — работает, если версия игры на сервере совпадает или новее, чем версия сохранения.

Поднять сервер Sons of the Forest за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Можно ли играть на сервере с друзьями без Steam-инвайтов?

Да, именно для этого и существует dedicated-сервер — заходите через "Join Game" → "Direct Connect" по IP:порту, приглашения через Steam не нужны.

Сервер не виден в списке серверов, но работает по прямому IP — что не так?

Обычно дело в QueryPort (27016/UDP) — если он закрыт или не пробрасывается, сервер не отвечает на запросы списка, хотя игровой порт 8766 при этом рабочий.

Почему сервер требует так много RAM с ростом мира?

Игра держит в памяти состояние всех построек, срубленных деревьев и убитых NPC в загруженных зонах — чем дольше живёт мир и активнее стройка, тем выше базовое потребление даже без пиковой нагрузки от онлайна игроков.

Работает ли Perma-Death задним числом на уже идущем сейве?

Изменение этого параметра в конфиге применяется к новым смертям после рестарта сервера, но не переписывает уже произошедшие события — если нужен честный хардкорный забег, включайте режим до старта на новом слоте.

Нужно ли останавливать сервер перед бэкапом сейвов?

Крайне желательно — копирование файлов сохранения во время активной записи (например, в момент автосейва) может дать повреждённый архив. Проще всего ставить бэкап-задачу с небольшой задержкой после остановки службы или в окно между сессиями, когда игроков нет.