mcrcon и консоль администрирования сервера Minecraft

Содержание

Введeние

В сервер Minecraft встроена консоль администрирования, которая доступна через стандартный поток ввода и стандартный поток вывода. Но также возможно получить доступ к консоли администрирования через сеть. Для этого сервер Minecraft поддерживает специальный протокол RCON, описание которого можно найти по ссылкам RCON и Source RCON Protocol.

Для подключения к консоли администрирования сервера по протоколу RCON существуют специальные клиенты. Одним из таких клиентов, написаным на языке программирования Си, является клиент mcrcon. Подготовка pkgsrc с этим клиентом описана в статье Делаем pkgsrc для клиента консоли администрирования сервера Minecraft mcrcon.

Установка mcrcon

Установим пакет с помощью команд:

# cd /usr/pkgsrc/games/mcrcon
# make install

Я пользуюсь собственным сборочным сервером, настройка которого описана в статье Настройка сборочного сервера NetBSD, с помощью которого поддерживаю собственный репозиторий с готовыми двоичными пакетами, собранными с нужными мне опциями. Поэтому я установил готовый пакет из этого репозитория:

# pkgin update
# pkgin -y install mcrcon

Включение консоли администрирования

Для включения и настройки консоли администрирования сервером Minecraft, работающей по протоколу RCON, предназначены следующие опции в файле /var/games/minecraft-server/server.properties:

enable-rcon=true
rcon.password=$ecret_p4$$w0rd
rcon.port=25575
broadcast-rcon-to-ops=false

Где:

  • enable-rcon - логическая переменная, включающая консоль администрирования. Значение true включает консоль, значение false - выключает,
  • rcon.password - пароль для доступа к консоли адинистрирования,
  • rcon.port - номер TCP-порта для доступа к консоли администрирования. По умолчанию для консоли администрирования используется порт с номером 25575,
  • broadcast-rcon-to-ops - логическая переменная, вклюающая отправку вывода команд всем администраторам, подключенным к серверу. Значение true включает отправку вывода команд всем администраторам сервера, значение false - отключает.

После изменения настроек сервер Minecraft нужно перезапустить, чтобы настройки вступили в силу. В моём случае сервер Minecraft работает под управлением daemontools (см. статью Запуск сервера Minecraft в NetBSD с помощью daemontools), поэтому перезапустить его можно следующим образом:

# svc -du /service/minecraft-server

Подключение к консоли администрирования

Если клиент mcrcon установлен на тот же компьютер, где установлен сервер Minecraft, то для подключения достаточно простой команды с указанием пароля для доступа к консоли администрирования:

$ mcrcon -p $ecret_p4$$w0rd

В случае, если сервер и клиент установлены на разных компьютерах, для подключения нужно так же указать адрес и порт сервера, если он отличается от TCP-порта по умолчанию с номером 25575:

$ mcrcon -H minecraft.vm.stupin.su -P 25575 -p $ecret_p4$$w0rd

Можно выполнять команды в консоли не в интерактивном режиме. В документации приводится пример выполнения трёх команд в неинтерактивном режиме:

$ mcrcon -H minecraft.vm.stupin.su -p $ecret_p4$$w0rd -w 5 "say Server is restarting!" save-all stop

Выполняются три команды с интервалом в 5 секунд:

  • "say Server is restarting!" - вывод сообщения "Server is restarting!" для всех пользователей,
  • save-all - сохранение всех данных сервера в файлы на диске,
  • stop - завершить работу сервера.

Администрировать сервер можно и из консоли, встроенной в сам игровой клиент. Однако прежде чем появится доступ к командам администрирования, пользователю нужно выдать права администратора. Для этого можно воспользоваться командой op с аргументом - именем пользователя, которому выдаются права администратора, например:

$ mcrcon -p $ecret_p4$$w0rd "op meinecruft"

Использованные материалы