Установка сервера 7 Days to Die на Linux — различия между версиями
Papay (обсуждение | вклад) (→Установка сервера 7 Days to Die) |
Papay (обсуждение | вклад) (→Проверка обновлений и автоматический перезапуск игрового сервера после падения или перезапуска VDS) |
||
(не показаны 32 промежуточные версии этого же участника) | |||
Строка 105: | Строка 105: | ||
</pre> | </pre> | ||
После этих действий сервер начнет запускаться, вы сможете зайти на него указав ip адрес и порт, например 37.230.228.208:26900<br> | После этих действий сервер начнет запускаться, вы сможете зайти на него указав ip адрес и порт, например 37.230.228.208:26900<br> | ||
− | Завершить процесс и выключить игровой сервер нажатием клавиш ctrl+c | + | Завершить процесс и выключить игровой сервер нажатием клавиш ctrl+c. |
− | + | ||
+ | [[Файл:Server on.jpg|frame|Эта строчка означает, что сервер запущен.|none]] | ||
== Настройка сервера 7 Days to Die == | == Настройка сервера 7 Days to Die == | ||
− | '''1'''. | + | '''1'''. Чтобы в будущем избежать правок конфигурационного файла serverconfig.xml при обновлении сервера, следует создать его копию. |
+ | <br>Находясь в директории /7dtd, прописываем данную команду. | ||
+ | <pre style="width: 45%;"> | ||
+ | cp serverconfig.xml server_config.xml | ||
+ | </pre> | ||
+ | Данная команда скопирует файл serverconfig.xml и создаст его копию с названием server_config.xml.<br><br> | ||
+ | '''2'''. Открываем конфиг сервера server_config.xml командой<br> | ||
<pre style="width: 45%;"> | <pre style="width: 45%;"> | ||
− | nano | + | nano server_config.xml |
</pre> | </pre> | ||
Список самых важных переменных: | Список самых важных переменных: | ||
Строка 146: | Строка 153: | ||
| style="background:#eaecf0"| PlayerKillingMode || 3 || Настройки PVP режима.<br>(0 = PVP запрещен для всех, 1 = можно убивать только союзников, 2 = можно убивать только незнакомцев, 3 = PVP включен для всех | | style="background:#eaecf0"| PlayerKillingMode || 3 || Настройки PVP режима.<br>(0 = PVP запрещен для всех, 1 = можно убивать только союзников, 2 = можно убивать только незнакомцев, 3 = PVP включен для всех | ||
|} | |} | ||
− | ''' | + | '''3'''. Сохраняем результат нажатием одновременно ctrl+x, у вас попросят подтвердить действия, нажимаем на Y и enter.<br> |
'''4'''. Проверим сервер, запустим startserver.sh командой | '''4'''. Проверим сервер, запустим startserver.sh командой | ||
<pre style="width: 45%;"> | <pre style="width: 45%;"> | ||
− | ./startserver.sh -configfile= | + | ./startserver.sh -configfile=server_config.xml |
</pre> | </pre> | ||
После этих действий сервер начнет запускаться. Завершить процесс и выключить игровой сервер нажатием клавиш ctrl+c. | После этих действий сервер начнет запускаться. Завершить процесс и выключить игровой сервер нажатием клавиш ctrl+c. | ||
Строка 157: | Строка 164: | ||
В нем вы можете посмотреть полностью лог консоли сервера, запуск сервера, ошибки, подключение\отключение игроков, информацию по работе античита и многое другое. | В нем вы можете посмотреть полностью лог консоли сервера, запуск сервера, ошибки, подключение\отключение игроков, информацию по работе античита и многое другое. | ||
− | == | + | == Проверка обновлений и автоматический перезапуск игрового сервера после падения или перезапуска VDS == |
'''1'''. Находясь в директории /7dtd, создадим дополнительный файл start_7dtd_server.sh для запуска сервера. | '''1'''. Находясь в директории /7dtd, создадим дополнительный файл start_7dtd_server.sh для запуска сервера. | ||
<pre style="width: 45%;"> | <pre style="width: 45%;"> | ||
nano start_7dtd_server.sh | nano start_7dtd_server.sh | ||
</pre> | </pre> | ||
− | '''2'''. В | + | '''2'''. Проверка обновлений. В этот файл прописываем данные параметры. |
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
+ | cd /home/gameserver/steamcmd | ||
+ | /home/gameserver/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gameserver/7dtd +app_update 294420 +quit | ||
+ | </pre> | ||
+ | '''3'''. Автоматический запуск сервера. Ниже прописываем данные параметры, после этого сохраняем результат нажатием одновременно ctrl+x, у вас попросят подтвердить действия, нажимаем на Y и enter. | ||
+ | <pre> | ||
cd /home/gameserver/7dtd | cd /home/gameserver/7dtd | ||
− | screen -AmdS run_7dtd bash -c 'while [ true ]; do /home/gameserver/7dtd/startserver.sh -configfile= | + | screen -AmdS run_7dtd bash -c 'while [ true ]; do /home/gameserver/7dtd/startserver.sh -configfile=server_config.xml; echo "CRASH - RESTART"; sleep 1; done' |
</pre> | </pre> | ||
− | ''' | + | '''4'''. Добавляем права на файл start_7dtd_server.sh, командой. |
<pre style="width: 45%;"> | <pre style="width: 45%;"> | ||
chmod +x start_7dtd_server.sh | chmod +x start_7dtd_server.sh | ||
</pre> | </pre> | ||
− | ''' | + | '''5'''. Под пользователем gameserver прописываем команду '''crontab -e''' и указываем эти данные. |
<pre> | <pre> | ||
@reboot /home/gameserver/7dtd/start_7dtd_server.sh | @reboot /home/gameserver/7dtd/start_7dtd_server.sh | ||
Строка 180: | Строка 192: | ||
* Чтобы посмотреть отдельный скрин '''screen -x название''' скрина или его номер. | * Чтобы посмотреть отдельный скрин '''screen -x название''' скрина или его номер. | ||
* Чтобы выйти из выбранного скрина нажмите '''ctrl+a''' затем '''d'''. | * Чтобы выйти из выбранного скрина нажмите '''ctrl+a''' затем '''d'''. | ||
− | + | * Чтобы убить запущенный процесс пропишите команду '''kill''' и номер процесса. | |
− | ''' | + | <br> |
+ | [[Файл:Screen.jpg|frame|Номер запущенного процесса.|none]] | ||
+ | <br> | ||
+ | '''6'''. Перезапуск сервера в час ночи.<br> | ||
Выходим из под пользователя gameserver командой exit обратно под root, прописываем вновь '''crontab -e''' и указываем эти данные. | Выходим из под пользователя gameserver командой exit обратно под root, прописываем вновь '''crontab -e''' и указываем эти данные. | ||
<pre> | <pre> | ||
Строка 187: | Строка 202: | ||
</pre> | </pre> | ||
Теперь каждый день, в час ночи игровой сервер будет перезапущен. | Теперь каждый день, в час ночи игровой сервер будет перезапущен. | ||
− | |||
− | |||
− | |||
− | |||
== Важные файлы сервера == | == Важные файлы сервера == | ||
Строка 216: | Строка 227: | ||
== Полный список переменных сервера == | == Полный список переменных сервера == | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! style="background:#eaecf0"| Переменные !! Стандартное значение !! Описание | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerName || My Game Host || Название сервера. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerDescription || A 7 Days to Die server || Описание сервера. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerWebsiteURL || || Тут вы можете указать сайт вашего проекта\сервера. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerPassword || || Пароль сервера, который будет требоваться при подключении. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerLoginConfirmationText || || Текст который увидят пользователи во время подключения к серверу и должны будут его подтвердить. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerPort || 26900 || Порт игрового сервера. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerVisibility || 2 || Видимость сервера в интернете:<br>2 = Виден в интернете, в поиске серверов, 1 = Виден только друзьям, 0 = отсутствует в списке.<br>1 - Это значит, что сервер станет виден всем друзьям игрока, который подключился к серверу. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerDisabledNetworkProtocols || SteamNetworking || Сетевые протоколы, которые не следует использовать. Через запятую. Возможные значения: LiteNetLib, SteamNetworking. Выделенные сервера должны отключить SteamNetworking, если между вашими пользователями и сервером нет NAT-маршрутизатора или если перенаправление портов настроено правильно. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerMaxWorldTransferSpeedKiBs || 512 || Максимальная скорость в кБ/с, с которой передается игровой мир клиенту при первом подключении, если у него еще нет мира. Максимальная скорость около 1300 кБ/с. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerMaxPlayerCount || 8 || Максимальное количество игроков. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerReservedSlots || 0 || Кол-во резервных слотов. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerReservedSlotsPermission || 100 || Permission для резервного слота. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerAdminSlots || 0 || Кол-во Резервных слотов для администрации. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerAdminSlotsPermission || 0 || Permission для резервного слота администрации. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ControlPanelEnabled || false || Включение / отключение веб-панели управления. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ControlPanelPort || 8080 || Порт веб-панели управления. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ControlPanelPassword || || Пароль веб-панели управления. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| TelnetEnabled || true || Включение / отключение Telnet. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| TelnetPort || 8081 || Порт Telnet. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| TelnetPassword || 8081 || Пароль Telnet (Если пароль не установлен, сервер будет прослушивать только локальный канал) | ||
+ | |- | ||
+ | | style="background:#eaecf0"| TelnetFailedLoginLimit || 10 || Кол-во неправильных вводов паролей от одного клиента, после 10 попыток клиент будет заблокирован для подключения к интерфейсу Telnet. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| TelnetFailedLoginsBlocktime || 10 || На сколько будет заблокирован клиент к Telnet (в секундах) | ||
+ | |- | ||
+ | | style="background:#eaecf0"| TerminalWindowEnabled || true || Показать окно терминала для вывода журнала / ввода команд (только для Windows) | ||
+ | |- | ||
+ | | style="background:#eaecf0"| AdminFileName || serveradmin.xml || Название файла списка администраторов сервера. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| UserDataFolder || absolute path || Путь где сервер будет хранить все сгенерированные данные, включая созданные RWG миры. Не забывайте раскомментировать запись! | ||
+ | |- | ||
+ | | style="background:#eaecf0"| SaveGameFolder || absolute path || Путь где сервер будет хранить записывать\сохранять мир. Не забываем раскомментировать запись! | ||
+ | |- | ||
+ | | style="background:#eaecf0"| SaveGameFolder || absolute path || Путь где сервер будет хранить записывать\сохранять мир. Не забываем раскомментировать запись! | ||
+ | |- | ||
+ | | style="background:#eaecf0"| EACEnabled || true || Включает или отключает античит EasyAntiCheat. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| HideCommandExecutionLog || 0 || Скрывать журнал выполнения команд.<br>0 = показать все, 1 = скрыть только от Telnet / ControlPanel, 2 = также скрыть от удаленных игровых клиентов, 3 = скрыть все | ||
+ | |- | ||
+ | | style="background:#eaecf0"| MaxUncoveredMapChunksPerPlayer || 131072 || Укажите, сколько чанков может быть открыто на игровой карте каждым игроком.<br>В результате максимальный размер файла карты для игрока составляет (x*512 байт), открытая область (x*256 м²).<br>По умолчанию 131072 означает, что в любой момент может быть обнаружено не более 32 км². | ||
+ | |- | ||
+ | | style="background:#eaecf0"| PersistentPlayerProfiles || false || Если отключено, игрок может присоединиться к любому выбранному профилю. Если включено, игрок подключиться к последнему созданному профилю. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| GameWorld || Navezgane || Карты сервера.<br>Можно установить значение «RWG» для случайной карты. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| WorldGenSeed || asdf || Если выбрали RWG, нужно указать семя (пример: asdf) для создания новой случайной карты. Если карта с таким именем уже существует, она просто будет загружена. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| WorldGenSize || 4096 || Если выбрали RWG, нужно указать ширину и высоту для новой карты (пример: 4096).<br>Размер карты должен быть от 2048 до 16384, создание новой карты может занять очень много времени. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| GameName || My Game || Названия игры, должно быть написано Латиницей. Не используйте «:» и прочие специфические символы. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| GameMode || GameModeSurvival || Режим выживания. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| GameDifficulty || 2 || Значения от 0 до 5 (0 = самый простой, 5 = самый сложный). | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BlockDamagePlayer || 100 || Какое количество урона игроки наносят блокам (в процентах или в целых числах). | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BlockDamageAI || 100 || Какое количество урона наносят ИИ блокам (в процентах или в целых числах). | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BlockDamageAIBM || 100 || Какое количество урона наносят ИИ блокам во время кровавой луны (в процентах или в целых числах). | ||
+ | |- | ||
+ | | style="background:#eaecf0"| XPMultiplier || 100 || Множитель получаемого опыта (в процентах или в целых числах). | ||
+ | |- | ||
+ | | style="background:#eaecf0"| PlayerSafeZoneLevel || 5 || Если игрок ниже или равен этому уровню, он создаст безопасную зону (без врагов) при появлении. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| PlayerSafeZoneHours || 5 || Время действия безопасной зоны, в часах по игровому времени. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BuildCreate || false || Включение / Отключение чит-режима | ||
+ | |- | ||
+ | | style="background:#eaecf0"| DayNightLength || 60 || Длительность суток в игре. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| DayLightLength || 18 || Длительность одного игрового дня. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| DropOnDeath || 1 || Будут ли выпадать вещи после смерти.<br>0 = Нет, 1 = Да, 2 = Только предметы на поясе, 3 = Только предметы в рюкзаке, 4 = Удаление всех предметов | ||
+ | |- | ||
+ | | style="background:#eaecf0"| DropOnQuit || 0 || Будут ли выпадать вещи при выходе с сервера.<br>0 = Нет, 1 = Да, 2 = Только предметы на поясе, 3 = Только предметы в рюкзаке, 4 = Удаление всех предметов | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BedrollDeadZoneSize || 15 || Расстояние от спальника при котором зомби не будет спавница. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BedrollExpiryTime || 45 || Количество дней на которое сохраняется спальник, после последнего подключения к серверу. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| MaxSpawnedZombies || 64 || Максимальное количество зомби на карте.<br>Этот параметр сильно влияет на производительность всего сервера. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| MaxSpawnedAnimals || 50 || Максимальное количество животных на карте.<br>Этот параметр не так сильно влияет на производительность всего сервера как зомби! | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ServerMaxAllowedViewDistance || 12 || Максимальное видимое расстояние игроком на сервере (6 - 12).<br>Этот параметр сильно влияет на использование памяти. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| EnemySpawnMode || true || Включение / Отключение появления врагов. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| EnemyDifficulty || 0 || 0 = Нормальный, 1 = Дикий. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ZombieMove || 0 || Скорость зомби 0-4<br>0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ZombieMoveNight || 3 || Скорость зомби 0-4<br>0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ZombieFeralMove || 3 || Скорость зомби 0-4<br>0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| ZombieBMMove || 3 || Скорость зомби 0-4<br>0 - Ходьба, 1- Пробежка, 2 - Бег, 3 - Спринт, 4 - Кошмар. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BloodMoonFrequency || 7 || Через какое количество дней должна наступать кровавая луна. 0 - Отключить | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BloodMoonRange || 0 || На какое количество дней может отклоняться наступление кровавой луны, это рандомный параметр, отклонение может произойти, а может нет.<br>0 - наступление кровавых луны будет происходить ровно каждый N-й день, как указано в BloodMoonFrequency. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BloodMoonWarning || 8 || В какое игровое время наступает кровавая луна.<br>-1 - не будет показывать информацию о наступлении данного события. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| BloodMoonEnemyCount || 8 || Количество зомби которое будет появляться рядом с игроком во время кровавой луны.<br>Этот параметр сильно влияет на производительность всего сервера. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LootAbundance || 100 || Спавн лута в процентах. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LootRespawnDays || 30 || Через какое количество игровых дней будет происходить респаун лута. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| AirDropFrequency || 72 || Сброс "AirDrop" каждые 72 часа игрового времени. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| AirDropMarker || false || Если включить, то на карту будет добавлен маркер места сброса "AirDrop". | ||
+ | |- | ||
+ | | style="background:#eaecf0"| PartySharedKillRange || 100 || Расстояние, в пределах которого вы должны находиться, чтобы получить очки опыта за убийство в группе и за убийство в квестовой группе. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| PartySharedKillRange || 100 || Расстояние, в пределах которого вы должны находиться, чтобы получить очки опыта за убийство в группе и за убийство в квестовой группе. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| PlayerKillingMode || 3 || Настройки PVP режима.<br>0 = PVP запрещен для всех, 1 = можно убивать только союзников, 2 = можно убивать только незнакомцев, 3 = PVP включен для всех. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LandClaimCount || 1 || Максимальное кол-во территорий на одного игрока. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LandClaimSize || 41 || Размер безопасной зоны вокруг одного блока. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LandClaimDeadZone || 30 || Расстояние на котором могут строить друг от друга недружественные игроки. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LandClaimExpiryTime || 7 || Количество дней, который игрок может находиться в оффлайне, после чего безопасная зона игрока исчезнет. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LandClaimDecayMode || 0 || С какой скоростью портятся постройки игрока, когда игрок в оффлайне.<br>0 = Линейный 1 = Экспоненциальный 2 = Не портятся. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LandClaimOnlineDurabilityModifier || 4 || Прочность построек игроков, которые в онлайне.<br>По умолчанию их в 32 раза труднее уничтожить. 0 - Невозможно уничтожить. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LandClaimOfflineDurabilityModifier || 4 || Прочность построек игроков, которые сейчас офлайн.<br>По умолчанию их в 32 раза труднее уничтожить. 0 - Невозможно уничтожить. | ||
+ | |- | ||
+ | | style="background:#eaecf0"| LandClaimOfflineDelay || 0 || Количество минут после выхода игрока из игры, в течение которого уровень территории переходит из онлайн в офлайн. | ||
+ | |} | ||
== Ссылки == | == Ссылки == | ||
* [https://www.myarena.ru/vds_cloud.html Заказать виртуальный сервер] | * [https://www.myarena.ru/vds_cloud.html Заказать виртуальный сервер] | ||
* [https://www.myarena.ru/dedic.html Заказать выделенный сервер] | * [https://www.myarena.ru/dedic.html Заказать выделенный сервер] |
Текущая версия на 13:56, 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 | Количество минут после выхода игрока из игры, в течение которого уровень территории переходит из онлайн в офлайн. |