Skip to content

Wiki de de

pjscruggs edited this page Nov 11, 2026 · 2 revisions

Raknetify2 · Deutsch (Deutschland)

Sprache

Mehrspieler

Netzwerkverbindungen über RakNet für Minecraft-Clients und -Server.

Herunterladen · GitHub

Minecraft Raknetify2 Client / Server
Fabric mods/raknetify2-fabric-*.jar Client / Server
Forge mods/raknetify2-forge-*.jar Client / Server
NeoForge mods/raknetify2-neoforge-*.jar Client / Server
Spigot / Paper plugins/raknetify2-spigot-*.jar Server
Velocity plugins/raknetify2-velocity-*.jar Velocity
BungeeCord plugins/raknetify2-bungee-*.jar BungeeCord

Server hinzufügen

  1. Mehrspieler

  2. Server hinzufügen

  3. Serveradresse

    Serveradresse
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. Fertig

  5. Server beitreten

F3 · Raknetify2

F3
RakNet · UDP Aktiv · MTU 1400
TCP Inaktiv

Velocity / BungeeCord

  1. Client · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. Velocity / BungeeCord → TCP → Server
Portnummer · UDP Java
Fabric / Forge / NeoForge 1–65534 -Draknetify.fabric.portOverride=25570
Spigot / Paper ≥ 0.1.0-beta.1.431 1–65535 -Draknetify.spigot.portOverride=25570
Velocity 1–65534 -Draknetify.velocity.portOverride=25570
BungeeCord 1–65534 -Draknetify.bungee.portOverride=25570

Zeitüberschreitung

Serveradresse UDP
raknet;play.example.com:25580 play.example.com:25580 → NAT → 192.0.2.10:25570
Server · 192.0.2.10 25570/udp

config/raknetify2-compatibility.json

Server / Velocity / BungeeCord

JSON
① ② ③ {"mode":"ordered"}
① ∥ ② ∥ ③ {"mode":"multichannel"}

Simple Voice Chat

Server Raknetify2 · UDP 25565 Simple Voice Chat
Fabric / Forge / NeoForge config/raknetify2-voicechat.json · {"enabled":true} config/voicechat/voicechat-server.properties · port=-1
Spigot / Paper config/raknetify2-voicechat.json · {"enabled":true} plugins/voicechat/voicechat-server.properties · port=-1

Simple Voice Chat · Velocity / BungeeCord

PROXY protocol v2 · UDP

Serveradresse trustedProxies RakNet
192.0.2.10 · PROXY v2 / UDP ["192.0.2.10"] ✓
192.0.2.11 · PROXY v2 / UDP ["192.0.2.10"] ✗
Client → RakNet / UDP ["192.0.2.10"] ✗

config/raknetify2-proxy-protocol.json

{"trustedProxies":["192.0.2.10"]}

