Настройка сервера

Материал из PetruCHIO - Mindustry server
Версия от 16:38, 7 июня 2020; Роман (обсуждение | вклад) (Ты тут буковку одну пропустил)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску
Write it.pngДанная статья является логическим продолжением вот этой статьи. Если у вас VPS/VDS, вы всё же пробросили порт у роутера, или же решили запустить сервер в сети VPN для товарищей с грамотным переключением карт и плагинами - вам сюда.

Начать стоит с того, что запущенный из меню паузы сервер - это и не сервер вовсе. Это - совместная игра с товарищем. На сервере карты переключаются автоматически после проигрыша, существуют плагины для дополнительной настройки сервера и грамотная система банов по IP/UUID. Начнём с терминологии - толкового словарика для юного админа.

Словарик юного администратора

Термин Русское определение
IP адрес Каждое устройство в интернете имеет свой уникальный адрес. Данный адрес, как правило, даётся тебе интернет-провайдером, и из-под него ты бродишь по интернету. Обычно бродишь ты, но тут бродить будут к нам. Запросто может получиться, что у игрока будет меняться IP адрес - рядовым пользователям интернета IP выдаётся при каждом подключении к сети (прим. выключить/включить мобильные данные на телефоне - и уже другой адрес; Перезагрузить роутер - уже другой адрес.). Если банить по IP - человек не зайдёт на сервер с этого IP. Если такой заблокированный адрес попадёт добропорядочному гражданину - он также будет несправедливо забанен.
Порт Не бывает такого, чтобы к тебе подключились не через порт. Порт в сети - это "место", к которому мы подключаемся. Игра Mindustry по умолчанию использует 6567 порт TCP/UDP (вот типы портов нам знать пока необязательно). Сайты в браузере, по которым мы бродим, обычно расположены на порту 80. Да-да, по сути, мы пробрасываем порт нашего компьютера в интернет через роутер именно для подключения в последствии к нам других товарищей - порты на роутере по умолчанию не проброшены, чтобы избежать проблем и незваных гостей.
VPS/VDS По сути - кусок железки, который вы арендуете. Делать с ним можно всё, что душе (и хостеру) угодно. В данном случае - сервер по Mindustry. Порты на таких "кусках железа", виртуальных серверах уже проброшены и сервер готов к использованию.
UUID Уникальный идентификатор игрока. Сохраняется в прогрессе игры. Если банить по UUID - игрок не сможет подключиться с этого его устройства. Исключение - случаи обхода банов хитрыми путями
Плагин Это отдельный файл .jar, закинутый в папку плагинов. Может расширять список команд сервера, добавлять какие-либо оповещения, изменять ники игроков и так далее. Есть самые разные плагины для сервера, которые уже успели написать.


Данный словарик дал вам понять, чем мы будем вертеть во время объяснения. Все эти термины так или иначе используются в администрировании сервера. Давайте-ка рассмотрим процесс настройки.

Загрузка ядра сервера

Загружается ядро сервера с страницы на GitHub - просто скачиваете лёгкую серверную версию. После этого необходимо запустить сервер через терминал командой

java -jar server-release.jar


Если вы используете VPS/VDS, то не забудьте установить пакет default-jre, что можно сделать через менеджер пакетов. Обычно на Ubuntu/Debian и их потомках используется менеджер пакетов apt
В итоге команда будет выглядеть так:

sudo apt install default-jre


Теперь можно запустить сервер, перейдя в папку с ним и прописав вышеуказанную команду.

Администрирование

Переходим к более интересному моменту. Вот вы успешно справились с запуском сервера и теперь видите вот это Serv1.png
Это - консоль сервера. Отсюда будет происходить управление им. Давайте рассмотрим команды управления им.

Команда Русское определение
help Выводит список команд, включая те, которые добавляют плагины и небольшое описание к ним на английском языке
version Отображает версию сервера
exit Завершает работу сервера и выходит обратно в систему
stop Останавливает хост сервера
host имя_карты режим Запускает хост на карте с выбранным режимом. Если это не написать - сервер будет недоступен.
Если не указывать режим - запустится выживание
Если не указывать карту - запустится случайная карта
survival - режим выживание, с волнами по таймеру
attack - режим атаки, цель - уничтожить базу врага. При уничтожении всех вражеских ядер игра заканчивается
pvp - сражение нескольких команд игроков. Побеждает та команда, ядро которой остаётся целым
sandbox - песочница, безграничные ресурсы, ой да мне ли объяснять, что это за режим? :D
editor - редактор (мы тоже не знаем зачем)
maps Выводит список карт на сервере
reloadmaps Перезагружает список карт, использовать в случае, если вы добавили/удалили карту
status Отображает статус сервера, список игроков на нём, карту и волну
mods Выводит список установленных плагинов и модификаций
mod название Выводит информацию о конкретном плагине или модификации
js скрипт Выполнить JavaScript на сервере, Примеры команд смотри здесь
say сообщение Выводит игрокам в чат сообщение от имени сервера. Можно использовать для объявлений, предупреждений, разрешений странных конфликтов и шуток
difficulty сложность Задаёт сложность игры на сервере, которую вы выберете.
easy - лёгкая
normal - обычная
hard - сложная
insane - ДОБРО ПОЖАЛОВАТЬ В АД
fillitems команда Заполняет ядро ресурсами у определённой команды
Если в текущей игре всего одна команда, то её можно не указывать
playerlimit off/число Задаёт ограничение игроков на сервере (число), либо убирает его (off)
Если не указать число или off - можно посмотреть текущий лимит
subnet-ban add/remove IP Заблокировать или разблокировать подсеть
whitelisted выводит список игроков, которые есть в белом списке
whitelist-add UUID Добавить в белый список игрока, которому можно посещать сервер (при условии, что белый список активирован)
whitelist-remove UUID Убрать игрока из белого списка, запретив ему посещать сервер (при условии, что белый список активирован)
shuffle значение Случайный порядок карт
none - отключить порядок карт
all - случайный порядок со всеми картами
custom - случайный порядок пользовательских карт (не будет запускать встроенные карты)
builtin - запускать случайный порядок встроенных карт
kick ник Выгнать игрока с сервера. Ещё некоторое время он не сможет зайти на него, не дольше пяти минут
ban тип значение Заблокировать игрока по одному из параметров
id - UUID игрока будет заблокирован, данный игрок уже не зайдёт с устройства
ip - IP блокируется IP адрес. Не забываем, что для обхода данного бана надо всего лишь переподключиться к интернету (или перезагрузить роутер)
name - блокируется игрок по конкретному никнейму
bans Посмотреть список всех блокировок
unban ip/UUID Снять блокировку с игрока по IP/UUID
admin add/remove ник Повысить или понизить игрока
admins Выводит список администраторов
players Выводит список игроков на сервере
runwave Запустить принудительно следующую волну. Работает даже тогда, когда из интерфейса игры этого сделать нельзя
load слот Загрузить состояние игры из слота (слот - это целое число)
save слот Сохранить состояние игры в слот (слот - это целое число)
saves Посмотреть список сохраненных игр
gameover Разрушить ядро и закончить текущую игру
info UUID/IP/ник Посмотреть всю известную об игроке информацию - все IP-адреса, которые он использовал, все ники, которые он использовал, его UUID
search ник Выводит игроков с заданным никнеймом
gc Тестовая команда, оптимизирует потребление ОЗУ сервера
rules add/remove Задаёт пользовательские правила.


