Настройка сервера
Данная статья является логическим продолжением вот этой статьи. Если у вас 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
Теперь можно запустить сервер, перейдя в папку с ним и прописав вышеуказанную команду.
Администрирование
Переходим к более интересному моменту. Вот вы успешно справились с запуском сервера и теперь видите вот это
Это - консоль сервера. Отсюда будет происходить управление им. Давайте рассмотрим команды управления им.
Команда | Русское определение |
---|---|
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
Тут находятся моды и плагины, которые необходимо установить для доступа к вашему серверу. Учтите, что подключение к серверу возможно только тогда, когда у игрока и сервера одинаковый набор модов и одинаковые их версии. Учтите, что игра не поддерживает автоматическую загрузку модов с сервера, и вам придётся как-то распространять моды самостоятельно.