Minecraft ≥ 1.20.5 · /transfer

  1. Server A · Fabric / Forge / NeoForge · config/raknetify2-transfers.json

    {"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]}
  2. Server B · play.example.com · server.properties → accepts-transfers=true

  3. Server A · /transfer play.example.com 25565 Alex → Client (Alex) → RakNet · play.example.com:25570

PacketOrdering

Minecraft
ui Optionen
entity Skelett
world_interaction Inventar
effects Partikel
chunk Blöcke

PacketOrdering.java

Inkompatible Version!

Fehler melden

Startseite

Raknetify2

Raknetify2 nutzt RakNet über UDP für den Mehrspielermodus von Minecraft. Es verteilt den Datenverkehr auf mehrere Kanäle. Geht auf einem Kanal ein Paket verloren, können die anderen weiterhin Daten übertragen. So kann das Spiel auch dann auf Eingaben reagieren, wenn gerade fehlende Daten nachgeliefert oder Chunks übertragen werden.

Raknetify2 ist ein eigenständig gepflegter Fork von Raknetify, das ursprünglich von ishland entwickelt wurde. Der Fork unterstützt neuere Minecraft-Versionen. Auch die Netzwerkübertragung, die Anbindung an die einzelnen Plattformen und die Kompatibilitätstests werden hier weiter gepflegt.

Erste Schritte

  1. Kompatibilität mit Minecraft und anderen Mods prüfen.
  2. Die passende Datei herunterladen und installieren.
  3. Verbinde dich über eine Adresse wie raknet;play.example.com.

Anleitungen für Serverbetreiber

Wer Mods entwickelt, kann über die Schnittstelle für die Paketreihenfolge angeben, welche Minecraft-Pakete vor oder nach eigenen Nutzdaten verarbeitet werden müssen.

Projektlinks

Raknetify2 steht unter der MIT-Lizenz und behält die ursprünglichen Urheberrechtsvermerke bei. Die Netzwerkimplementierung baut auf Raknetify und netty-raknet auf.

Installation

Lade eine veröffentlichte Version unter GitHub Releases herunter. Prüfe vorher, welche Minecraft-Version und welchen Modloader sie voraussetzt.

Installationsziel Datei Ordner
Fabric-Client oder -Server raknetify2-fabric-*.jar mods
Forge-Client oder -Server raknetify2-forge-*.jar mods
NeoForge-Client oder -Server raknetify2-neoforge-*.jar mods
Spigot- oder Paper-Server raknetify2-spigot-*.jar plugins
Velocity-Proxy raknetify2-velocity-*.jar plugins
BungeeCord-Proxy raknetify2-bungee-*.jar plugins

Beende den Client oder fahre den Server herunter, bevor du die JAR-Datei austauschst. Entferne die ursprüngliche Raknetify-JAR und alle älteren Raknetify2-JARs aus derselben Installation, bevor du die neue Datei einfügst.

Beim Client liegen die Ordner in der Minecraft-Instanz bzw. im Modpack, das du startest. Bei Servern und Proxys liegen sie im jeweiligen Installationsverzeichnis. Falls dein Loader den Ordner noch nicht angelegt hat, erstelle ihn selbst.

Direkt mit einem Server verbinden

  1. Installiere die Client-Mod für deinen Loader.
  2. Installiere die passende Server-Mod oder auf einem kompatiblen Server das Plugin für Spigot/Paper.
  3. Gib UDP-Verbindungen zum Server frei wie unter Firewall und Router einrichten beschrieben.
  4. Starte Client und Server neu.
  5. Füge eine Serveradresse wie raknet;play.example.com oder raknet;play.example.com:25565 hinzu.

Adressen ohne das Präfix raknet; verwenden TCP.

Die Client-Mod allein genügt nicht, um einen fremden Server über RakNet zu erreichen. Der Betreiber muss einen RakNet-Endpunkt bereitstellen. Wenn du nur auf einem fremden Server mitspielst, brauchst du in der Regel keine Portweiterleitung an deinem Router.

Velocity und BungeeCord

Installiere das passende Proxy-Plugin und die Client-Mod. Unter Velocity und BungeeCord findest du die Einstellungen für Listener, die Weiterleitung an Backend-Server, Zugriffsbeschränkungen und die Adresse, mit der sich Spieler verbinden.

Einen eigenen UDP-Port verwenden

Trage bei einem direkten Minecraft-Server das passende Java-Argument aus der Tabelle ein. Für Proxys gelten die Listener-Einstellungen für Velocity und BungeeCord.

Plattform Java-Argument Zulässige Ports
Fabric-, Forge- oder NeoForge-Server -Draknetify.fabric.portOverride=25570 1 bis 65534
Spigot- oder Paper-Server -Draknetify.spigot.portOverride=25570 1 bis 65535

Forge und NeoForge nutzen denselben Listener-Code wie Fabric, deshalb enthält der Name der Einstellung auch dort fabric. Ersetze 25570 durch den gewünschten UDP-Port.

Spigot / Paper ≥ 0.1.0-beta.1.431

Trage das Argument im Java-Startbefehl vor -jar oder bei deinem Hoster im Feld für JVM-Argumente ein. Starte den Server neu und gib UDP auf dem gewählten Port frei. Ist der öffentliche Port ebenfalls 25570, verbinde dich mit raknet;play.example.com:25570. Übersetzt ein Router die Portnummer, verwende in der Client-Adresse den öffentlichen Port. Der bestehende TCP-Port bleibt erhalten.

Unter Spigot/Paper lauscht der UDP-Listener auf derselben lokalen Adresse wie der TCP-Listener von Minecraft. Bei einem ungültigen Wert oder einem belegten UDP-Port kann RakNet nicht starten. Im Startprotokoll siehst du, an welche Adresse und welchen Port der UDP-Listener gebunden ist. Entferne das Argument und starte den Server neu, um wieder die Portnummer des TCP-Listeners zu verwenden.

Du kannst auch am Router oder UDP-Proxy einen anderen öffentlichen UDP-Port freigeben und an den vorhandenen Listener weiterleiten. Die Java-Argumente des Servers brauchst du dafür nicht zu ändern.

Entwicklungsversionen

Öffne unter GitHub Actions einen erfolgreichen Lauf für main und lade das Archiv unter Artifacts herunter. Dafür brauchst du ein GitHub-Konto. Welche JAR-Datei aus dem Archiv du benötigst, steht oben in der Installationstabelle.

Velocity und BungeeCord

Velocity und BungeeCord vermitteln zwischen Spielern und den eigentlichen Minecraft-Servern. Installiere Raknetify2 auf dem Proxy und auf jedem Client, der eine Verbindung über RakNet herstellen soll.

Raknetify2-Client --UDP--> Velocity oder BungeeCord --TCP--> Backend-Server

Für diesen Verbindungsweg brauchen die Backend-Server kein Raknetify2. Sie benötigen weiterhin die Mods, Plugins und Weiterleitungseinstellungen, auf die dein Netzwerk angewiesen ist. Raknetify2 übersetzt keine Minecraft-Protokollversionen und ändert nichts an der Kontoauthentifizierung des Proxys.

Proxy-Plugin installieren

  1. Prüfe zuerst, ob normale TCP-Verbindungen über deinen Proxy funktionieren, auch bei der Anmeldung und beim Wechsel zwischen Backend-Servern.
  2. Halte den Proxy an und lade das passende Plugin von GitHub Releases herunter.
  3. Lege raknetify2-velocity-*-all.jar oder raknetify2-bungee-*-all.jar im Ordner plugins des Proxys ab. Entferne ältere Raknetify- oder Raknetify2-Plugins aus diesem Ordner.
  4. Installiere die passende Client-Mod von Raknetify2 wie in der Installationsanleitung beschrieben.
  5. Prüfe die folgenden Listener-Einstellungen, starte den Proxy neu und suche im Protokoll nach Fehlern des RakNet-Listeners.
  6. Lass öffentlichen UDP-Verkehr zum Proxy zu und beschränke den Zugriff auf die Spielports der Backend-Server wie unter Firewall und Router einrichten beschrieben.

Verwende auf Client und Proxy zueinander passende Raknetify2-Versionen. Lies unter Kompatibilität nach, bevor du verschiedene Versionen kombinierst.

Velocity

In velocity.toml legt bind fest, auf welcher Adresse und welchem TCP-Port Velocity für Minecraft lauscht. Raknetify2 nutzt normalerweise dieselbe Portnummer für UDP. Die Einträge unter [servers] müssen weiterhin auf die TCP-Adressen der Backend-Server zeigen. Details stehen in Velocitys Konfigurationsreferenz.

Für einen separaten UDP-Port füge dieses JVM-Argument im Startbefehl von Velocity vor -jar ein:

-Draknetify.velocity.portOverride=25570

Ersetze 25570 durch den gewünschten Port. Damit änderst du den UDP-Port für RakNet. Der TCP-Port von Velocity und die Backend-Adressen bleiben erhalten. Starte Velocity anschließend neu.

Richte die Weiterleitung der Spielerdaten sowohl in Velocity als auch auf den Backend-Servern ein. Unterstützt das Backend die moderne Weiterleitung, verwende diese und halte den gemeinsamen Schlüssel geheim. Folge der Anleitung für dein Backend in Velocitys Dokumentation zur Weiterleitung von Spielerdaten. Beschränke den Zugriff auf das Backend weiterhin über die Firewall.

BungeeCord

In BungeeCords config.yml gibt host für jeden Eintrag unter listeners die Adresse und den TCP-Port des Minecraft-Listeners an. Raknetify2 nutzt normalerweise dieselbe Portnummer für UDP. Unter servers stehen die TCP-Adressen der Backend-Server. Einzelheiten findest du in der Konfigurationsanleitung für BungeeCord.

Für einen separaten UDP-Port füge dieses JVM-Argument im Startbefehl von BungeeCord vor -jar ein:

-Draknetify.bungee.portOverride=25570

Die Einstellung gilt für den ganzen Proxy-Prozess. Wenn mehrere Minecraft-Listener eingerichtet sind, prüfe im Startprotokoll die tatsächlichen RakNet-Endpunkte, bevor du Firewall-Regeln anlegst. Starte BungeeCord nach der Änderung neu.

Lass die Kontoauthentifizierung am Proxy eingeschaltet. Für Spigot-Backends beschreibt BungeeCords Anleitung zur IP-Weiterleitung die Kombination aus ip_forward: true auf dem Proxy und settings.bungeecord: true auf dem Backend. Die Weiterleitung allein verhindert keine direkten Verbindungen zum Backend. Beschränke den Zugriff wie in der Firewall-Anleitung beschrieben.

Adresse für Spieler festlegen

Beide Proxy-Einstellungen akzeptieren Ports von 1 bis 65534. Ungültige Werte werden ignoriert. Prüfe deshalb im Startprotokoll den tatsächlich gebundenen UDP-Port. Entferne das Argument und starte den Proxy neu, um wieder dieselbe Portnummer wie der Minecraft-Listener zu verwenden.

Spieler verbinden sich mit dem öffentlichen Hostnamen und dem UDP-Port des Proxys, etwa über raknet;play.example.com:25570. Setzt ein Router die Portnummer um, verwende in der Client-Adresse den öffentlichen UDP-Port. Adressen ohne raknet; verwenden weiterhin den TCP-Listener des Proxys.

Weise Query, Geyser und anderen UDP-Diensten jeweils eigene UDP-Ports zu. Einen Konflikt um einen UDP-Socket behebst du nicht durch Ändern des TCP-Ports.

Sprachchat und weitere UDP-Weiterleitungen

Für Velocity und BungeeCord benötigt Simple Voice Chat ein eigenes Proxy-Plugin und einen eigenen UDP-Port. Folge der Anleitung für Sprachchat-Proxys.

Wenn vor deinem Minecraft-Proxy ein separates UDP-Relay sitzt, das Header des PROXY-Protokolls v2 sendet, richte Raknetify2 wie unter UDP-Weiterleitung und PROXY-Protokoll beschrieben ein. Die Installation von Velocity oder BungeeCord allein erfordert diese Einstellung nicht.

Verbindung prüfen

Teste mit einem Raknetify2-Client außerhalb deines lokalen Netzes. Verbinde dich über den Proxy, wechsle zwischen deinen Backend-Servern und prüfe, ob Spieleridentität und Berechtigungen erhalten bleiben.

  • Funktioniert TCP über den Proxy, während RakNet in eine Zeitüberschreitung läuft, prüfe den UDP-Listener des Proxys, den öffentlichen Port, die IPv4- und IPv6-Routen und die Firewall-Regeln.
  • Scheitern beide Verbindungsarten beim Übergang vom Proxy zum Backend, prüfe dessen TCP-Adresse, Zugriffsregeln und die Weiterleitung der Spielerdaten.
  • Meldet der Proxy einen belegten UDP-Port, prüfe, ob Query, Geyser, ein Sprachchat-Proxy oder ein anderer Prozess ihn verwendet.

Füge einer Fehlermeldung die Protokolle von Proxy und Backend zum selben Verbindungsversuch bei. Unter Fehlerbehebung steht, welche Versionsangaben dazugehören.

Firewall und Router einrichten

Diese Anleitung richtet sich an Serverbetreiber. Raknetify2 braucht eine funktionierende UDP-Verbindung zu dem Server oder Proxy, der RakNet-Verbindungen annimmt. Standardmäßig nutzt der Listener dieselbe Portnummer wie der TCP-Listener von Minecraft.

Im selben lokalen Netz reicht die lokale Adresse des Servers. Seine Firewall muss UDP zulassen. Eine Portweiterleitung am Router ist nötig, wenn Verbindungen aus dem Internet über dessen IPv4-NAT laufen.

Ziel und Port wählen

Direkt erreichbarer Server

Leite öffentliche UDP-Verbindungen an den Rechner mit dem Minecraft-Server und Raknetify2 weiter. Ziel ist der UDP-Port des RakNet-Listeners. Gib diesen Port in der Firewall des Rechners frei. Behalte den bisherigen TCP-Zugang für gewöhnliche Minecraft-Verbindungen bei.

Lauscht Raknetify2 beispielsweise auf UDP-Port 25570, leite den öffentlichen UDP-Port an die lokale Serveradresse und Port 25570 weiter. Der TCP-Port des Servers kann bei 25565 bleiben. Einen anderen UDP-Port legst du in den Listener-Einstellungen für direkte Serververbindungen fest.

Velocity oder BungeeCord

Leite öffentliche UDP-Verbindungen an den Rechner weiter, auf dem Velocity oder BungeeCord mit dem Raknetify2-Plugin läuft. Ziel der Weiterleitung ist der UDP-Listener des Proxys für RakNet. Behalte den öffentlichen TCP-Zugang zum Proxy für gewöhnliche Minecraft-Verbindungen bei.

Vom Proxy zu den Backend-Servern läuft Minecraft über TCP. Wenn du Raknetify2 auf dem Proxy installierst, brauchst du auf den Backends keine UDP-Spielports für die Spieler zu öffnen.

Verbindung Benötigter Zugriff
Spieler zum Proxy Öffentlicher UDP-Zugriff auf den RakNet-Listener sowie der bestehende öffentliche TCP-Listener
Proxy zu den Backend-Servern TCP-Ports der Minecraft-Backends, nur von den vorgesehenen Proxy-Rechnern aus erreichbar
Spieler direkt zu den Spielports der Backends Zugriff gesperrt lassen, auch über IPv6

Laufen Proxy und Backends direkt auf einem dedizierten Rechner unter deiner Kontrolle, können die Backend-Listener Loopback-Adressen nutzen. Trage diese Adressen im Proxy ein. Bei getrennten Rechnern beschränke den TCP-Zugriff auf die Backends per Firewall oder über ein isoliertes privates Netz auf die Proxy-Rechner. Bei Containern und gemieteten Servern müssen entsprechende Beschränkungen zur jeweiligen Netzstruktur passen. Siehe Backends mit Velocity absichern und die Firewall-Anleitung für BungeeCord.

Die Weiterleitung der Spielerdaten und die Firewall-Regeln ergänzen sich. Wer direkt auf das Backend kommt, kann die Anmeldeprüfung des Proxys umgehen. Die Installation des Plugins, Weiterleitungseinstellungen und abweichende UDP-Ports beschreibt Velocity und BungeeCord.

Öffentliche und lokale Portnummern

Wenn ein Router die Portnummer umsetzt, können öffentlicher Port und Listener-Port voneinander abweichen:

Einstellung Welcher Port gehört hierher?
Serveradresse im Client Öffentlicher UDP-Port
Externer Port der Weiterleitungsregel im Router Öffentlicher UDP-Port
Interner Port der Weiterleitungsregel im Router UDP-Port des RakNet-Listeners
Lokaler Port in der Firewall des Rechners UDP-Port des RakNet-Listeners

Portweiterleitung für IPv4

Wenn dein Server hinter einem IPv4-Router steht:

  1. Ermittle die lokale IPv4-Adresse des Rechners, der die RakNet-Verbindungen annimmt. Richte eine DHCP-Reservierung oder eine passende statische Adresse ein, damit die Weiterleitung auch später auf diesen Rechner zeigt.
  2. Lege eine UDP-Weiterleitung für den öffentlichen Port an, den die Spieler verwenden sollen.
  3. Trage als Ziel die lokale Adresse des Rechners und den UDP-Port des RakNet-Listeners ein.
  4. Erlaube in der Firewall des Rechners eingehenden UDP-Verkehr zum Listener-Port.

Lauscht der Server beispielsweise auf UDP-Port 25565, kann die Regel den öffentlichen Port 25565 an die Zieladresse 192.168.1.100 und den Zielport 25565 weiterleiten. Ersetze die Beispieladresse durch die tatsächliche lokale Adresse deines Servers.

Lass die vorhandene TCP-Regel für gewöhnliche Minecraft-Verbindungen bestehen. Sie leitet keinen UDP-Verkehr weiter.

Wenn die Weiterleitung trotzdem nicht funktioniert

Prüfe, ob vor deinem Router bereits ein weiterer Router oder dein Internetanbieter NAT verwendet. Bei zwei eigenen Routern musst du beide einrichten. Nutzt der Anbieter Carrier-Grade NAT, frage nach einer öffentlichen IPv4-Adresse oder verwende einen Hoster bzw. Tunnel, der eingehenden UDP-Verkehr unterstützt. Die Portweiterleitung deines Routers hat keinen Einfluss auf das NAT deines Anbieters. TP-Link erklärt die Voraussetzungen für die öffentliche WAN-Adresse.

Firewall-Regeln für IPv6

Gib den gewählten UDP-Port sowohl in der IPv6-Firewall des Routers als auch in der Firewall des Rechners frei. Ziel ist die IPv6-Adresse des Rechners, der die RakNet-Verbindungen annimmt.

Prüfe, ob die IPv6-Adresse des Hostnamens auf diesen Rechner zeigt. Ändert sich seine IPv6-Adresse, aktualisiere den DNS-Eintrag und alle Firewall-Regeln, die sich ausdrücklich auf die alte Adresse beziehen.

Veröffentlicht ein Hostname sowohl IPv4- als auch IPv6-Adressen, muss jede angegebene Adresse erreichbar sein. Prüfe beide Regelsätze, wenn manche Spieler beitreten können und andere nicht.

Ändert die IPv4-Weiterleitung die Portnummer, muss der von den Spielern eingegebene Port auch den IPv6-Listener erreichen. Eine Portumsetzung für IPv4 richtet keinen IPv6-Zugang ein.

Hoster und Tunnel

Der Hoster oder Tunnel muss auf der Adresse und dem öffentlichen Port, den du den Spielern gibst, UDP unterstützen. Prüfe die zugewiesenen Ports und die Firewall-Regeln des Anbieters ebenso wie die Firewall des Servers.

Leitet ein zusätzlicher UDP-Proxy die Client-Adressen per PROXY-Protokoll v2 weiter, folge der Anleitung UDP-Weiterleitung und PROXY-Protokoll. Beschränke den Zugriff auf den empfangenden UDP-Listener auf den vertrauenswürdigen Proxy.

Verbindung prüfen

Verbinde dich von außerhalb des lokalen Servernetzes mit einem aktuellen Raknetify2-Client, etwa über raknet;play.example.com:25565. Gib dabei den öffentlichen UDP-Port an.

Prüfe den Verbindungsweg mit einer echten RakNet-Verbindung. Bleibt ein UDP-Scan ohne Antwort, ist das Ergebnis unter Umständen nicht eindeutig: Auch ein funktionierender Dienst kann unbekannte Testpakete verwerfen. Näheres erklärt die Dokumentation zu UDP-Scans mit Nmap.

Eine erfolgreiche TCP-Verbindung bestätigt nur den TCP-Weg. Läuft RakNet in eine Zeitüberschreitung, prüfe Listener, Weiterleitungsziel, UDP-Port und Firewall-Regeln anhand der Anleitung zur Fehlerbehebung.

Kompatibilität

Prüfe die Kompatibilität für die Version, die du tatsächlich herunterlädst. Der Entwicklungszweig kann bereits Kombinationen unterstützen, für die noch keine fertige Version erschienen ist.

Minecraft- und Java-Versionen

Minecraft- und Java-Versionen · English

Raknetify2 nennt die mindestens benötigte Java-Version. Minecraft oder der Loader können eine neuere Laufzeitumgebung verlangen. Wähle eine Java-Version, die alle drei Anforderungen erfüllt.

Versionen auf Client und Server

Verwende möglichst dieselbe Raknetify2-Version auf dem Client und dem Server oder Proxy, der die Verbindung annimmt. Lies die Versionshinweise, bevor du unterschiedliche Versionen kombinierst. Verschlüsselte RakNet-Verbindungen setzen auf beiden Seiten Unterstützung für das Protokoll mit authentifizierter Verschlüsselung voraus. Das ursprüngliche Raknetify und ältere Raknetify2-Versionen ohne dieses Protokoll können solche verschlüsselten Verbindungen zu aktualisierten Gegenstellen nicht herstellen.

Raknetify2 überträgt das vorhandene Spielprotokoll von Minecraft. Um unterschiedliche Minecraft-Versionen zu verbinden, brauchst du zusätzlich eine passende Protokollübersetzung.

Andere Mods

Andere Mods · English

Tritt der Fehler in einem größeren Modpack auf, folge der Anleitung zur Fehlerbehebung. Gib in der Meldung die genauen Versionen aller Mods an.

Modus mit fester Paketreihenfolge

Modus mit fester Paketreihenfolge

Normalerweise können die Kanäle von Raknetify2 unabhängig weiterarbeiten, wenn einer auf fehlende Daten wartet. Im Modus mit fester Reihenfolge laufen alle Minecraft-Pakete pro Richtung über einen einzigen Kanal. Fehlt ein Paket, warten alle nachfolgenden Pakete derselben Richtung, bis es erneut zugestellt wurde. Damit bleibt die Reihenfolge erhalten, die manche Anti-Cheat-Programme erwarten. Während dieser Wartezeit steht allerdings auch der übrige Spielverkehr in derselben Richtung still.

Feste Paketreihenfolge einschalten

  1. Installiere eine Raknetify2-Version mit Unterstützung für diesen Modus auf dem Server oder Proxy, der RakNet-Verbindungen annimmt, und auf allen RakNet-Clients.

  2. Erstelle die Datei config/raknetify2-compatibility.json im Arbeitsverzeichnis dieses Servers oder Proxys. Lege das Verzeichnis config an, falls es noch fehlt.

  3. Trage Folgendes ein:

    {"mode": "ordered"}
  4. Starte den Server oder Proxy neu.

Clients übernehmen die Einstellung des Servers automatisch. Spieler brauchen weder eine eigene Konfigurationsdatei noch eine andere RakNet-Serveradresse.

Alle Minecraft-Pakete laufen pro Richtung über einen einzigen zuverlässigen Kanal mit fester Reihenfolge. Das gilt auch für die Begrenzungsmarkierungen von Paketbündeln und für Weltwechsel.

Betrieb mit Proxy

Verbinden sich Spieler über Velocity oder BungeeCord, richte die feste Paketreihenfolge auf diesem Proxy ein, auch wenn das Anti-Cheat-Programm auf einem Backend-Server läuft.

Die Einstellung bleibt beim Wechsel des Backend-Servers wirksam. Bei fester Paketreihenfolge leitet der Proxy Keepalive-Anfragen des Backends an den tatsächlichen Client weiter, statt sie selbst zu beantworten.

Einstellung prüfen

Bei der ersten RakNet-Verbindung meldet die Konsole:

Raknetify2 compatibility: ordered (updated clients required, genuine acknowledgements)

Nach erfolgreicher Aushandlung protokolliert sie außerdem ordered compatibility negotiated und die Adresse der Gegenstelle.

Lass die Anti-Cheat-Prüfungen eingeschaltet und teste deine konkrete Konfiguration.

Ältere Clients

RakNet-Clients ohne Unterstützung für die feste Paketreihenfolge können keinem Server beitreten, der sie voraussetzt. Aktualisiere Raknetify2 auf diesen Clients oder stelle eine gewöhnliche TCP-Verbindung zur Adresse und zum Port des Servers oder Proxys her. Lass dabei raknet; weg.

Zurück zum Mehrkanalbetrieb

Ändere den Dateiinhalt wie folgt:

{"mode": "multichannel"}

Starte anschließend den Server oder Proxy neu. Du kannst die Datei auch löschen. Nach dem Neustart ist der Mehrkanalbetrieb dann ebenfalls wieder aktiv.

Probleme mit der Konfiguration

Die Datei muss genau eine Einstellung namens mode mit dem Wert "ordered" oder "multichannel" enthalten. Achte auf Groß- und Kleinschreibung.

Ist die Konfiguration ungültig oder nicht lesbar, werden RakNet-Verbindungen abgewiesen. Korrigiere die Datei und starte den Prozess neu.

Meldet die Konsole weiterhin multichannel, prüfe, ob die Datei im Arbeitsverzeichnis genau des Servers oder Proxys liegt, der die RakNet-Verbindung annimmt. Starte diesen Prozess neu.

Automatische Serverwechsel

Server mit Fabric, Forge oder NeoForge können beim Wechsel zu einem eingetragenen Ziel RakNet wählen, wenn der Client diese Funktion unterstützt. Dafür nutzen sie den Servertransfer von Minecraft, den es seit Java Edition 1.20.5 gibt. Prüfe für beide Seiten, ob deine Raknetify2-Version die jeweilige Minecraft-Version und den Loader unterstützt.

Installiere Raknetify2 auf dem sendenden Server und auf dem Client. Das Ziel muss einen kompatiblen RakNet-Listener bereitstellen und eingehende Minecraft-Transfers annehmen.

Diese Konfiguration gilt für Transfers, die von Servern mit den drei oben genannten Modloadern ausgehen. Die Plugins für Spigot/Paper, Velocity und BungeeCord lesen diese Transferdatei nicht.

Sendenden Server einrichten

Erstelle im Verzeichnis des sendenden Servers die Datei config/raknetify2-transfers.json:

{
  "destinations": [
    {
      "host": "play.example.com",
      "tcpPort": 25565,
      "udpPort": 25570
    }
  ]
}

Ersetze Hostnamen und Ports im Beispiel durch die Werte deines Ziels. Starte anschließend den sendenden Server neu. Weitere Ziele trägst du im selben Array ein.

Feld Bedeutung
host Hostname oder IP-Adresse des Ziels, ohne Transportpräfix und ohne Port
tcpPort Zielport der ursprünglichen Transferanfrage
udpPort Öffentlicher RakNet-Port, zu dem der weitergeleitete Client eine Verbindung herstellen soll

TCP und UDP dürfen dieselbe Portnummer verwenden. Setzt ein Router den UDP-Port um, trage hier den öffentlichen Port ein. Schreibe Portnummern als JSON-Zahlen.

Sende Transfers an den gewöhnlichen Hostnamen und TCP-Port des Ziels. Raknetify2 prüft, ob der Client Unterstützung für automatische Transfers meldet. Unterstützt er sie und passt das Ziel zu einem Eintrag, wird der konfigurierte UDP-Port gewählt. Für andere Clients und nicht eingetragene Ziele bleibt die ursprüngliche Transferadresse erhalten.

Für den Abgleich zählen Hostname und TCP-Port der Transferanfrage. Groß- und Kleinschreibung, ein abschließender DNS-Punkt und gleichwertige IPv6-Schreibweisen werden vereinheitlicht. Es erfolgt keine DNS-Abfrage. Zwei verschiedene Hostnamen brauchen daher auch dann eigene Einträge, wenn sie auf dieselbe Adresse verweisen. Platzhalter wie Sternchen werden nicht unterstützt.

Ziel einrichten

Verwendet das Ziel die Minecraft-Datei server.properties, setze dort accepts-transfers=true und starte den Server neu. Ziel-Proxys können dafür eine eigene Einstellung haben. Minecraft lehnt eingehende Transfers standardmäßig ab, auch wenn Spieler dem Server direkt beitreten können.

Der RakNet-Listener des Ziels, die Weiterleitung des öffentlichen UDP-Ports und die Firewall des Rechners müssen bereits eingerichtet sein. Die Transferdatei auf dem sendenden Server legt fest, welche Adresse der Client erhält.

Prüfe bei einem Hostnamen mit IPv4- und IPv6-Adresse beide Verbindungswege zum Ziel. Teste eine direkte RakNet-Verbindung, bevor du nach Problemen mit dem automatischen Serverwechsel suchst.

Lass Anmelde- und Zugangskontrollen am Ziel eingeschaltet. Die Einstellung gewährt Spielern keinen Zugang und ersetzt die Authentifizierung des Servers nicht.

Konfigurationsfehler und Deaktivierung

Fehlende oder unbekannte Felder, ungültige Ports und doppelt eingetragene Ziele führen beim Start zu einem Konfigurationsfehler. Suche den Fehler im Serverprotokoll, korrigiere die JSON-Datei und starte den Server neu.

Um die automatische Auswahl abzuschalten, entferne die Konfigurationsdatei oder trage {"destinations": []} ein. Starte dann den sendenden Server neu. Seine Transferanfragen verwenden anschließend die ursprünglichen Adressen.

UDP-Weiterleitung und PROXY-Protokoll

Ein UDP-Proxy kann RakNet-Verkehr weiterleiten und die ursprüngliche Client-Adresse per PROXY-Protokoll v2 mitgeben. Schalte die Funktion ein, wenn ein vorgeschalteter UDP-Proxy solche Header an deinen Listener sendet. Für eine gewöhnliche Portweiterleitung am Router ist sie nicht erforderlich.

Erstelle auf dem Server oder Minecraft-Proxy, der den weitergeleiteten UDP-Verkehr empfängt, die Datei config/raknetify2-proxy-protocol.json:

{
  "trustedProxies": ["192.0.2.10"]
}

Ersetze das Beispiel durch die tatsächliche Quell-IP deines UDP-Proxys oder einen von dir kontrollierten CIDR-Bereich. Entscheidend ist die Adresse, die der empfangende Listener nach einem eventuell dazwischenliegenden NAT sieht. Erlaubt sind IPv4- und IPv6-Adressen in Zahlenschreibweise. DNS-Namen sind ungültig. Starte den empfangenden Server oder Proxy neu.

Richte den vorgeschalteten Proxy so ein, dass er für UDP Header des PROXY-Protokolls v2 sendet. Raknetify2 akzeptiert weitergeleitete Client-Adressen nur aus den eingetragenen Quellen. Solange diese Einstellung aktiv ist, werden direkte RakNet-Verbindungen ohne solche Header abgewiesen. Für den TCP-Listener gilt weiterhin seine bestehende Konfiguration.

Vertrauen und Zugriffsschutz

Jeder eingetragene Proxy darf Client-Adressen vorgeben. Beschränke deshalb in der Firewall des Backends den Zugriff auf dessen UDP-Port auf die vorgesehenen Proxys. Halte die freigegebenen Adressbereiche so klein, wie dein Netz es zulässt.

Die Datei darf nur trustedProxies enthalten und muss mindestens einen Eintrag haben. Ein leeres Array ist ungültig. Bei einer ungültigen Datei startet der RakNet-Listener nicht.

Entferne die Datei und starte den Listener neu, um wieder direkte UDP-Verbindungen anzunehmen. Passe zugleich die Weiterleitung des vorgeschalteten Proxys und die Firewall-Regeln an den neuen Verbindungsweg an.

Scheitern Verbindungen nach dem Einschalten, prüfe die tatsächliche Quelladresse des Proxys am Backend, den freigegebenen Adressbereich und ob der Proxy für UDP Header des PROXY-Protokolls v2 sendet.

Die Installation eines Minecraft-Proxys und die Einrichtung der Backends beschreibt Velocity und BungeeCord.

Simple Voice Chat

Auf Fabric, Forge, NeoForge, Spigot und Paper kann Raknetify2 den UDP-Listener des Servers gemeinsam mit Simple Voice Chat verwenden.

Installiere Simple Voice Chat auf dem Server und auf allen Clients, die Sprachchat nutzen möchten. Für die übrigen Einstellungen folge der Serveranleitung von Simple Voice Chat.

Die Konfigurationsdatei von Raknetify2 gehört auch auf Spigot/Paper in das oberste Verzeichnis config des Servers. Die Datei von Simple Voice Chat selbst bleibt im unten angegebenen plattformspezifischen Ordner.

Spielport gemeinsam nutzen

  1. Erstelle im Serververzeichnis die Datei config/raknetify2-voicechat.json mit folgendem Inhalt:

    {"enabled": true}
  2. Setze in der Serverkonfiguration von Simple Voice Chat port=-1. Bei einem Server mit Modloader ist das die Datei config/voicechat/voicechat-server.properties, unter Spigot/Paper die Datei plugins/voicechat/voicechat-server.properties.

  3. Lass bind_address leer, wenn es genau einen passenden RakNet-Listener gibt. Lauschen mehrere auf diesem UDP-Port, gib die lokale Adresse des Listeners an, den beide Dienste nutzen sollen.

  4. Starte den Server neu und führe für einen verbundenen Spieler /voicechat test <PLAYERNAME> aus.

Nutzt der RakNet-Listener einen anderen Port als Minecraft, setze port für den Sprachchat ausdrücklich auf diesen lokalen UDP-Port statt auf -1. Lauscht RakNet auf dem lokalen UDP-Port 25570, trage also port=25570 ein.

Setze voice_host, wenn Clients eine abweichende öffentliche Adresse oder Portnummer benötigen. Leitet ein Router den öffentlichen UDP-Port 25580 an den lokalen UDP-Port 25570 weiter, verwende port=25570 und voice_host=play.example.com:25580. Die öffentliche Adresse gehört in voice_host. Mit bind_address wählst du einen lokalen Listener aus.

Raknetify2 stellt den gemeinsamen UDP-Socket über die API von Simple Voice Chat bereit. Simple Voice Chat übernimmt die Authentifizierung und Verschlüsselung für den Sprachchat. Spieler können ihn unabhängig davon nutzen, ob ihre Spielverbindung über TCP oder RakNet läuft.

Weitere UDP-Dienste und Proxys

Weise Query und Geyser jeweils eigene UDP-Ports zu. Der gemeinsame Socket wird nur für Simple Voice Chat unterstützt.

Unter Velocity oder BungeeCord nutzt die Integration keinen Socket gemeinsam mit dem Sprachchat-Proxy. Folge der Proxy-Anleitung für Simple Voice Chat und gib dem Sprachchat-Proxy einen eigenen UDP-Port. Beim offiziellen Proxy-Plugin gehört eine abweichende öffentliche Adresse für voice_host in die Sprachchat-Konfiguration des Proxys. Das Plugin ignoriert die voice_host-Einstellungen der Backends.

Bei einem gewöhnlichen UDP-Tunnel gib unter voice_host den öffentlichen Hostnamen und den UDP-Port an, der an diesen Server weitergeleitet wird.

Gemeinsame Nutzung abschalten oder Socket-Konflikt beheben

Steht im Protokoll No RakNet listener matches the voice bind address and port, prüfe, ob RakNet erfolgreich gestartet ist. Der Sprachchat muss denselben Port und dieselbe lokale Bindeadresse wie der Listener verwenden.

Bei der Meldung Multiple RakNet listeners match the voice bind address gib unter bind_address eine konkrete passende lokale Adresse an und starte den Server neu.

Nur ein Plugin kann Simple Voice Chat seinen UDP-Socket bereitstellen. Meldet der Server beim Start, dass das bereits ein anderes Plugin tut, entscheide dich für eine der beiden Integrationen.

Zum Abschalten der Raknetify2-Integration setze in ihrer Sprachchat-Konfiguration {"enabled": false} oder entferne die Datei. Gib Simple Voice Chat einen eigenen UDP-Port, passe Firewall- oder Weiterleitungsregeln entsprechend an und starte den Server neu.

Fehlerbehebung

TCP funktioniert, aber die RakNet-Verbindung läuft in eine Zeitüberschreitung

Prüfe diese Punkte der Reihe nach:

  1. Auf dem Client ist die zu seinem Loader und seiner Minecraft-Version passende Raknetify2-Mod installiert.
  2. Auf dem Server oder Proxy, der die Verbindung annimmt, ist Raknetify2 installiert. Der Listener ist fehlerfrei gestartet.
  3. Die Adresse beginnt mit raknet; und enthält den öffentlichen UDP-Port.
  4. Hoster, Router und die Firewall des Rechners lassen UDP auf diesem Port zu.
  5. Die IPv4- und IPv6-Adressen des Hostnamens zeigen auf den richtigen Rechner. Die Firewall-Regeln lassen beide Verbindungswege zu.

Eine erfolgreiche TCP-Verbindung bestätigt nur den TCP-Weg. Prüfe die UDP-Weiterleitung und den IPv6-Zugang wie unter Firewall und Router einrichten beschrieben. Ist das PROXY-Protokoll eingeschaltet, müssen Clients über einen der als vertrauenswürdig eingetragenen Proxys zum Listener gelangen.

Adresse bereits belegt

Suche nach einem weiteren Prozess, der den UDP-Port verwendet. Query, Geyser und andere UDP-Dienste brauchen jeweils eigene Ports. Mit Simple Voice Chat kannst du den Port gemeinsam nutzen.

Einen anderen lokalen UDP-Port kannst du in den Listener-Einstellungen für direkte Serververbindungen oder den Einstellungen für Velocity und BungeeCord festlegen. Beachte die erforderliche Version für Spigot/Paper. Nur den öffentlichen Port am Router zu ändern behebt den Konflikt um den lokalen Socket nicht.

Direkter Beitritt funktioniert, Serverwechsel scheitern

Verbinde dich über die raknet;-Adresse direkt mit dem Ziel. Scheitert schon dieser Versuch, behebe zuerst das Problem mit dem Listener oder dem Verbindungsweg zum Ziel.

Klappt die direkte Verbindung, prüfe, ob das Ziel eingehende Transfers annimmt. Ein Minecraft-Server mit server.properties braucht accepts-transfers=true. Ein direkter Beitritt prüft diese Einstellung nicht.

Vergleiche dann den Hostnamen und den TCP-Port der Transferanfrage mit config/raknetify2-transfers.json auf dem sendenden Server. Prüfe, ob die Datei nach einem Neustart geladen wurde und ob der Client automatische RakNet-Transfers unterstützt. Siehe Automatische Serverwechsel.

Verschlüsselungs- oder Protokollfehler

Prüfe die Raknetify2-Versionen an beiden Enden der Verbindung. Ändert eine Version das verschlüsselte Protokoll, aktualisiere Client und Server bzw. Proxy gemeinsam. Behalte bei der Fehlersuche die Authentifizierungseinstellungen des Servers bei.

Fehler im Zusammenspiel mit anderen Mods

Halte fest, wodurch der Fehler ausgelöst wird: etwa beim Öffnen eines Inventars, Empfangen eines Ressourcenpakets, Wechseln der Welt oder Erzeugen eines Objekts. Vergleiche denselben Vorgang über TCP und RakNet, möglichst in einer separaten Testinstallation.

Bei manchen eigenen Nutzdaten kommt es darauf an, in welcher Reihenfolge sie relativ zu Vanilla-Paketen eintreffen. Wer eine Mod entwickelt, kann solche Abhängigkeiten über die Schnittstelle für die Paketreihenfolge angeben.

Fehler melden

Öffne eine Meldung im Issue-Tracker von Raknetify2 und gib Folgendes an:

  • Minecraft-, Java-, Loader- und Raknetify2-Versionen auf beiden Seiten.
  • Versionen der Server- und Proxy-Software, auch von vorgeschalteten UDP-Proxys.
  • Alle weiteren installierten Mods mit ihren Versionen.
  • Schritte, mit denen sich der Fehler nachstellen lässt, und welches Ergebnis du erwartet hast.
  • Ob dieselben Schritte über TCP funktionieren.
  • Passende Ausschnitte aus Client-, Server- und Proxy-Protokollen desselben Verbindungsversuchs.

Entferne vor dem Hochladen Zugriffstoken, Passwörter und andere private Angaben aus den Protokollen. Lass die für die Diagnose nötigen Fehlermeldungen und Stacktraces stehen.

Anbindung eigener Mods

Mit Raknetify2 können Mods angeben, bei welchen Minecraft-Paketen die Reihenfolge gegenüber ihren eigenen Nutzdaten erhalten bleiben muss. Das ist wichtig, wenn die Verarbeitung beispielsweise ein Objekt, einen Chunk, ein Inventar oder einen anderen Zustand voraussetzt, den erst ein früheres Paket erzeugt.

Gruppen für die Paketreihenfolge

Gruppe Zugehöriger Datenverkehr
ui Weltunabhängige Menüs und Interaktionen
entity Erzeugen, Entfernen und Bewegen von Objekten
world_interaction Inventare und andere weltabhängige Interaktionen
effects Geräusche und Partikel
chunk Aktualisierungen von Gelände, Blöcken und Beleuchtung

Innerhalb jedes Kanals werden die Pakete zuverlässig in der richtigen Reihenfolge zugestellt. Bei Paketen aus verschiedenen Gruppen kann sich die Reihenfolge zueinander ändern. Wähle die Gruppe, zu der die Abhängigkeit deiner Nutzdaten passt.

Optionale Anbindung für Fabric

Trage in der fabric.mod.json deiner Mod einen Provider für den Einstiegspunkt raknetify:packet_channels ein. Der Provider implementiert Consumer<BiConsumer<String, String>> mit Typen aus dem JDK. Er erhält eine Registrierungsfunktion, die die Kennung eigener Nutzdaten und die zugehörige Gruppe entgegennimmt.

Ergänze deine bestehenden Metadaten um den folgenden Eintrag. Ersetze den Klassennamen durch den vollständig qualifizierten Namen deines Providers:

{
  "entrypoints": {
    "raknetify:packet_channels": [
      "com.example.mod.OrderingProvider"
    ]
  }
}

Das Beispiel zeigt nur einen Ausschnitt. Behalte den restlichen Inhalt deiner fabric.mod.json einschließlich vorhandener Einstiegspunkte bei.

Eine Mod, die Objektbewegungen erweitert, könnte beispielsweise example:entity_path in der Gruppe entity registrieren. Die Dokumentation der PacketOrdering-API enthält die Implementierung des Providers.

Ist Raknetify2 nicht installiert, ruft Fabric diesen Einstiegspunkt nicht auf. Registriere Kennungen und Gruppen während der Initialisierung, ohne vorauszusetzen, dass die Initialisierung einer anderen Mod schon abgeschlossen ist.

Ablauf der Registrierung

Ist Raknetify2 verfügbar, können Forge- und NeoForge-Mods sowie Server- und Proxy-Plugins während ihrer Initialisierung PacketOrdering.register(identifier, group) aufrufen. Die Klasse heißt com.ishland.raknetify.api.PacketOrdering. Registriere die Regeln, bevor der Server Spielerverbindungen annimmt. Bei optionaler Integration darf dein Code keine Raknetify2-Klassen laden, wenn die Abhängigkeit fehlt.

Neue Regeln gelten für neue Verbindungen. Bestehende Verbindungen behalten die Regeln vom Verbindungsaufbau. Eine identische Registrierung darf wiederholt werden. Widersprüchliche Gruppen für dieselbe Kennung werden abgewiesen.

Nutzdaten-Kennungen brauchen einen gültigen eigenen Namensraum. Der Namensraum minecraft ist reserviert. Pro Endpunkt sind insgesamt 128 Regeln zulässig, einschließlich eingebauter Regeln und Registrierungen anderer Mods. Kennungen dürfen bis zu 255 ASCII-Zeichen lang sein und müssen der Namensraum-Syntax der API entsprechen.

Aktualisierte RakNet-Gegenstellen tauschen ihre Regeln beim Verbindungsaufbau aus. Ein Server oder Proxy kann die Regel der Gegenstelle nutzen, wenn er für diese Nutzdaten keine eigene hat. Lokale Regeln haben Vorrang. Die Regeln der Gegenstelle gelten nur für die jeweilige Verbindung.

UDP-Proxys

Informationen zu UDP-Relays und weitergeleiteten Client-Adressen findest du unter UDP-Weiterleitung und PROXY-Protokoll.

Wie du einen Minecraft-Proxy einrichtest, beschreibt Velocity und BungeeCord.

English (US)

Clone this wiki locally