Плагин для серверов Майнкрафт на Velocity, который одновременно принимает прямые подключения игроков и подключения через HAProxy с PROXY protocol. Он сохраняет реальный IP игроков за прокси для IP-банов и ограничений входа, но доверяет заголовкам PROXY только от разрешённых источников.
Возможности
- Определяет тип нового подключения по его первым байтам и направляет прямые и проксированные соединения разными путями.
- Принимает заголовки PROXY v1 и v2 только от адресов из белого списка.
- Отклоняет проксированные подключения из неразрешённых источников; прямые подключения белый список не ограничивает, поэтому доступ к порту следует отдельно контролировать файрволом.
- Пустой белый список отклоняет все проксированные подключения и оставляет прямые.
- В
/mikuproxy statusотображаются счётчики прямых, принятых проксированных, отклонённых подключений, ошибок и состояния внедрения обработчика.
Команды
/mikuproxy— справка./mikuproxy status— состояние обработчика, параметраproxy-protocol, белого списка и счётчики подключений./mikuproxy list— действующие правила белого списка./mikuproxy reload— перечитываетconfig.tomlи белый список; изменения применяются к новым подключениям.
Доступны также /mhp и /mikuhaproxy.
Права
Для команд требуется право mikuhaproxy.admin. Консоль получает его по умолчанию.
Настройка
В plugins/MikuHAProxy/whitelist.conf указывают по одному правилу в строке: IPv4- и IPv6-адреса, сети в CIDR или доменные имена. Текст после # считается комментарием. При использовании HAProxy на той же машине обычно указывают 127.0.0.0/8 и ::1/128; если на сервере есть недоверенные пользователи, эти правила лучше заменить фактическим адресом HAProxy.
В plugins/MikuHAProxy/config.toml доступны параметры:
allow-all-proxies— принимает заголовки PROXY от любого источника; это небезопасно для сервера, доступного из интернета.whitelist-file— путь к файлу белого списка.log-rejected-connectionsиlog-accepted-connections— журналирование отклонённых и принятых проксированных подключений.rejected-log-interval-secondsиrejected-log-max-tracked— ограничение частоты записей об отклонениях.
Ошибочные параметры возвращаются к значениям по умолчанию, а некорректные строки белого списка пропускаются с сообщением в консоли. Если вместо реального IP игрока виден адрес HAProxy, проверьте proxy-protocol, параметры send-proxy или send-proxy-v2 в HAProxy и адрес HAProxy в белом списке.
Требования
Требуются Velocity 4.0 или новее либо Velocity-CTD 4.x, Java 25 и включённый параметр proxy-protocol = true в velocity.toml. Для проксированных подключений добавьте фактический TCP-адрес HAProxy в белый список: это именно адрес машины, открывающей соединение с Velocity, а не адрес из заголовка PROXY.