Настройка конфигурации сервера.

Команда Русское определение Русское определение
config
name значение Задать название сервера
desс значение Задать описание сервера (отображается под названием)
port значение Задать порт на котором будет размещен сервер (если не указывать значение, то сервер разместится на 6567 порту)
autoUpdate true/false Включение или выключение автообновления сервера на новейшую версию Bleeding-edge
showConnectMessages true/false Отображать в консоли сообщения о подключении или отключении игрока
enableVotekick true/false Разрешить или запретить голосование на кик игрока
startCommands команда,команда,команда Задать команды с которыми запустится сервер
crashReport true/false Включить или выключить автоматическую отправку ошибок и вылетов разработчику
logging true/false Включает или выключает сохранение логов сервера в файлы
strict true/false Ставит или снимает ограничение на 1 устройство - если включено, то на сервере не могут находиться игроки с одинаковыми никнеймами
antiSpam true/false Включение или отключение авто-кика игроков при спаме сообщениями
messageRateLimit значение Время (в секундах) между сообщениями
messageSpamKick значение Количество сообщений, после которого игрока кикнет с сервера за спам
socketInput true/false Разрешает или запрещает управление сервером сторонним приложениям через локальный TCP порт 6859
socketInputPort порт Порт, на который будут приходить команды
socketInputAddress адрес Адрес откуда сервер будет принимать команды
allowCustomClients true/false Разрешить или запретить использование пользовательских клиентов на сервере. Допустим, игрок изменил в коде игры что-то и собрал игру обратно - это "пользовательская сборка". Внимание - из-за изменений в коде на таких сборках могут возникать ошибки!
whitelist true/false Включает или отключает вход по белому списку. Белый список - это когда на ваш сервер нельзя зайти просто так - нужно, чтобы игрока внесли в этот список, и только тогда он сможет зайти на ваш сервер.
motd off/значение Сообщение, которое будет появляться у игроков при заходе на сервер

Структура папок, или зачем server-release.jar кладут в отдельную папку

Вообще после старта создаётся рядом единственная папка - config. Вот уже там лежит всё, что нас будет интересовать

  • logs

В данном каталоге лежат логи сервера, если включены. Настоятельно рекомендую включить логгирование - это позволит вам запоминать информацию об игроках и отслеживать настроение/онлайн сервера. Лог может быть полезен в ситуациях, когда есть некий нарушитель, отрицающий свою вину. "Выписка" из логов - и данного нахала можно наказать сильнее, чем обычно. Поэтому мой вам совет - никогда не обманывайте админов, у них есть неопровержимые доказательства в виде логов. По сути своей .log это текстовый файл, в котором записываются все действия игроков - всё то, что вы видите в окне консоли сервера. Вы, конечно, можете не включать логгирование, чтобы такие файлы тут не создавались. Время и дата, если что, берутся из системы, на которой запущен сервер. Поэтому на зарубежных хостингах могут быть проблемы со временем.

  • maps

Тут лежат карты, которые должны быть на сервере. Карты имеют формат .msav (не путать с обычными игровыми сохранениями!) и доступны для скачивания в нашем архиве - там все карты, которые побывали у нас. Однако вы можете предложить игрокам нарисовать карты самостоятельно - именно так и появлялись карты у нас на сервере. Кстати, заполнять эту папку совсем не обязательно - определённый набор стандартных карт уже установлен и не требует более ничего.

  • mods

Тут находятся моды и плагины, которые необходимо установить для доступа к вашему серверу. Учтите, что подключение к серверу возможно только тогда, когда у игрока и сервера одинаковый набор модов и одинаковые их версии. Учтите, что игра не поддерживает автоматическую загрузку модов с сервера, и вам придётся как-то распространять моды самостоятельно.