Установка игрового сервера 7 Days to Die на Linux

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к навигации Перейти к поиску

Инструкция по установке выделенного сервера 7 Days to Die на VDS с Ubuntu 24.04. Все команды и снимки экрана сняты с настоящего сервера: инструкция проверена 15 ноября 2026 года на чистой Ubuntu 24.04.4 с сервером версии V 3.4.0.

Что понадобится

  • VDS с Ubuntu 24.04 LTS и доступом root по SSH.
  • Память: пустой сервер на карте Navezgane занимает около 2 ГБ; с игроками и на больших случайных картах — в несколько раз больше. Берите VDS от 8 ГБ.
  • Диск: файлы сервера занимают 17 ГБ; с запасом на обновления и миры нужно от 30 ГБ свободного места.
  • Процессор: от 4 ядер.

Учётная запись Steam и купленная игра для установки сервера не нужны.

1. Обновите систему

sudo apt update && sudo apt upgrade -y

На свежей системе обновление идёт от 5 минут до получаса. По ходу могут появиться два места, где нужно ваше участие.

Окно выбора раскладки клавиатуры. Обновление остановится и покажет окно «Configuring keyboard-configuration». Ничего менять не нужно: нажмите Enter, в следующем окне снова Enter.

Сообщение о новом ядре. Если в конце вы видите «Pending kernel upgrade», система обновила ядро и ждёт перезагрузки.

Перезагрузите сервер и подключитесь снова через минуту:

sudo reboot

2. Установите нужные пакеты

sudo apt install -y wget lib32gcc-s1 lib32stdc++6
  • lib32gcc-s1 и lib32stdc++6 нужны программе SteamCMD, через которую скачивается сервер.

3. Создайте пользователя для сервера

Игровой сервер не должен работать от root. Создайте для него отдельного пользователя:

sudo useradd -m -s /bin/bash sdtd

Пароль этому пользователю не нужен: входить под ним по SSH никто не будет, а переключаться на него вы будете командой из шага 5.

4. Скачайте SteamCMD

sudo mkdir -p /opt/steamcmd
cd /opt/steamcmd
sudo wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
sudo tar -xzf steamcmd_linux.tar.gz
sudo chown -R sdtd:sdtd /opt/steamcmd

Архив маленький (2,3 МБ), но с серверов Steam он может качаться около минуты — это нормально.

5. Установите сервер 7 Days to Die

Переключитесь на пользователя sdtd и запустите SteamCMD:

sudo su - sdtd
cd /opt/steamcmd
./steamcmd.sh

При первом запуске SteamCMD скачивает собственное обновление (около 40 МБ). С серверов Steam оно может идти несколько минут — дождитесь приглашения Steam> и ничего не вводите раньше.

Затем введите по очереди три команды. Порядок важен: каталог установки задаётся до входа.

force_install_dir /home/sdtd/7dtd-server
login anonymous
app_update 294420 validate

Если вместо загрузки появилась строка «ERROR! Failed to install app … (Missing configuration)», просто введите команду app_update ещё раз: при первом запуске SteamCMD такое случается, со второго раза загрузка начинается.

Загрузка 14,5 ГБ (на диске 17 ГБ) занимает 15–40 минут. Дождитесь строки «Success! App '294420' fully installed.»:

Выйдите из SteamCMD:

quit

Проверьте, что файлы на месте:

ls /home/sdtd/7dtd-server

6. Настройте сервер

В каталоге сервера есть штатный скрипт запуска startserver.sh и образец настроек serverconfig.xml. Сам образец править не стоит: при обновлении игры Steam перезапишет его. Сделайте свою копию и откройте её:

cd ~/7dtd-server
cp serverconfig.xml myserver.xml
nano myserver.xml

Каждая настройка — это строка вида <property name="…" value="…"/>; менять нужно только значение в кавычках после value=. Что стоит изменить в первую очередь:

  • ServerName — название сервера в списке.
  • ServerPassword — пароль для входа. Пусто — вход без пароля.
  • ServerMaxPlayerCount — предел числа игроков.
  • GameWorld — карта: Navezgane (готовая) или RWG (случайная; её размер и зерно задают WorldGenSize и WorldGenSeed).
  • GameName — имя сохранения. Если его сменить, сервер начнёт новую игру.
  • ServerPort — порт сервера, по умолчанию 26900.

Сохраните файл (в nano: Ctrl+O, Enter, Ctrl+X) и проверьте главные строки:

grep -oE 'name="(ServerName|ServerPassword|ServerMaxPlayerCount|GameWorld|GameName|ServerPort)"[[:space:]]+value="[^"]*"' myserver.xml

Вернитесь к root:

exit

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

Чтобы сервер запускался вместе с системой и поднимался после сбоя, создайте для него службу:

sudo nano /etc/systemd/system/7dtd-server.service

Вставьте:

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

