Как включить или отключить режим онлайн-проверки (Online Mode)

Введение

Режим online-mode в Minecraft определяет, будет ли сервер проверять лицензионность аккаунтов игроков через сервера аутентификации Mojang/Microsoft.

  • true (по умолчанию): только лицензионные аккаунты. Пираты не заходят. Максимальная безопасность, работа скинов и плащей.
  • false: заходят все (оффлайн/пиратские лаунчеры). Полезно для локальных сетей, тестов, серверов с авторизацией через плагины (AuthMe и др.), но открывает дыру для подмены ников (спуфинга), если не настроена дополнительная защита.

Ниже — пошаговая инструкция для выделенного сервера на Ubuntu, управляемого через панель proxify.cloud (Proxmox VE).


1. Подготовка: доступ к консоли сервера

Есть два способа попасть в командную строку Ubuntu:

Вариант А: через noVNC в панели proxify.cloud (рекомендуется для новичков)

  1. Зайдите в proxify.cloud → раздел Мои услуги → выберите нужный выделенный сервер.
  2. Нажмите Консоль (noVNC). Откроется веб-терминал прямо в браузере.
  3. Авторизуйтесь: логин root (или ваш пользователь с sudo), пароль — тот, что вы задали при установке/переустановке ОС в панели.

Вариант Б: по SSH (для постоянной работы)

ssh root@IP_ВАШЕГО_СЕРВЕРА
# или
ssh user@IP_ВАШЕГО_СЕРВЕРА

IP смотрите в панели proxify.cloud на вкладке «Сеть» или «Общая информация».


2. Определение пути к файлу server.properties

Расположение зависит от того, как вы запускаете сервер.

Сценарий 1: «Голый» Java-процесс в /opt/minecraft (ручная установка)

Обычно файлы лежат в одной папке с server.jar.

ls -la /opt/minecraft/
# Ожидаемый вывод: server.jar, server.properties, eula.txt, logs/, world/...

Путь к конфигу: /opt/minecraft/server.properties

Сценарий 2: Docker-контейнер (например, itzg/minecraft-server)

Файлы маппятся в volume на хосте. Проверьте docker compose или docker run:

docker inspect <container_name> | grep -A 5 Mounts
# Ищите "Source": "/var/lib/docker/volumes/mc_data/_data" или ваш кастомный путь

Путь к конфигу на хосте: /путь/к/volume/server.properties
Внутри контейнера это /data/server.properties, но править нужно на хосте.

Сценарий 3: Панель управления (Pterodactyl, PufferPanel и др.) — если стоит поверх Ubuntu

Файлы в /var/lib/pterodactyl/volumes/<uuid>/server.properties или /srv/daemon-data/<uuid>/server.properties.
Если используете панель — меняйте настройку в её веб-интерфейсе, а не вручную, иначе панель перезапишет изменения.

Важно: В этой инструкции предполагается Сценарий 1 (классическая установка в /opt/minecraft). Подставьте свой путь везде ниже.


3. Остановка сервера перед правкой

Никогда не редактируйте server.properties на работающем сервере — изменения не применятся или слотятся при сохранении сервером при выключении.

Если сервер запущен через systemd (systemctl)

systemctl stop minecraft
# Проверка:
systemctl status minecraft
# Должно быть: Active: inactive (dead)

Если запущен в screen/tmux вручную

screen -r minecraft
# В консоли сервера:
stop
# Ждём "Server stopped", затем Ctrl+A, D для отсоединения

Если Docker

docker stop <container_name>
# или
cd /opt/minecraft && docker compose down

4. Редактирование server.properties

4.1. Бэкап (обязательно)

cp /opt/minecraft/server.properties /opt/minecraft/server.properties.backup.$(date +%F_%H-%M)

4.2. Открытие в редакторе

nano /opt/minecraft/server.properties

Или vim, mcedit — по вкусу.

4.3. Поиск и изменение параметра

В файле найдите строку:

online-mode=true

Измените на нужное значение:

Значение Эффект
true Включено (только лицензия, проверка Mojang). Рекомендуется для публичных серверов.
false Выключено (оффлайн-режим, заходят пираты). Требует плагин авторизации (AuthMe, LoginSecurity).

Пример для выключения:

online-mode=false

4.4. Связанные настройки (важно при false)

При online-mode=false обязательно проверьте/выставьте:

# Предотвращает подмену ников через прокси/бэкдоры, если стоит BungeeCord/Velocity
# true — сервер доверяет X-Forwarded-For / Forwarded заголовкам от прокси
# false — игнорирует (стандарт для одиночного сервера)
prevent-proxy-connections=false

