MAATRIX GAMES / Блог / Как поднять сервер 7 Days to Die: пошаговая инструкция

Как поднять сервер 7 Days to Die: пошаговая инструкция

MAATRIX GAMES

Если вы устали от лагов на публичных серверах или хотите играть с друзьями по своим правилам — без читеров, с нужной частотой орды и любимой картой — единственный нормальный вариант это свой выделенный сервер. Звучит сложнее, чем есть на самом деле: SteamCMD скачает бинарники за пару минут, а всё остальное — это правка одного XML-файла и настройка портов. Разберём процесс от чистого VPS до работающего мира, с граблями, на которые обычно наступают в первый раз.

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

7 Days to Die — игра прожорливая, особенно на больших картах и с модами (например, для оживления игровых механик или расширения крафта). Игровой движок хранит в памяти весь регион вокруг активных игроков плюс постоянно генерирует и кэширует чанки местности, поэтому экономить на RAM не стоит.

Минимальные и комфортные конфигурации:

ИгроковRAMvCPUДискКомментарий
1-46 ГБ220 ГБ SSDминимум для стабильной игры без модов
5-88 ГБ430 ГБ SSDкомфортный запас, можно немного модов
9-1612-16 ГБ4-640 ГБ SSDбольшая карта, активная орда, моды
16+16+ ГБ6+50+ ГБ SSDпубличный сервер, RWG-карта большого размера

Диск обязательно SSD — генерация мира и сохранения региона (RWG-карты весят гигабайты) на HDD ощутимо тормозят, особенно при первом заходе игроков в новый чанк. Из ОС берите Ubuntu 22.04/24.04 LTS или Debian 12 — под них проще всего собрать зависимости SteamCMD.

Устанавливаем сервер через SteamCMD

Подключаемся по SSH и ставим зависимости — без 32-битных библиотек SteamCMD на x64-системе просто не запустится:

sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar

На старых Ubuntu/Debian вместо lib32gcc-s1 может понадобиться lib32gcc1 — смотрите, какой пакет реально есть в репозитории вашей версии.

Создаём отдельного пользователя для сервера — запускать игровые процессы от root не стоит:

sudo useradd -m -s /bin/bash sdtd
sudo su - sdtd

Дальше ставим сам SteamCMD:

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

И скачиваем сам сервер 7 Days to Die (app id 294420 — это именно Dedicated Server, отдельная сборка от клиентской):

./steamcmd.sh +force_install_dir /home/sdtd/7dtd \
  +login anonymous \
  +app_update 294420 validate \
  +quit

Скачивание идёт долго — сборка занимает больше 10 ГБ, так что на слабом канале хостинга закладывайте время. По завершении в /home/sdtd/7dtd появится куча файлов, среди которых главные — startserver.sh и папка Data.

Поднять сервер 7 Days to Die за пару минут

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

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

Настраиваем serverconfig.xml

Конфиг лежит в /home/sdtd/7dtd/serverconfig.xml. Открываем его любым редактором (nano serverconfig.xml) и правим ключевые параметры — остальное можно оставить по умолчанию:

<property name="ServerPort" value="26900"/>
<property name="ServerName" value="MAATRIX Survival"/>
<property name="ServerPassword" value=""/>
<property name="ServerMaxPlayerCount" value="8"/>
<property name="ServerVisibility" value="2"/>
<property name="GameWorld" value="RWG"/>
<property name="WorldGenSeed" value="maatrix2026"/>
<property name="WorldGenSize" value="6144"/>
<property name="GameName" value="MyGame"/>
<property name="GameDifficulty" value="2"/>
<property name="BloodMoonEnemyCount" value="8"/>
<property name="BloodMoonFrequency" value="7"/>
<property name="DayNightLength" value="60"/>
<property name="DropOnDeath" value="1"/>
<property name="LandClaimSize" value="41"/>
<property name="EACEnabled" value="true"/>
<property name="TelnetEnabled" value="true"/>
<property name="TelnetPort" value="8081"/>
<property name="TelnetPassword" value="сменитьэтотпароль"/>

На что обратить внимание:

  • ServerVisibility2 значит сервер виден в публичном браузере серверов, 1 — только по прямому IP, 0 — приватный. Для игры с друзьями обычно ставят 1 и раздают IP вручную.
  • WorldGenSeed и WorldGenSize задаются только при первом создании мира — карта генерируется один раз и сохраняется в Data/Saves. Если хотите пересоздать мир с нуля, удалите папку сохранения (или переименуйте GameName) и перезапустите сервер.
  • BloodMoonFrequency — раз в сколько дней приходит орда зомби на кровавую луну, по умолчанию 7. Если хотите более расслабленный ранний геймплей — ставьте 10-14, для хардкора — 3-5.
  • GameDifficulty — от 0 (Scavenger) до 5 (Insane), 2 (Nomad) — стандартный баланс для смешанной группы игроков.
  • Telnet-пароль обязательно смените на свой — с открытым портом 8081 и стандартным паролем сервер можно перехватить.

