setupmc.com

Geyser und Floodgate auf Velocity mit Docker einrichten

Installiere Geyser am Proxy und prüfe UDP-Port 19132 sowie die Anmeldung der Bedrock-Spieler.

Netzwerk
setupmc.com Team

Geyser zentral auf dem Proxy installieren

Der vorhandene direkte Geyser-/Floodgate-Guide installiert beide Plugins auf einem einzelnen Paper-Server. Hier ist Velocity bereits der öffentliche Einstieg für mehrere Backends. Deshalb läuft Geyser zentral auf dem Proxy.

Die aktuelle Geyser-Anleitung für Proxy-Netzwerke verlangt:

  • Geyser ausschließlich auf dem Proxy installieren
  • Floodgate für Bedrock-Authentifizierung auf dem Proxy installieren
  • Floodgate nur bei benötigter API oder zusätzlichen Daten auf Backends ergänzen
  • alle Backends mit der Java-Protokollversion kompatibel halten, die Geyser aktuell emuliert

Prüfe vor Updates immer die Supported-Versions-Seite. Bedrock-Clients wechseln schnell; die Architektur bleibt länger gültig als fest eingetragene Versionsnummern.

Schritt 1: Funktionierendes Velocity-Netzwerk voraussetzen

Bevor du Crossplay hinzufügst, müssen diese Punkte stimmen:

  • Java-Spieler erreichen über Velocity ein Paper-Backend.
  • Velocity Modern Forwarding funktioniert.
  • Backend-Ports sind nicht öffentlich.
  • /server des Proxys ist dauerhaft eingebunden.

Nutze bei Bedarf zuerst die Velocity-Einrichtung mit Docker Compose und die Anleitung zur sicheren Spielerweiterleitung.

Schritt 2: Plugins und UDP-Port ergänzen

itzg/mc-proxy kann Plugins aus URLs laden. Ergänze die offiziellen Velocity-Downloads von Geyser und Floodgate sowie den Bedrock-UDP-Port:

services:
  proxy:
    image: itzg/mc-proxy:latest
    ports:
      - "25565:25577"
      - "19132:19132/udp"
    environment:
      TYPE: VELOCITY
      MEMORY: 1G
      PLUGINS: "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/velocity,https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/velocity"
    volumes:
      - ./proxy:/server

Die latest-Links sind für den ersten Aufbau praktisch, können später aber eine neue Version liefern. Für planbare Updates solltest du geprüfte Versionen fest eintragen oder bekannte JAR-Dateien aufbewahren und gemeinsam testen.

Prüfe und starte:

docker compose config
docker compose up -d proxy
docker compose logs -f proxy

Beide Plugins müssen ohne Fehler zu fehlenden Abhängigkeiten oder zur Java-Version geladen werden.

Schritt 3: Bedrock-Port konfigurieren

Öffne nach dem ersten Start die erzeugte Geyser-Konfiguration im Plugin-Verzeichnis und kontrolliere:

bedrock:
  address: 0.0.0.0
  port: 19132
  clone-remote-port: false

Mit 0.0.0.0 lauscht Geyser auf allen Netzwerkadressen des Containers. Der Compose-Eintrag veröffentlicht den UDP-Port auf dem Host. Ohne /udp wird fälschlich ein TCP-Port geöffnet, über den Bedrock keine Verbindung aufbauen kann.

Suche in derselben erzeugten Geyser-Konfiguration nach auth-type und setze den Wert auf floodgate. Der umgebende Abschnitt kann sich zwischen Konfigurationsversionen ändern. Bearbeite deshalb die tatsächlich erzeugte Datei, statt sie komplett durch ein altes Beispiel zu ersetzen.

docker compose restart proxy
docker compose logs --tail=150 proxy

Schritt 4: UDP durchgängig öffnen

Vier Ebenen müssen Port und Protokoll teilen:

  1. Geyser lauscht im Container auf UDP 19132.
  2. Compose enthält 19132:19132/udp.
  3. Die Host-Firewall erlaubt UDP 19132.
  4. Router oder Cloud-Firewall erlauben UDP 19132 zum Host.

Die Java-TCP-Regel bleibt zusätzlich bestehen:

ClientÖffentlicher Endpunkt
Java Editionplay.example.com:25565/tcp
Bedrock Editionplay.example.com:19132/udp

Ein Java-SRV-Record entfernt den Bedrock-Port in diesem Aufbau nicht. Gib Bedrock-Spielern den Port ausdrücklich an.

Schritt 5: Intern und extern prüfen

Kontrolliere zunächst die Portweiterleitung:

docker compose port proxy 19132/udp
docker compose logs --tail=150 proxy

Führe danach in der Proxy-Konsole Geysers externen Verbindungstest aus:

geyser connectiontest play.example.com 19132

Teste abschließend mit einem Bedrock-Client aus einem anderen Netzwerk. Ein Versuch im gleichen WLAN beweist nicht, dass Router- oder Provider-UDP funktioniert.

Der erste Login muss über Velocity dasselbe Backend wie Java-Spieler erreichen. Vergleiche Proxy- und Backend-Log und kontrolliere Namen sowie UUID-Verhalten gemäß deiner Floodgate-Konfiguration.

Wann Floodgate auch auf Backends gehört

Normales Crossplay benötigt Floodgate nicht auf jedem Paper-Server. Ergänze es nur für Backend-Plugins, die Floodgate-API, Skin-Daten oder andere Floodgate-Informationen brauchen.

Das offizielle erweiterte Verfahren verlangt send-floodgate-data: true am Proxy und dieselbe key.pem auf den vertrauenswürdigen Backends. Dieser Schlüssel ermöglicht Bedrock-Authentifizierung. Veröffentliche oder versende ihn niemals an nicht vertrauenswürdige Personen. Übertrage ihn binär und beschränke die Dateirechte.

Fehlerbehebung

SymptomWahrscheinliche UrsacheLösung
Java funktioniert, Bedrock meldet „Unable to connect“UDP-Portweiterleitung oder Firewall fehltAlle vier UDP-Ebenen und geyser connectiontest prüfen
Geyser läuft auf jedem BackendGeyser wurde am falschen Ort installiertGeyser nur auf Velocity behalten
Bedrock erreicht Geyser, aber keinen ServerVelocity-Verbindung oder Version passt nichtJava-Verbindung und Geyser-Versionen prüfen
Floodgate-Login verlangt Java-AuthentifizierungAuth-Type nicht auf FloodgateErzeugte Geyser-/Floodgate-Konfiguration angleichen
AEADBadTagException nach SchlüsselkopieSchlüssel unterscheiden sich oder wurden falsch übertragenExakte Schlüssel gemäß Floodgate-Doku neu verteilen
UDP 19132 kollidiert mit einem anderen PluginZwei Dienste verwenden denselben UDP-PortJedem Dienst einen eigenen Port geben

Nächste Schritte

Passendes Tool nutzen

Minecraft-Proxy-Konfigurator

Erstelle ein Docker-Compose-Setup für Velocity, BungeeCord oder einen eigenen Proxy.

Minecraft-Proxy-Konfigurator öffnen

Häufige Fragen