Трансляция протоколов Bedrock RakNet (UDP 19132) в Java Netty через GeyserMC и Floodgate
1. Как мобильные клиенты общаются с Java-сервером
Minecraft Java Edition работает по протоколу TCP на порту 25565, тогда как Bedrock Edition на iOS, Android и консолях использует надёжный UDP-протокол RakNet на порту 19132 с другим порядком байтов (`Little Endian` вместо `Big Endian`) и собственным набором ID блоков и сущностей. На шлюзе server.xminecraft.ru модуль GeyserMC запущен непосредственно на пограничном прокси Velocity.
2. Криптографическая передача XUID через Floodgate
Чтобы Bedrock-игроки не требовали лицензионный токен Mojang Java, используется плагин Floodgate. При подключении через UDP 19132 прокси проверяет JWT-подпись Xbox Live, шифрует данные игрока симметричным ключом AES-128 и передаёт их внутренним нодам, позволяя античиту Sentinel различать легитимное управление с сенсорного экрана.
Фрагмент конфигурации plugins/Geyser-Velocity/config.yml
bedrock:
address: 0.0.0.0
port: 19132
clone-remote-port: false
motd1: "XMinecraft Cluster [1.21.4]"
motd2: "Anarchy • Duels • SkyBlock"
compression-level: 6
enable-proxy-protocol: true
remote:
auth-type: floodgate
allow-password-authentication: true