Настройка сервера
![]() | Данная статья является логическим продолжением вот этой статьи. Если у вас 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 | |
port | Задаёт порт для сервера. Обычно менять не надо, но если на одном сервере надо запустить несколько - можно задать другой порт. По умолчанию используется 6567, если его в игре не указывать - она сама постучит на порт 6567. Обычно порт указывается в игре через двоеточие, например 12.34.56.78:7777 |
Если не дописывать в конце новый порт - просто покажет текущий порт. | |
maps | Выводит список карт на сервере |
reloadmaps | Перезагружает список карт, использовать в случае, если вы добавили/удалили карту |
status | Отображает статус сервера, список игроков на нём, карту и волну |
plugins | Выводит список установленных плагинов |
plugin название | Выводит информацию о конкретном плагине |
say сообщение | Выводит игрокам в чат сообщение от имени сервера. Можно использовать для объявлений, предупреждений, разрешений странных конфликтов и шуток |
difficulty (сложность) | Задаёт сложность игры на сервере, которую вы выберете. |
easy - лёгкая | |
normal - обычная | |
hard - сложная | |
fillitems команда | Заполняет ядро ресурсами у определённой команды |
Если в текущей игре всего одна команда, то её можно не указывать | |
name название | Задаёт название сервера. Можно использовать цветовые теги для разноцветного названия. |
Если не писать новое название - можно прочитать старое | |
playerlimit off/число | Задаёт ограничение игроков на сервере (число), либо убирает его (off) |
Если не указать число или off - можно посмотреть текущий лимит | |
whitelist on/off | Задаёт параметр белого списка игроков - это когда вы хотите сделать приватный сервер для нескольких игроков и не хотите видеть на нём чужаков |
Если не указать on/off, то можно глянуть на статус белого списка - включен тот или нет | |
whitelisted | выводит список игроков, которые есть в белом списке |
whitelist-add UUID | Добавить в белый список игрока, которому можно посещать сервер (при условии, что белый список активирован) |
whitelist-remove UUID | Убрать игрока из белого списка, запретив ему посещать сервер (при условии, что белый список активирован) |
crashreport on/off | Включить или выключить автоматическую отправку ошибок и вылетов разработчику |
logging on/off | Включает или выключает сохранение логов сервера в файлы |
strict on/off | Ставит или снимает ограничение на 1 устройство - если включено, то на сервере не могут находиться игроки с одинаковыми никами |
socketinput on/off | Разрешает или запрещает управление сервером сторонним приложениям через локальный TCP порт 6859 |
Если не указать on/off, можно узнать текущий статус настройки | |
allow-custom-clients on/off | Разрешить или запретить использование пользовательских клиентов на сервере. Допустим игрок изменил в коде игры что-то и собрал игру обратно - это "пользовательская сборка". Внимание - из-за изменений в коде на таких сборках могут возникать ошибки! |
Если не указывать значение, то можно посмотреть текущий статус данной настройки | |
shuffle on/off | Включает или выключает случайный порядок карт на сервере. Если выключено - карты идут одна за другой |
kick ник | Выгнать игрока с сервера. Ещё некоторое время он не сможет зайти на него, не дольше пяти минут |
ban тип значение | Заблокировать игрока по одному из параметров |
id - UUID игрока будет заблокирован, данный игрок уже не зайдёт с устройства | |
ip - IP блокируется IP адрес. Не забываем, что для обхода данного бана надо всего лишь переподключиться к интернету (или перезагрузить роутер) | |
name - блокируется игрок по конкретному никнейму | |
unban ip/UUID | Снять блокировку с игрока по IP/UUID |
admin ник | Сделать игрока модератором |
unadmin | Разжаловать модератора до рядового игрока |
admins | Посмотреть список модераторов |
runwave | Запустить принудительно следующую волну. Работает даже тогда, когда из интерфейса игры этого сделать нельзя |
load слот | Загрузить состояние игры из слота (слот - это целое число) |
save слот | Сохранить состояние игры в слот (слот - это целое число) |
gameover | Разрушить ядро и закончить текущую игру |
info UUID/IP/ник | Посмотреть всю известную об игроке информацию - все IP-адреса, которые он использовал, все ники, которые он использовал, его UUID |
gc | тестовая команда, оптимизирует потребление ОЗУ сервера |
Структура папок, или зачем server-release.jar кладут в отдельную папку
Вообще после старта создаётся рядом единственная папка - config. Вот уже там лежит всё, что нас будет интересовать
- logs
В данном каталоге лежат логи сервера, если включены. Настоятельно рекомендую включить логгирование - это позволит вам запоминать информацию об игроках и отслеживать настроение/онлайн сервера. Лог может быть полезен в ситуациях, когда есть некий нарушитель, отрицающий свою вину. "Выписка" из логов - и данного нахала можно наказать сильнее, чем обычно. Поэтому мой вам совет - никогда не обманывайте админов, у них есть неопровержимые доказательства в виде логов. По сути своей .log это текстовый файл, в котором записываются все действия игроков - всё то, что вы видите в окне консоли сервера. Вы, конечно, можете не включать логгирование, чтобы такие файлы тут не создавались. Время и дата, если что, берутся из системы, на которой запущен сервер. Поэтому на зарубежных хостингах могут быть проблемы со временем.
- maps
Тут лежат карты, которые должны быть на сервере. Карты имеют формат .msav (не путать с обычными игровыми сохранениями!) и доступны для скачивания в нашем архиве - там все карты, которые побывали у нас. Однако вы можете предложить игрокам нарисовать карты самостоятельно - именно так и появлялись карты у нас на сервере. Кстати, заполнять эту папку совсем не обязательно - определённый набор стандартных карт уже установлен и не требует более ничего.
- plugins
Тут лежат плагины на сервер - это такие штуки, которые позволяют расширить функционал сервера, добавить новые, ранее не существовавшие пользовательские и серверные команды, предупреждения, запреты и прочее. Плагины можно найти на GitHub в поиске по репозиториям. Плагины имеют расширение .jar и, как правило, не требуют дополнительной настройки для начала работы. Для загрузки плагинов необходимо закрыть/открыть сервер. Подробнее о манипуляциях с ними в разделе команд выше