[Service]
Type=simple
User=sdtd
WorkingDirectory=/home/sdtd/7dtd-server
ExecStart=/home/sdtd/7dtd-server/startserver.sh -configfile=myserver.xml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

8. Запустите сервер и проверьте его

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

Первый запуск занимает около двух минут. Проверьте состояние службы — должно быть active (running):

sudo systemctl status 7dtd-server --no-pager -n 0

Сервер пишет журнал не в службу, а в файлы output_log__дата.txt в своём каталоге. Он готов, когда в журнале есть строка «StartGame done», а порты 26900 и 26902 заняты:

sudo sh -c 'grep -h "StartGame done" /home/sdtd/7dtd-server/output_log__*.txt | tail -n 1'
sudo ss -lntu | grep -E ":2690[0-2] "

Управление службой:

sudo systemctl stop 7dtd-server      # остановить (мир сохраняется)
sudo systemctl restart 7dtd-server   # перезапустить
sudo journalctl -u 7dtd-server -f    # смотреть журнал, выход — Ctrl+C

9. Откройте порты в файрволе

Внимание: сначала разрешите SSH и только потом включайте файрвол. Иначе связь с сервером оборвётся. Если SSH у вас на нестандартном порту, вместо первой команды выполните sudo ufw allow НОМЕР_ПОРТА/tcp.

sudo ufw allow OpenSSH
sudo ufw allow 26900/tcp
sudo ufw allow 26900:26902/udp
sudo ufw enable

Если появится вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?», ответьте y. Проверьте результат:

sudo ufw status

10. Зайдите на сервер

Пошагово со снимками — в статье Как зайти на сервер 7 Day to Die. Как назначить администратора — в статье Как добавить администратора в 7 Days to Die?.

Консоль сервера

Команды серверу отдаются через встроенную консоль (Telnet) на порту 8081. Пока пароль TelnetPassword в настройках пуст, она доступна только с самого сервера — открывать порт 8081 в файрволе не нужно.

telnet 127.0.0.1 8081

Полезные команды: help — список команд, lp — кто на сервере, saveworld — сохранить мир, say "текст" — сообщение всем игрокам, shutdown — сохранить мир и остановить сервер. Чтобы выйти из консоли, не останавливая сервер, введите exit.

Обновление сервера

После выхода обновления игры остановите сервер, обновите файлы и запустите снова:

sudo systemctl stop 7dtd-server
sudo -u sdtd /opt/steamcmd/steamcmd.sh +force_install_dir /home/sdtd/7dtd-server +login anonymous +app_update 294420 validate +quit
sudo systemctl start 7dtd-server

Ваши настройки и сохранения при обновлении не затрагиваются.

Где лежат сохранения

  • Миры и данные игроков: /home/sdtd/.local/share/7DaysToDie/Saves/ — внутри каталоги с названием карты и именем сохранения, например Navezgane/MyGame.
  • Список администраторов: /home/sdtd/.local/share/7DaysToDie/Saves/serveradmin.xml
  • Настройки: /home/sdtd/7dtd-server/myserver.xml
  • Журналы: /home/sdtd/7dtd-server/output_log__дата.txt — новый файл при каждом запуске; старые можно удалять.

Чтобы перенести или сохранить сервер, остановите его и скопируйте каталог /home/sdtd/.local/share/7DaysToDie/Saves и файл настроек.

При остановке службы сервер сохраняет мир — время изменения файлов совпадает со временем остановки:

Если что-то пошло не так

Что видите Причина и решение
В журнале службы (journalctl) нет строк сервера head -n 1.
После обновления пропали настройки Правился образец serverconfig.xml, а обновление его перезаписало. Держите настройки в своей копии myserver.xml, как в шаге 6.
Сервер начал новую игру вместо старой В настройках изменилось GameName, GameWorld или зерно случайной карты. Верните прежние значения.
Игрок видит сервер, но не может зайти Открыты не все порты. Нужны 26900/tcp и 26900–26902/udp.
SteamCMD отвечает «ERROR! Failed to install app '294420' (Missing configuration)» Так иногда бывает при первом запуске SteamCMD. Введите команду app_update ещё раз — со второго раза загрузка начинается.
После установки нет каталога /home/sdtd/7dtd-server Команда force_install_dir была введена с ошибкой или после login, и сервер установился в /home/sdtd/Steam/steamapps/common/. Запустите SteamCMD заново и повторите три команды из шага 5 по порядку.
Служба в состоянии «failed» Посмотрите причину: sudo journalctl -u 7dtd-server -n 50 --no-pager. Чаще всего это опечатка в пути или скрипт запуска не сделан исполняемым.
Сервер запущен, но зайти не удаётся Проверьте, что порты открыты (sudo ufw status) и что в игре указан верный адрес и порт.

Для размещения игровых серверов рекомендуем услуги ARK-HOSTER.RU: