Как установить Geyser для Bedrock Edition

Подготовка окружения на proxify.cloud

  1. Авторизуйтесь в панели proxify.cloud. Перейдите в раздел «Серверы» и выберите ваш выделенный сервер с Ubuntu.

  2. Откройте консоль (VNC/NoVNC) или подключитесь по SSH. Рекомендуется SSH для копирования команд:

    ssh root@<IP-вашего-сервера>
    
  3. Обновите пакеты и установите необходимые утилиты:

    apt update && apt upgrade -y
    apt install -y openjdk-21-jre-headless curl wget unzip ufw
    

    Geyser требует Java 21. На Ubuntu 22.04/24.04 openjdk-21-jre-headless доступен в стандартных репозиториях.

  4. Настройте файрвол (UFW) для Java-сервера (порт 25565 TCP) и Geyser (порт 19132 UDP):

    ufw allow 25565/tcp comment 'Minecraft Java'
    ufw allow 19132/udp comment 'Geyser Bedrock'
    ufw enable
    

    В панели proxify.cloud убедитесь, что внешний фаервол (если включен) также пропускает эти порты.

Установка серверной части (Paper/Spigot)

Geyser работает как плагин для Java-сервера. Используем Paper для лучшей производительности.

  1. Создайте пользователя и директорию сервера (не запускайте от root):

    adduser --disabled-password --gecos "" mcuser
    su - mcuser
    mkdir -p ~/server && cd ~/server
    
  2. Скачайте последнюю стабильную версию Paper (пример для 1.21.1, проверьте актуальную версию на papermc.io):

    PAPER_BUILD=$(curl -s "https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds" | jq -r '.builds[-1].build')
    wget "https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/${PAPER_BUILD}/downloads/paper-1.21.1-${PAPER_BUILD}.jar" -O paper.jar
    

    Если jq не установлен: apt install jq (от root).

  3. Создайте скрипт запуска start.sh:

    cat > start.sh << 'EOF'
    #!/bin/bash
    java -Xms2G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
    -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
    -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
    -jar paper.jar --nogui
    EOF
    chmod +x start.sh
    

    Настройте -Xms/-Xmx под объем RAM вашего выделенного сервера на proxify.cloud.

  4. Первый запуск для генерации eula.txt и конфигов:

    ./start.sh
    

    Сервер упадет с ошибкой EULA. Отредактируйте файл:

    sed -i 's/eula=false/eula=true/' eula.txt
    
  5. Запустите снова, дождитесь полной загрузки («Done!»), затем остановите командой stop в консоли сервера.

Установка плагина Geyser-Spigot

  1. Перейдите в папку плагинов и скачайте последнюю версию Geyser-Spigot:

    cd ~/server/plugins
    wget https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot -O Geyser-Spigot.jar
    
  2. Запустите сервер еще раз для генерации конфигурации Geyser:

    cd ~/server && ./start.sh
    

    Дождитесь загрузки, введите stop.

Конфигурация Geyser (config.yml)

  1. Откройте конфиг:

    nano ~/server/plugins/Geyser-Spigot/config.yml
    
  2. Приведите ключевые параметры к следующему виду (остальное оставьте по умолчанию):

    bedrock:
      address: 0.0.0.0
      port: 19132
      clone-remote-port: false
      motd1: "Geyser на proxify.cloud"
      motd2: "Bedrock Edition подключена"
      server-name: "Мой сервер"
      compression-level: 6
      enable-proxy-protocol: false
    remote:
      address: 127.0.0.1
      port: 25565
      auth-type: online
      allow-password-authentication: true
      use-proxy-protocol: false
      forward-hostname: false
    extended-world-height: true
    floodgate:
      enabled: true
      key-file: "plugins/Geyser-Spigot/floodgate.key"
    

    Важные моменты:

    • bedrock.address: 0.0.0.0 — слушает на всех интерфейсах.
    • bedrock.port: 19132 — стандартный порт Bedrock (UDP).
    • remote.port: 25565 — порт вашего Paper-сервера (TCP, localhost).
    • auth-type: online — требует лицензию Java. Поставьте offline для пиратки, но тогда обязателен Floodgate.
    • floodgate.enabled: true — включает интеграцию с Floodgate (см. ниже).
  3. Сохраните (Ctrl+O, Enter, Ctrl+X).

Установка Floodgate (обязательно для offline-mode / кроссплея без лицензии Java)

