Как поднять сервер Necesse: пошаговая инструкция
Necesse затягивает именно в кооперативе: вместе рыть подземелья, отбивать нашествия и достраивать город с друзьями куда веселее, чем в одиночку. Но если сервер держится на компьютере одного из игроков — рано или поздно кто-то закрывает игру не вовремя, и весь отряд теряет прогресс сессии. Решение стандартное: dedicated-сервер на VPS, который живёт отдельно от чьего-либо ПК. Ниже — рабочая инструкция от установки до автозапуска, без теории и домыслов.
Содержание
Системные требования
Necesse написана на Java и по железу не самая требовательная игра среди современных survival-песочниц, но и не игрушечная — потребление растёт вместе с исследованной картой.
Стартовый набор, с которым сервер уверенно тянет 2-4 игроков на свежем мире:
- RAM: от 2 ГБ — этого хватает для небольшой группы и молодого мира. Как только карта разрастается (открыты далёкие острова, зачищены подземелья, активно фармят несколько игроков одновременно), потребление памяти растёт вместе с числом загруженных чанков — для 6-10 игроков на обжитом мире по опыту хостеров стоит закладывать 4-8 ГБ с запасом.
- CPU: 2 ядра достаточно для старта, лишнее ядро не будет лишним при частых рейдах на несколько игроков сразу.
- Диск: пары гигабайт под саму игру и сохранения хватит с запасом, плюс место под бэкапы, если храните их локально.
- ОС: сервер официально работает и на Windows, и на Linux — Necesse кроссплатформенна и распространяется с собственным Java-рантаймом, отдельно ставить JRE обычно не нужно. Если на конкретном дистрибутиве бандл капризничает, спасает системная Java 17+.
- Сеть: один открытый порт, по умолчанию 14159/UDP.
Установка через SteamCMD
Dedicated-сервер Necesse распространяется через Steam отдельным приложением — не путайте с ID клиентской игры. У серверной версии свой App ID: 1169370.
Ставим SteamCMD на Ubuntu/Debian:
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmd
Заводим отдельного пользователя под сервер — так удобнее с правами и логами:
sudo useradd -m -s /bin/bash necserver
sudo su - necserver
Скачиваем и устанавливаем сам сервер:
steamcmd +force_install_dir ~/necesse +login anonymous +app_update 1169370 validate +quit
Логин anonymous — привязывать личный Steam-аккаунт не требуется, серверная сборка бесплатна и раздаётся всем. После установки в ~/necesse появятся исполняемые файлы, включая StartServer.sh и StartServer-nogui.sh (headless-версия без консольного интерфейса — она и нужна на VPS).
Поднять сервер Necesse за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверКонфигурация: server.cfg и параметры запуска
Первый запуск без готового мира создаст конфиг по умолчанию и предложит сгенерировать сохранение. Проще всего сразу запустить с флагом -world, чтобы задать имя будущего мира:
cd ~/necesse
./StartServer-nogui.sh -world friends_world
При первом старте, если мира с таким именем ещё нет, сервер сгенерирует новый. Если сохранение с этим именем уже существует — загрузит его, а не создаст заново.
Основной конфиг — server.cfg, на Linux лежит в ~/.config/Necesse/cfg/server.cfg, на Windows — в %AppData%\Roaming\Necesse\cfg\server.cfg. Важный нюанс: сервер перезаписывает этот файл при старте, поэтому редактировать его нужно при остановленном сервере.
Ключевые поля внутри блока SERVER = { ... }:
| Поле | За что отвечает | Пример |
|---|---|---|
port | Игровой порт | 14159 |
slots | Лимит игроков, диапазон 1-250 | 10 |
password | Пароль входа, пусто — без пароля | "" |
MOTD | Сообщение дня в списке серверов | "Добро пожаловать!" |
maxClientLatencySeconds | Порог допустимой задержки клиента | 30 |
pauseWhenEmpty | Ставить мир на паузу без игроков | true |
giveClientsPower | Клиентская валидация попаданий | true |
logging | Вести файлы логов | true |
zipSaves | Сжимать сохранения | true |
language | Язык сервера, двухбуквенный код | en |
Из полезных флагов запуска, кроме -world, стоит знать -owner <SteamName> — автоматически выдаёт правами владельца игроку с указанным именем при подключении, без ручной раздачи прав через консоль, и -localdir — заставляет сервер держать конфиги и сохранения рядом с исполняемым файлом, а не в системной пользовательской папке (удобно, если на VPS несколько независимых инстансов сервера под разными пользователями).
Проброс порта и сетевые настройки
На VPS с белым IP (стандартный вариант аренды выделенного сервера) пробрасывать порты через роутер не нужно — эта операция актуальна только для домашних серверов за NAT.
На самой машине откройте порт в файрволе. Для UFW на Ubuntu:
sudo ufw allow 14159/udp
sudo ufw reload
Если хостинг использует облачный файрвол поверх системного (security group в панели управления), откройте тот же порт и там — это частая причина, по которой в UFW правило вроде бы есть, а игроки всё равно получают таймаут при подключении.
Игроку для подключения нужны публичный IP сервера и порт — вводятся в игровом меню Multiplayer → Join by IP в формате IP:PORT. Уточнить публичный IP можно любым сервисом вроде whatismyipaddress.com — приватные адреса вида 192.168.x.x для внешнего подключения не годятся.
Автозапуск через systemd
Запуск через SSH-сессию неудобен для постоянного сервера: закрыли терминал без nohup или screen — сервер упал вместе с сессией. Правильный вариант — systemd-юнит, который держит процесс живым и поднимает его заново после перезагрузки VPS или сбоя.
Создаём /etc/systemd/system/necesse.service:
[Unit]
Description=Necesse Dedicated Server
After=network.target
[Service]
Type=simple
User=necserver
WorkingDirectory=/home/necserver/necesse
ExecStart=/home/necserver/necesse/StartServer-nogui.sh -world friends_world -owner Telim
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Применяем и включаем:
sudo systemctl daemon-reload
sudo systemctl enable necesse
sudo systemctl start necesse
Проверить статус и логи:
sudo systemctl status necesse
journalctl -u necesse -f
Теперь сервер переживёт перезагрузку хоста и сам перезапустится при аварийном завершении процесса — например, если памяти вдруг не хватило под резко разросшийся мир.
Обновление и бэкапы мира
Necesse получает обновления регулярно, и серверную часть нужно обновлять отдельно от клиентов — если версии разойдутся, игроки просто не смогут подключиться.
Обновление через SteamCMD:
sudo systemctl stop necesse
steamcmd +force_install_dir /home/necserver/necesse +login anonymous +app_update 1169370 validate +quit
sudo systemctl start necesse
Сохранения миров хранятся в ~/.config/Necesse/saves/ в виде .zip-архивов (имя файла = имя мира, заданное через -world), внутри каждого — свой worldSettings.cfg с настройками конкретной карты, отдельными от общего server.cfg. Перед каждым обновлением стоит бэкапить:
mkdir -p ~/backups
tar -czf ~/backups/necesse-$(date +%Y%m%d-%H%M).tar.gz -C /home/necserver/.config/Necesse saves
Повесьте эту команду на cron раз в день — потерять недельный прогресс из-за неудачного патча куда обиднее, чем потратить пару минут на настройку бэкапа.
Похожая логика установки через SteamCMD и systemd пригодится и для других кооперативных песочниц — например, для Core Keeper или Terraria, если у вашей компании несколько любимых игр и захочется держать пару серверов параллельно. А если после недель в Necesse захочется сменить обстановку на более суровое выживание — тот же принцип разворачивания сработает и для Valheim.
Поднять сервер Necesse за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Сколько игроков поддерживает сервер Necesse?
Лимит задаётся полем slots в server.cfg, технический максимум — 250, но реальный потолок упирается в RAM и CPU вашей VPS: для 10+ игроков закладывайте запас памяти, а не гонитесь за цифрой в конфиге.
Нужен ли отдельный Steam-аккаунт для сервера?
Нет, установка идёт через +login anonymous, привязка к личному аккаунту не требуется.
Можно ли сменить порт сервера после запуска?
Да, меняется полем port в server.cfg при остановленном сервере — не забудьте открыть новый порт в файрволе и сообщить игрокам новый адрес подключения.
Что делать, если игроки видят «version mismatch»?
Версии клиента и сервера разошлись — обновите серверную часть через app_update и убедитесь, что игроки играют на актуальном клиенте Steam.
Как проверить, что сервер реально слушает порт?
Выполните ss -tulnp | grep 14159 на самой VPS — если процесс слушает порт, строка появится в выводе; если нет — проблема в самом запуске, а не в сети.