# Уровень сжатия пакетов (не связано с online-mode, но полезно)
network-compression-threshold=256

# Максимальное число игроков (проверить соответствие тарифу proxify.cloud)
max-players=20

Совет: Если у вас BungeeCord / Velocity прокси, а бэкенд-серверы в оффлайне — на бэкендах ставьте online-mode=false и prevent-proxy-connections=true (или настройте bungeecord: true в spigot.yml/paper.yml + IP-фильтр на фаерволе). На самом прокси — online-mode=true.

4.5. Сохранение и выход

  • nano: Ctrl+OEnterCtrl+X
  • vim: Esc:wqEnter

5. Проверка синтаксиса (опционально)

server.properties — простой key=value, но лишние пробелы или кириллица в комментариях иногда ломают парсер старых версий.

# Просто убедимся, что файл читается и ключ найден
grep -n "online-mode" /opt/minecraft/server.properties
# Вывод должен быть: 12:online-mode=false  (номер строки может отличаться)

6. Запуск сервера и проверка

6.1. Запуск

# systemd
systemctl start minecraft

# Docker
cd /opt/minecraft && docker compose up -d

# screen вручную
screen -S minecraft -dm bash -c 'cd /opt/minecraft && java -Xms2G -Xmx4G -jar server.jar nogui'

6.2. Мониторинг логов

# systemd
journalctl -u minecraft -f

# Docker
docker logs -f <container_name>

# Файл логов (универсально)
tail -f /opt/minecraft/logs/latest.log

6.3. Что искать в логах при успешном старте

[Server thread/INFO]: Starting minecraft server version 1.20.4
[Server thread/INFO]: Loading properties
[Server thread/INFO]: Default game type: SURVIVAL
[Server thread/INFO]: Generating keypair
[Server thread/INFO]: Starting Minecraft server on *:25565
[Server thread/INFO]: Using epoll channel type
[Server thread/INFO]: Server started in 2.3s

Ошибок про online-mode быть не должно.


7. Тестирование входа

7.1. Если online-mode=true

  1. Зайдите с лицензионного аккаунта (Microsoft/Mojang) — вход должен пройти.
  2. Попробуйте зайти с пиратского лаунчера (TLauncher, и т.д.) — должно выдать:
    Failed to login: Invalid session (Try restarting your game and the launcher)
    или Недопустимая сессия.

7.2. Если online-mode=false

  1. Зайдите с пиратского лаунчера — вход пройдёт.
  2. Зайдите с лицензии — тоже войдёт (но скин может не подтянуться, если нет плагина скинов).
  3. Критично: Попробуйте зайти под ником админа/оператора без пароля. Если зашли — срочно ставьте плагин авторизации (AuthMeReloaded, LoginSecurity, CrazyLogin).

8. Дополнительные действия при online-mode=false

8.1. Установка плагина авторизации (пример для Paper/Spigot)

cd /opt/minecraft/plugins
wget https://github.com/AuthMe/AuthMeReloaded/releases/download/5.6.0/AuthMe-5.6.0.jar
# Перезагрузка плагинов или рестарт сервера
systemctl restart minecraft

Настройте config.yml плагина: хеширование (bcrypt), сессии, ограничение попыток.

8.2. Настройка фаервола (UFW) — защита бэкендов

Если сервер за прокси (Bungee/Velocity), закройте порт 25565 от внешнего мира, оставьте только для IP прокси:

ufw allow from 10.0.0.1 to any port 25565 proto tcp  # IP прокси во внутренней сети
ufw deny 25565/tcp                                   # блок внешнего доступа
ufw enable

IP внутренней сети смотрите в панели proxify.cloud → «Сеть» → «Внутренняя сеть» / VLAN.

8.3. Скины и плащи (опционально)

При online-mode=false скины не грузятся с Mojang. Поставьте плагин SkinsRestorer или PlaceholderAPI + SkinPlugin, настройте хранение скинов локально или через внешний API (MineSkin, Crafatar).


9. Возвращение к online-mode=true (откат)

Если решили вернуть лицензионный режим:

  1. Остановите сервер (systemctl stop minecraft).
  2. Откройте nano /opt/minecraft/server.properties.
  3. Верните: online-mode=true.
  4. Если ставили prevent-proxy-connections=true для оффлайна — верните false (если нет прокси).
  5. Удалите/отключите плагин авторизации (AuthMe и др.), иначе лицензионные игроки не смогут зайти (плагин будет просить пароль).
  6. Запустите сервер.
  7. Протестируйте вход с лицензии.

10.