Floodgate позволяет игрокам Bedrock заходить на сервер в online-mode: true без покупки Java-аккаунта.

  1. Скачайте Floodgate-Spigot в ту же папку plugins:

    cd ~/server/plugins
    wget https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot -O floodgate-spigot.jar
    
  2. Запустите сервер для генерации ключа и конфига Floodgate:

    cd ~/server && ./start.sh
    

    Дождитесь строки Floodgate enabled, затем stop.

  3. Проверьте, что в plugins/Geyser-Spigot/ появился файл floodgate.key. Он должен быть идентичен на стороне Geyser и Floodgate (при использовании standalone это критично, здесь плагины синхронизируются автоматически).

  4. Отредактируйте server.properties основного сервера:

    nano ~/server/server.properties
    

    Убедитесь в настройках:

    online-mode=true
    enable-query=false
    enable-rcon=false
    server-port=25565
    

    online-mode=true обязателен для работы Floodgate.

Настройка systemd (автозапуск и управление)

  1. Выйдите из пользователя mcuser (exit или Ctrl+D) и создайте юнит от root:

    cat > /etc/systemd/system/minecraft.service << 'EOF'
    [Unit]
    Description=Minecraft Paper + Geyser Server
    After=network.target
    
    [Service]
    Type=simple
    User=mcuser
    WorkingDirectory=/home/mcuser/server
    ExecStart=/home/mcuser/server/start.sh
    Restart=on-failure
    RestartSec=10
    LimitNOFILE=65535
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
  2. Включите и запустите службу:

    systemctl daemon-reload
    systemctl enable minecraft
    systemctl start minecraft
    
  3. Проверьте статус и логи:

    systemctl status minecraft
    journalctl -u minecraft -f
    

Проверка подключения

  1. Java Edition: Подключитесь по IP вашего сервера на proxify.cloud порт 25565.
  2. Bedrock Edition: В клиенте выберите «Играть» → «Серверы» → «Добавить сервер».
    • Имя: любое.
    • Адрес: IP сервера (или домен, если настроен).
    • Порт: 19132.
    • Играйте.

Оптимизация и бэкапы (рекомендации)

  1. Настройте ежедневный бэкап мира через cron (от пользователя mcuser):

    su - mcuser
    crontab -e
    

    Добавьте строку (бэкап в 04:00):

    0 4 * * * tar -czf /home/mcuser/backups/world-$(date +\%F).tar.gz -C /home/mcuser/server world
    

    Создайте папку: mkdir -p ~/backups.

  2. Для больших миров на выделенном сервере proxify.cloud рекомендуется выделить под Java 6-8 Гб RAM (зависит от тарифа) и использовать флаги G1GC из start.sh.

Возможные проблемы и решения

1. Bedrock-клиент висит на «Поиск сервера…» / «Не удается подключиться»

  • Причина: Порт 19132 UDP закрыт.
  • Решение: Проверьте ufw status на сервере. В панели proxify.cloud (раздел «Сеть» / «Фаервол») убедитесь, что правило для UDP 19132 создано и применено к вашему серверу. Проверьте ss -lun | grep 19132 — должен слушать процесс java.

2. Ошибка «Invalid Key» / «Encryption error» при входе с Bedrock

  • Причина: Рассинхрон floodgate.key или online-mode=false в server.properties при включенном Floodgate.
  • Решение:
    1. Убедитесь, что в server.properties стоит online-mode=true.
    2. Удалите plugins/Geyser-Spigot/floodgate.key и plugins/floodgate/data/floodgate.key (если есть), перезапустите сервер — ключи сгенерируются заново синхронно.

3. Игроки Bedrock не видят скины / не работают плагины экономики/пермишенов

  • Причина: Geyser не передает UUID в формате, понятном плагинам, или не настроен floodgate-ids.
  • Решение: Установите плагин GeyserOptionalPack (для скинов) и настройте config.yml Geyser: use-floodgate-ids: true (в секции floodgate). Для LuckPerms/Vault используйте префикс floodgate: перед ником или настройте маппинг UUID.

4. Лаги / «Can't keep up!» в консоли

  • Причина: Недостаточно RAM или однопоточная нагрузка.
  • Решение:
    • Увеличьте -Xmx в start.sh (не более 75% физической RAM).
    • Добавьте флаги: `-XX:G1HeapRegionSize=16M -XX:G1NewSizePercent=30 -XX:G