Установка сервера 7 Days to Die на Linux — различия между версиями
Papay (обсуждение | вклад) (→Проверка обновлений и автоматический перезапуск игрового сервера после падения или перезапуска VDS) |
Papay (обсуждение | вклад) (→Проверка обновлений и автоматический перезапуск игрового сервера после падения или перезапуска VDS) |
||
Строка 191: | Строка 191: | ||
* Чтобы выйти из выбранного скрина нажмите '''ctrl+a''' затем '''d'''. | * Чтобы выйти из выбранного скрина нажмите '''ctrl+a''' затем '''d'''. | ||
* Чтобы убить запущенный процесс пропишите команду '''kill''' и номер процесса. | * Чтобы убить запущенный процесс пропишите команду '''kill''' и номер процесса. | ||
+ | |||
+ | [[Файл:Screen.jpg|200px|thumb|left|Номер запущенного процесса]] | ||
'''6'''. Перезапуск сервера в час ночи.<br> | '''6'''. Перезапуск сервера в час ночи.<br> |
Версия 12:36, 23 апреля 2021
В данной инструкции мы расскажем как установить сервер игры 7 Days to Die на ОС Linux Debian 10
Минимальная характеристика сервера для игры 7 Days to Die до 8 игроков.
- Тариф: Medium
- Процессор: от 2.6 GHz
- Количество потоков: 2
- Оперативная память: 8 Gb
- Сервер занимает: 12 Gb
Содержание
Первичная настройка Linux
Вы заказали на сайте MyArena виртуальный сервер, выбрали и установили операционную систему, что же делать дальше? Прежде чем перейти к установке сервера игры, нам потребуется провести предварительную настройку Linux.
1. Скачиваем и устанавливаем программу PuTTY себе на компьютер, что бы подключиться к серверу.
- Запускаем программу, открываем вкладку Window, переходим в Translation и в меню Remote character set выбираем UTF-8.
- Возвращаемся во вкладку Session.
- В Host Name указываем IP адрес вашего сервера, порт 22, ниже в Saved Sessions придумайте имя для подключения и нажмите на кнопку Save.
- Выделяем название сервер и нажимаем на кнопку Open.
- У вас откроется черное окно терминала в котором вам потребуется указать логин и пароль от вашего сервера.
2. Установка дополнительных библиотек, при использование 64 битной операционной системы
apt install lib32gcc1 apt install lib32stdc++6 apt install libsdl2-2.0-0 dpkg --add-architecture i386 apt update apt install libsdl2-2.0-0:i386
3. Установка дополнительных программ.
apt install curl apt install mc apt install htop apt install screen
4. Устанавливаем редактор Nano для пользователя root по умолчанию.
echo 'export EDITOR=nano' >> ~/.bashrc
Установка сервера 7 Days to Die
1. Создаем нового пользователя с паролем, например gameserver.
Все последующие шаги выполняются под созданным пользователем. Выйти из него можно командой 'exit'.
# Создаем пользователя и его домашнюю директорию useradd gameserver -s /bin/bash -m # Добавляем пароль, вас попросят указать пароль дважды passwd gameserver
2. Переключаемся на пользователя gameserver.
su gameserver -l
3. Устанавливаем редактор Nano для пользователя gameserver по умолчанию.
echo 'export EDITOR=nano' >> ~/.bashrc
4. Создаем и переходим в папку, куда будем загружать steamcmd.
mkdir steamcmd cd steamcmd
5. Скачиваем архив steamcmd и разархивируем его.
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz
6. Запускаем steamcmd.sh. Важно: нужно находиться в папке steamcmd.
./steamcmd.sh
7. Загрузка и установка сервера
# Указываем логин, аноним login anonymous # Указываем путь куда будет загружен сервер игры 7 Days to Die. # Пример расположения: /home/gameserver/7dtd/ force_install_dir /home/gameserver/7dtd/ # Загружаем сервер игры app_update 294420
8. Запуск сервера. После загрузки сервера выходим из steamcmd введя команду 'quit'
# Выходим из папки steamcmd cd # Переходим в папку 7dtd cd 7dtd
Теперь проверим, запускаем сервер, для этого пропишите в консоли команду
./startserver.sh -configfile=serverconfig.xml
После этих действий сервер начнет запускаться, вы сможете зайти на него указав ip адрес и порт, например 37.230.228.208:26900
Завершить процесс и выключить игровой сервер нажатием клавиш ctrl+c.
Настройка сервера 7 Days to Die
1. Чтобы в будущем избежать правок конфигурационного файла serverconfig.xml при обновлении сервера, следует создать его копию.
Находясь в директории /7dtd, прописываем данную команду.
cp serverconfig.xml server_config.xml
Данная команда скопирует файл serverconfig.xml и создаст его копию с названием server_config.xml.
2. Открываем конфиг сервера server_config.xml командой
nano server_config.xml
Список самых важных переменных:
Переменные | Стандартное значение | Описание |
---|---|---|
ServerName | My Game Host | Название сервера. |
ServerPort | 26900 | Игровой порт сервера. |
ServerVisibility | 2 | Видимость сервера в интернете: 2 = Виден в интернете, в поиске серверов, 1 = Виден только друзьям, 0 = отсутствует в списке. 1 - Это значит, что сервер станет виден всем друзьям игрока, который подключился к серверу. |
ServerPassword | Пароль сервера, который будет требоваться при подключении. | |
ServerMaxPlayerCount | 8 | Максимальное количество игроков. |
ServerDescription | A 7 Days to Die server | Описание сервера. |
EACEnabled | true | Включает или отключает античит EasyAntiCheat. |
GameWorld | Navezgane | Карты сервера. Можно установить значение «RWG» для случайной карты. |
GameName | My Game | Названия игры, должно быть написано Латиницей. Не используйте «:» и прочие специфические символы. |
WorldGenSeed | asdf | Если выбрали RWG, нужно указать семя (пример: asdf) для создания новой случайной карты. Если карта с таким именем уже существует, она просто будет загружена. |
WorldGenSize | 4096 | Если выбрали RWG, нужно указать ширину и высоту для новой карты (пример: 4096). Размер карты должен быть от 2048 до 16384, создание новой карты может занять очень много времени. |
DayNightLength | 60 | Длительность суток в игре. |
LootRespawnDays | 30 | Через какое количество игровых дней будет происходить респаун лута. |
PlayerKillingMode | 3 | Настройки PVP режима. (0 = PVP запрещен для всех, 1 = можно убивать только союзников, 2 = можно убивать только незнакомцев, 3 = PVP включен для всех |
3. Сохраняем результат нажатием одновременно ctrl+x, у вас попросят подтвердить действия, нажимаем на Y и enter.
4. Проверим сервер, запустим startserver.sh командой
./startserver.sh -configfile=server_config.xml
После этих действий сервер начнет запускаться. Завершить процесс и выключить игровой сервер нажатием клавиш ctrl+c.
Лог консоли сервера
После того, как вы запустили сервер, будет создан output_log.txt в папке 7DaysToDieServer_Data.
В нем вы можете посмотреть полностью лог консоли сервера, запуск сервера, ошибки, подключение\отключение игроков, информацию по работе античита и многое другое.
Проверка обновлений и автоматический перезапуск игрового сервера после падения или перезапуска VDS
1. Находясь в директории /7dtd, создадим дополнительный файл start_7dtd_server.sh для запуска сервера.
nano start_7dtd_server.sh
2. Проверка обновлений. В этот файл прописываем данные параметры.
#!/bin/bash cd /home/gameserver/steamcmd /home/gameserver/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gameserver/7dtd +app_update 294420 +quit
3. Автоматический запуск сервера. Ниже прописываем данные параметры, после этого сохраняем результат нажатием одновременно ctrl+x, у вас попросят подтвердить действия, нажимаем на Y и enter.
cd /home/gameserver/7dtd screen -AmdS run_7dtd bash -c 'while [ true ]; do /home/gameserver/7dtd/startserver.sh -configfile=server_config.xml; echo "CRASH - RESTART"; sleep 1; done'
4. Добавляем права на файл start_7dtd_server.sh, командой.
chmod +x start_7dtd_server.sh
5. Под пользователем gameserver прописываем команду crontab -e и указываем эти данные.
@reboot /home/gameserver/7dtd/start_7dtd_server.sh
- После этого нажимаем на сочетание клавиш ctrl+x и сохраняем результат
- Чтобы посмотреть, что запущено в скрине наберите screen -ls
- Чтобы посмотреть отдельный скрин screen -x название скрина или его номер.
- Чтобы выйти из выбранного скрина нажмите ctrl+a затем d.
- Чтобы убить запущенный процесс пропишите команду kill и номер процесса.
6. Перезапуск сервера в час ночи.
Выходим из под пользователя gameserver командой exit обратно под root, прописываем вновь crontab -e и указываем эти данные.
0 1 * * * pkill -9 -U gameserver; su gameserver -c /home/gameserver/7dtd/start_7dtd_server.sh
Теперь каждый день, в час ночи игровой сервер будет перезапущен.
На этом установка и настройка сервера закончена.
Важные файлы сервера
1. Расположение папки с картами сервера. Если у вас есть своя карта, то её нужна закачать в данную папку.
# Путь папки с картами /Data/Worlds
2. После запуска сервера, будет создан новый каталог.
Сервер сохраняет данные игры в «скрытую» директорию учетной записи gameserver, каталог называется .local (с точкой).
# Путь до папки с сохранением игры /gameserver/.local/share/7DaysToDie/Saves
Тут вы найдете игроков, админов, информацию по открытым регионам и многое другое.
Вы можете изменять инвентарь игроков, переносить его между серверами, даже части карты можно перенести, достаточно скопировать соответствующие файлы в другой каталог для сохранения.
3. Редактирование файла serveradmin.xml. В данный файл добавляются администраторы сервера
Найдите строку:
<!-- <user steamID="76561198021925107" name="Hint on who this user is" permission_level="0" /> -->
Сразу после нее добавьте новую строку со своим Steam 64 ID. Узнать его можно на сайте http://steamid.io. Пример строки:
<user steamID="Ваш_Steam_64_ID" permission_level="0" />
После этого перезапустите сервер.
Полный список переменных сервера
Переменные | Стандартное значение | Описание |
---|---|---|
ServerName | My Game Host | Название сервера. |
ServerDescription | A 7 Days to Die server | Описание сервера. |
ServerWebsiteURL | Тут вы можете указать сайт вашего проекта\сервера. | |
ServerPassword | Пароль сервера, который будет требоваться при подключении. | |
ServerLoginConfirmationText | Текст который увидят пользователи во время подключения к серверу и должны будут его подтвердить. | |
ServerPort | 26900 | Порт игрового сервера. |
ServerVisibility | 2 | Видимость сервера в интернете: 2 = Виден в интернете, в поиске серверов, 1 = Виден только друзьям, 0 = отсутствует в списке. 1 - Это значит, что сервер станет виден всем друзьям игрока, который подключился к серверу. |
ServerDisabledNetworkProtocols | SteamNetworking | Сетевые протоколы, которые не следует использовать. Через запятую. Возможные значения: LiteNetLib, SteamNetworking. Выделенные сервера должны отключить SteamNetworking, если между вашими пользователями и сервером нет NAT-маршрутизатора или если перенаправление портов настроено правильно. |
ServerMaxWorldTransferSpeedKiBs | 512 | Максимальная скорость в кБ/с, с которой передается игровой мир клиенту при первом подключении, если у него еще нет мира. Максимальная скорость около 1300 кБ/с. |
ServerMaxPlayerCount | 8 | Максимальное количество игроков. |
ServerReservedSlots | 0 | Кол-во резервных слотов. |
ServerReservedSlotsPermission | 100 | Permission для резервного слота. |
ServerAdminSlots | 0 | Кол-во Резервных слотов для администрации. |
ServerAdminSlotsPermission | 0 | Permission для резервного слота администрации. |
ControlPanelEnabled | false | Включение / отключение веб-панели управления. |
ControlPanelPort | 8080 | Порт веб-панели управления. |
ControlPanelPassword | Пароль веб-панели управления. | |
TelnetEnabled | true | Включение / отключение Telnet. |
TelnetPort | 8081 | Порт Telnet. |
TelnetPassword | 8081 | Пароль Telnet (Если пароль не установлен, сервер будет прослушивать только локальный канал) |
TelnetFailedLoginLimit | 10 | Кол-во неправильных вводов паролей от одного клиента, после 10 попыток клиент будет заблокирован для подключения к интерфейсу Telnet. |
TelnetFailedLoginsBlocktime | 10 | На сколько будет заблокирован клиент к Telnet (в секундах) |
TerminalWindowEnabled | true | Показать окно терминала для вывода журнала / ввода команд (только для Windows) |
AdminFileName | serveradmin.xml | Название файла списка администраторов сервера. |
UserDataFolder | absolute path | Путь где сервер будет хранить все сгенерированные данные, включая созданные RWG миры. Не забывайте раскомментировать запись! |
SaveGameFolder | absolute path | Путь где сервер будет хранить записывать\сохранять мир. Не забываем раскомментировать запись! |
SaveGameFolder | absolute path | Путь где сервер будет хранить записывать\сохранять мир. Не забываем раскомментировать запись! |
EACEnabled | true | Включает или отключает античит EasyAntiCheat. |
HideCommandExecutionLog | 0 | Скрывать журнал выполнения команд. 0 = показать все, 1 = скрыть только от Telnet / ControlPanel, 2 = также скрыть от удаленных игровых клиентов, 3 = скрыть все |
MaxUncoveredMapChunksPerPlayer | 131072 | Укажите, сколько чанков может быть открыто на игровой карте каждым игроком. В результате максимальный размер файла карты для игрока составляет (x*512 байт), открытая область (x*256 м²). По умолчанию 131072 означает, что в любой момент может быть обнаружено не более 32 км². |
PersistentPlayerProfiles | false | Если отключено, игрок может присоединиться к любому выбранному профилю. Если включено, игрок подключиться к последнему созданному профилю. |
GameWorld | Navezgane | Карты сервера. Можно установить значение «RWG» для случайной карты. |
WorldGenSeed | asdf | Если выбрали RWG, нужно указать семя (пример: asdf) для создания новой случайной карты. Если карта с таким именем уже существует, она просто будет загружена. |
WorldGenSize | 4096 | Если выбрали RWG, нужно указать ширину и высоту для новой карты (пример: 4096). Размер карты должен быть от 2048 до 16384, создание новой карты может занять очень много времени. |
GameName | My Game | Названия игры, должно быть написано Латиницей. Не используйте «:» и прочие специфические символы. |
GameMode | GameModeSurvival | Режим выживания. |
GameDifficulty | 2 | Значения от 0 до 5 (0 = самый простой, 5 = самый сложный). |
BlockDamagePlayer | 100 | Какое количество урона игроки наносят блокам (в процентах или в целых числах). |
BlockDamageAI | 100 | Какое количество урона наносят ИИ блокам (в процентах или в целых числах). |
BlockDamageAIBM | 100 | Какое количество урона наносят ИИ блокам во время кровавой луны (в процентах или в целых числах). |
XPMultiplier | 100 | Множитель получаемого опыта (в процентах или в целых числах). |
PlayerSafeZoneLevel | 5 | Если игрок ниже или равен этому уровню, он создаст безопасную зону (без врагов) при появлении. |
PlayerSafeZoneHours | 5 | Время действия безопасной зоны, в часах по игровому времени. |
BuildCreate | false | Включение / Отключение чит-режима |
DayNightLength | 60 | Длительность суток в игре. |
DayLightLength | 18 | Длительность одного игрового дня. |
DropOnDeath | 1 | Будут ли выпадать вещи после смерти. 0 = Нет, 1 = Да, 2 = Только предметы на поясе, 3 = Только предметы в рюкзаке, 4 = Удаление всех предметов |
DropOnQuit | 0 | Будут ли выпадать вещи при выходе с сервера. 0 = Нет, 1 = Да, 2 = Только предметы на поясе, 3 = Только предметы в рюкзаке, 4 = Удаление всех предметов |
BedrollDeadZoneSize | 15 | Расстояние от спальника при котором зомби не будет спавница. |
BedrollExpiryTime | 45 | Количество дней на которое сохраняется спальник, после последнего подключения к серверу. |
MaxSpawnedZombies | 64 | Максимальное количество зомби на карте. Этот параметр сильно влияет на производительность всего сервера. |
MaxSpawnedAnimals | 50 | Максимальное количество животных на карте. Этот параметр не так сильно влияет на производительность всего сервера как зомби! |
ServerMaxAllowedViewDistance | 12 | Максимальное видимое расстояние игроком на сервере (6 - 12). Этот параметр сильно влияет на использование памяти. |
EnemySpawnMode | true | Включение / Отключение появления врагов. |
EnemyDifficulty | 0 | 0 = Нормальный, 1 = Дикий. |
ZombieMove | 0 | Скорость зомби 0-4 0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар. |
ZombieMoveNight | 3 | Скорость зомби 0-4 0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар. |
ZombieFeralMove | 3 | Скорость зомби 0-4 0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар. |
ZombieBMMove | 3 | Скорость зомби 0-4 0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар. |
BloodMoonFrequency | 7 | Через какое количество дней должна наступать кровавая луна. 0 - Отключить |
BloodMoonRange | 0 | На какое количество дней может отклоняться наступление кровавой луны, это рандомный параметр, отклонение может произойти, а может нет. 0 - наступление кровавых луны будет происходить ровно каждый N-й день, как указано в BloodMoonFrequency. |
BloodMoonWarning | 8 | В какое игровое время наступает кровавая луна. -1 - не будет показывать информацию о наступлении данного события. |
BloodMoonEnemyCount | 8 | Количество зомби которое будет появляться рядом с игроком во время кровавой луны. Этот параметр сильно влияет на производительность всего сервера. |
LootAbundance | 100 | Спавн лута в процентах. |
LootRespawnDays | 30 | Через какое количество игровых дней будет происходить респаун лута. |
AirDropFrequency | 72 | Сброс "AirDrop" каждые 72 часа игрового времени. |
AirDropMarker | false | Если включить, то на карту будет добавлен маркер места сброса "AirDrop". |
PartySharedKillRange | 100 | Расстояние, в пределах которого вы должны находиться, чтобы получить очки опыта за убийство в группе и за убийство в квестовой группе. |
PartySharedKillRange | 100 | Расстояние, в пределах которого вы должны находиться, чтобы получить очки опыта за убийство в группе и за убийство в квестовой группе. |
PlayerKillingMode | 3 | Настройки PVP режима. 0 = PVP запрещен для всех, 1 = можно убивать только союзников, 2 = можно убивать только незнакомцев, 3 = PVP включен для всех. |
LandClaimCount | 1 | Максимальное кол-во территорий на одного игрока. |
LandClaimSize | 41 | Размер безопасной зоны вокруг одного блока. |
LandClaimDeadZone | 30 | Расстояние на котором могут строить друг от друга недружественные игроки. |
LandClaimExpiryTime | 7 | Количество дней, который игрок может находиться в оффлайне, после чего безопасная зона игрока исчезнет. |
LandClaimDecayMode | 0 | С какой скоростью портятся постройки игрока, когда игрок в оффлайне. 0 = Линейный 1 = Экспоненциальный 2 = Не портятся. |
LandClaimOnlineDurabilityModifier | 4 | Прочность построек игроков, которые в онлайне. По умолчанию их в 32 раза труднее уничтожить. 0 - Невозможно уничтожить. |
LandClaimOfflineDurabilityModifier | 4 | Прочность построек игроков, которые сейчас офлайн. По умолчанию их в 32 раза труднее уничтожить. 0 - Невозможно уничтожить. |
LandClaimOfflineDelay | 0 | Количество минут после выхода игрока из игры, в течение которого уровень территории переходит из онлайн в офлайн. |