Запуск сервера через startserver.sh

Запускаем из папки с сервером:

cd /home/sdtd/7dtd
./startserver.sh -configfile=serverconfig.xml

Первый запуск дольше обычного — генерируется RWG-карта и прогревается кэш чанков. В консоли должна появиться строка GMSG: Server saved и позже Game version...loaded, после чего сервер готов принимать подключения.

Для постоянной работы удобнее запускать сервер в screen или tmux, чтобы процесс жил после отключения SSH:

sudo apt install -y screen
screen -S sdtd
./startserver.sh -configfile=serverconfig.xml
# отключиться от сессии не завершая процесс: Ctrl+A, затем D
# вернуться обратно: screen -r sdtd

Это рабочий вариант для быстрого теста, но для боевого сервера лучше сразу настроить systemd-сервис — ниже.

Пробрасываем порты и подключаемся

7 Days to Die использует несколько портов, и если хостер (или файрвол внутри VPS) режет их — игроки просто не увидят сервер в списке или не смогут законнектиться:

ПортПротоколНазначение
26900UDP+TCPосновной игровой порт
26901-26903UDPSteam-сервис (запросы к списку серверов, P2P)
8080TCPвеб-дашборд сервера (если включён)
8081TCPTelnet-консоль администрирования

Открываем через ufw, если он используется на VPS:

sudo ufw allow 26900/tcp
sudo ufw allow 26900/udp
sudo ufw allow 26901:26903/udp
sudo ufw allow 8081/tcp
sudo ufw reload

Если сервер арендован у хостинга с отдельным файрволом в панели управления — те же порты нужно открыть и там, иначе правила ufw ничего не решат. После проброса игроки подключаются через игровое меню: Join Game → Connect to IP → указывают ваш IP и порт (ваш_ip:26900).

Автозапуск и стабильность

Чтобы сервер поднимался сам после перезагрузки VPS и перезапускался при падении, оформите его как systemd-сервис. Создаём файл /etc/systemd/system/7dtd.service:

[Unit]
Description=7 Days to Die Dedicated Server
After=network.target

[Service]
User=sdtd
WorkingDirectory=/home/sdtd/7dtd
ExecStart=/home/sdtd/7dtd/startserver.sh -configfile=serverconfig.xml
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target

Активируем:

sudo systemctl daemon-reload
sudo systemctl enable 7dtd
sudo systemctl start 7dtd
sudo systemctl status 7dtd

Логи смотрим через journalctl -u 7dtd -f — удобно ловить моменты падений или ошибки загрузки мира. Отдельно стоит настроить автосохранение мира (по умолчанию оно уже включено, интервал регулируется параметром SaveDataLimit косвенно через логику сохранений) и бэкапы папки Data/Saves — простой cron с копированием в отдельную директорию раз в сутки спасёт от потери прогресса при сбое диска.

Про EasyAntiCheat: параметр EACEnabled в конфиге по умолчанию включён, и на некоторых Linux-сборках именно EAC вызывает проблемы совместимости или падения при старте — если сервер не поднимается с непонятной ошибкой в логе, попробуйте временно поставить EACEnabled в false и посмотреть, помогает ли. С выключенным EAC теряется часть защиты от читеров на уровне игры, поэтому решение имеет смысл только как диагностика или осознанный компромисс для закрытого сервера с друзьями.

Поднять сервер 7 Days to Die за пару минут

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

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

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

Почему сервер не виден в браузере серверов?

Чаще всего дело в непроброшенных UDP-портах 26901-26903 — именно они отвечают за регистрацию в списке через Steam. Проверьте файрвол VPS и панель хостинга отдельно.

Как обновить сервер до новой версии игры?

Останавливаете сервис (systemctl stop 7dtd), заново запускаете steamcmd.sh с той же командой app_update 294420 validate, затем стартуете сервис обратно. Сохранения мира при этом не трогаются.

Можно ли сменить карту без потери прогресса старой?

Нет напрямую — карта привязана к GameName и папке сохранения. Смените GameName в конфиге на новое значение, старое сохранение останется на диске нетронутым, и вы сможете вернуться к нему позже.

Сколько реально нужно RAM для сервера с модами?

Зависит от набора модов, но закладывайте минимум +2-4 ГБ сверх базовых требований для чистого сервера — крупные оверхолы вроде расширенного крафта или новых биомов заметно увеличивают потребление памяти.

Как поставить пароль на вход?

Заполните ServerPassword в serverconfig.xml непустым значением — сервер начнёт запрашивать пароль при подключении.

Нужен ли отдельный порт для голосового чата?

Нет, у 7 Days to Die нет встроенного голосового чата — игроки обычно используют Discord отдельно.