Что такое белый список и зачем он нужен на Hub-сервере
Белый список (whitelist) — это механизм, который ограничивает доступ к серверу только для заранее указанных игроков. На Hub-сервере, который часто служит точкой входа в игровую сеть, whitelist особенно важен: он не пускает случайных гостей, защищает приватные проекты и позволяет проводить закрытые тестирования.
В отличие от простого пароля, whitelist работает на уровне UUID или никнейма, что делает его более гибким. Например, вы можете добавить друга, а затем удалить его, не меняя общий пароль. Это особенно удобно для SMP-сообществ, где состав игроков меняется.
Важно понимать, что whitelist не является полноценной защитой от злоумышленников, особенно на пиратских серверах, но он создаёт базовый барьер и дисциплинирует доступ.
Базовые команды whitelist: включение, добавление и удаление игроков
Управление белым списком в Minecraft осуществляется через команды, которые можно вводить в консоли сервера или в игре (если у вас есть права оператора). Основные команды:
/whitelist on— включает фильтрацию доступа./whitelist off— отключает, но список сохраняется./whitelist add <ник>— добавляет игрока./whitelist remove <ник>— удаляет игрока./whitelist list— показывает всех добавленных./whitelist reload— перечитывает файл whitelist.json после ручных правок.
Команды работают одинаково в ванильном ядре и его форках (Paper, Purpur, Fabric). В консоли панели управления (например, Pterodactyl) слеш перед командой не нужен.
Пример: чтобы добавить игрока Steve, введите whitelist add Steve. Если вы редактировали файл вручную, обязательно выполните whitelist reload, иначе сервер не увидит изменения.
Настройка через server.properties: включение whitelist на уровне конфигурации
Помимо команд, whitelist можно активировать через файл server.properties, который находится в корне сервера. Найдите строку white-list=false и замените её на white-list=true. После этого перезапустите сервер, чтобы изменения вступили в силу.
Также в этом файле есть параметр enforce-whitelist (появился в версии 1.17.1). Если установить его в true, то игроки, которых нет в списке, будут немедленно кикнуты, даже если они уже находились на сервере. Это полезно, когда вы хотите быстро удалить нежелательных игроков после обновления списка.
Если enforce-whitelist установлен в false, уже подключённые игроки останутся до следующего выхода. Рекомендуется включать enforce-whitelist для Hub-серверов, чтобы гарантировать, что посторонние не смогут оставаться в сети.
Файл whitelist.json: структура и ручное редактирование
Белый список хранится в файле whitelist.json в корневой папке сервера. Каждая запись — это объект с двумя полями: uuid и name. Пример:
[
{
"uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
"name": "Notch"
}
]Оба поля обязательны. Если вы редактируете файл вручную, остановите сервер или используйте whitelist reload после сохранения. Будьте внимательны с JSON: запятые между объектами, отсутствие запятой после последнего элемента.
Ручное редактирование полезно, когда нужно добавить много игроков сразу или исправить UUID. Однако на пиратских серверах UUID генерируется на основе ника, поэтому лучше использовать команды, чтобы избежать ошибок.
Особенности работы whitelist в оффлайн-режиме (пиратские серверы)
На серверах с online-mode=false (пиратских) UUID генерируется локально на основе ника. Это означает, что UUID жёстко привязан к точному написанию ника, включая регистр. Если игрок зайдёт с ником Steve, а в списке записан steve, доступ будет отклонён.
Команда /whitelist add Ник в оффлайн-режиме создаёт UUID на основе введённого ника. Если игрок уже пытался подключиться и получил ошибку, вы можете добавить его прямо в этот момент — сервер зафиксирует правильный UUID.
Однако есть нюанс: если игрок сменит ник в лаунчере, его UUID изменится, и запись в whitelist станет недействительной. Поэтому для пиратских серверов рекомендуется использовать плагины, которые проверяют только текстовое совпадение ника, например EasyWhitelist или SimpleWhiteList.
Проблема UUID в онлайн-режиме и как её решить
В онлайн-режиме (online-mode=true) сервер обращается к серверам Mojang при добавлении игрока, чтобы получить его реальный UUID. Этот UUID постоянен и не меняется при смене ника, поэтому запись в whitelist остаётся действующей, даже если игрок переименовался. Однако поле name в файле устареет, что может вызвать путаницу при просмотре списка.
Если вам нужно получить UUID вручную, используйте API Mojang: https://api.mojang.com/users/profiles/minecraft/<Ник>. Ответ содержит id без дефисов, которые нужно добавить при записи в файл.
На практике для Hub-серверов с онлайн-режимом проблема UUID редко возникает, но важно помнить, что авторизация работает по UUID, а не по нику.
Whitelist на BungeeCord и Velocity: централизованное управление для сети
Если ваш Hub-сервер является частью сети с прокси (BungeeCord или Velocity), whitelist нужно настраивать с учётом архитектуры. BungeeCord по умолчанию не имеет встроенного whitelist для игроков, только IP-фильтрацию. Поэтому whitelist обычно включают на бэкэнд-серверах, но это неудобно, если серверов несколько.
Рекомендуемая схема для BungeeCord:
- Убедитесь, что в
config.ymlBungeeCord установленonline-mode: true. - На каждом бэкэнд-сервере в
spigot.ymlустановитеbungeecord: true, а вserver.properties—online-mode=false(BungeeCord передаёт UUID). - Включите whitelist на главном лобби-сервере, который первым принимает игрока.
- Для защиты от прямого подключения в обход прокси закройте порты бэкэндов файрволлом или используйте плагин BungeeGuard.
Velocity — более современный прокси, но также не имеет встроенного whitelist. Используйте плагины, например Whitelist for Velocity, которые позволяют управлять списком централизованно.
Плагины для расширенного whitelist: автовайтлист, Discord-интеграция и защита от подмены ника
Стандартный whitelist хорош для базовых сценариев, но для серьёзных проектов часто нужны дополнительные функции. Плагины позволяют:
- Автоматически добавлять игроков после заявки на Discord или сайте.
- Устанавливать временные слоты (например, доступ на выходные).
- Интегрировать whitelist с системой привилегий (LuckPerms).
На пиратских серверах критически важно использовать плагины, которые проверяют только никнейм, а не UUID, чтобы избежать проблем с регистром. EasyWhitelist и SimpleWhiteList — лёгкие решения, которые заменяют ванильный список.
Однако помните: whitelist без плагина авторизации (например, AuthMe) на пиратском сервере — это «дырявый забор». Любой, кто узнает ник друга, сможет зайти под ним и получить доступ к его имуществу. Поэтому всегда комбинируйте whitelist с системой паролей.
Типичные ошибки и их решение: You are not whitelisted, Failed to verify username
При настройке whitelist часто возникают ошибки. Разберём самые распространённые:
- You are not white-listed on this server! — игрок не в списке или в файле закрепился неверный UUID. Решение: добавьте игрока через команду, пока он находится на экране ошибки, или перейдите на плагин EasyWhitelist.
- Failed to verify username — возникает, когда игрок с пиратского лаунчера пытается зайти на сервер с
online-mode=true. Решение: изменитеonline-modeнаfalseв server.properties и перезапустите сервер.
- Игрок не может зайти после смены ника — в оффлайн-режиме UUID изменился. Решение: удалите старую запись и добавьте игрока заново.
- Whitelist не работает после ручного редактирования — вы забыли выполнить
/whitelist reload. Всегда перечитывайте файл после правок.
Эти ошибки легко диагностировать по сообщениям в консоли, поэтому всегда проверяйте логи при проблемах.
Практические рекомендации для Hub-сервера: безопасность и удобство
Настройка whitelist на Hub-сервере — это только первый шаг. Чтобы обеспечить безопасность и удобство, следуйте этим рекомендациям:
- Используйте
enforce-whitelist=true, чтобы мгновенно удалять нежелательных игроков. - Комбинируйте whitelist с плагином авторизации (AuthMe) на пиратских серверах.
- Для сетей с прокси настраивайте whitelist централизованно через плагины BungeeCord/Velocity.
- Регулярно проверяйте whitelist.json на корректность JSON, особенно после ручных правок.
- Документируйте процесс добавления игроков, чтобы другие администраторы могли быстро разобраться.
Помните, что whitelist — это инструмент управления доступом, а не панацея. Для полной защиты используйте его в сочетании с другими мерами: античит, защита от DDoS, бэкапы и мониторинг.
Вопросы и ответы
Как включить whitelist на сервере Minecraft?
Введите команду /whitelist on в консоли или в игре (с правами оператора). Альтернативно, откройте файл server.properties, найдите строку white-list=false и замените на white-list=true, затем перезапустите сервер.
Что делать, если игрок не может зайти, хотя он в whitelist?
Проверьте, правильно ли указан ник (регистр важен в оффлайн-режиме). Убедитесь, что в файле whitelist.json корректный UUID. Выполните /whitelist reload, чтобы сервер перечитал файл. Если проблема не решена, попробуйте удалить и добавить игрока заново.
Как добавить игрока в whitelist на пиратском сервере?
Используйте команду /whitelist add <ник>. Лучше, чтобы игрок в этот момент пытался подключиться — тогда сервер зафиксирует правильный UUID. Для надёжности используйте плагин EasyWhitelist, который проверяет только никнейм.
Чем whitelist отличается от плагина авторизации?
Whitelist ограничивает список игроков, которым разрешено подключаться, но не проверяет, тот ли это человек. Плагин авторизации (например, AuthMe) требует ввода пароля, что защищает от подмены ника. Для пиратских серверов рекомендуется использовать оба инструмента.
Как настроить whitelist на BungeeCord?
BungeeCord не имеет встроенного whitelist для игроков. Включите whitelist на бэкэнд-серверах (особенно на лобби) и убедитесь, что online-mode в BungeeCord установлен в true. Для централизованного управления используйте плагин BungeeWhitelist.
Почему после смены ника игрок не может зайти на пиратский сервер?
В оффлайн-режиме UUID генерируется на основе ника, поэтому при смене ника UUID меняется. Удалите старую запись из whitelist и добавьте игрока заново с новым ником.
Как защитить Hub-сервер от нежелательных игроков, если whitelist не помогает?
Whitelist — это базовый барьер. Для полной защиты используйте плагин авторизации, настройте файрвол для закрытия портов бэкэндов, установите античит и регулярно обновляйте сервер. Также можно использовать IP-фильтрацию на уровне прокси.