Minecraft Server Proxy einrichten: BungeeCord und Velocity für ein Multi-Server-Netzwerk konfigurieren
# Minecraft Server Proxy einrichten: BungeeCord und Velocity für ein Multi-Server-Netzwerk konfigurieren
Einen einzelnen Minecraft-Server zu betreiben ist unkompliziert — aber wenn du mehrere Spielmodi hosten, Hunderte von Spielern routen oder deine Backend-Server schützen möchtest, brauchst du eine Proxy-Schicht. BungeeCord und Velocity sind die zwei dominierenden Lösungen. Die richtige Wahl (und korrekte Konfiguration) hat enormen Einfluss auf Stabilität, Sicherheit und Performance.
Dieser Guide erklärt alles: Installation, wichtige Konfigurationseinstellungen, Sicherheitshärtung und Performance-Tuning für beide Proxys.
---
BungeeCord vs. Velocity: Was solltest du wählen?
Bevor du in Konfigurationsdateien einsteigst, musst du deinen Proxy auswählen.
BungeeCord (und sein Fork Waterfall) ist seit Jahren der Industriestandard. Es hat das größte Plugin-Ökosystem und ist gut dokumentiert. Allerdings enthält es Legacy-Code, und sein Threading-Modell kann bei großen Netzwerken zum Flaschenhals werden.
Velocity (von PaperMC) ist die moderne Alternative. Es wurde von Grund auf für Performance und Sicherheit entwickelt:
- Schnellere Player-Weiterleitung mit einem benutzerdefinierten, kryptografisch signierten Protokoll (
modernForwarding) - Besseres Threading — die Verbindungsverarbeitung ist deutlich effizienter
- Aktiv gepflegt vom Paper-Team
- Wachsendes Plugin-Ökosystem über die Velocity API
Empfehlung: Verwende Velocity für jedes neue Netzwerk. Wähle BungeeCord/Waterfall nur, wenn du auf Legacy-Plugins angewiesen bist, die noch nicht portiert wurden.
---
Velocity einrichten
1. Download und erster Start
Lade die neueste Velocity-JAR von [papermc.io/downloads/velocity](https://papermc.io/downloads/velocity) herunter und lege sie in ein eigenes Verzeichnis.
mkdir velocity-proxy && cd velocity-proxy
java -Xms512M -Xmx512M -XX:+UseG1GC -jar velocity.jar
Velocity generiert beim ersten Start eine velocity.toml-Konfigurationsdatei.
2. velocity.toml konfigurieren
Hier sind die wichtigsten Einstellungen:
# IP und Port, auf den sich Spieler verbinden
bind = "0.0.0.0:25565"
# MOTD und maximale Spieleranzahl
motd = "&3Mein Velocity-Netzwerk"
show-max-players = 100
# WICHTIG: 'modern' Forwarding mit Paper-Backends verwenden
player-info-forwarding-mode = "modern"
[servers]
lobby = "127.0.0.1:25566"
survival = "127.0.0.1:25567"
minigames = "127.0.0.1:25568"
[forced-hosts]
"lobby.deinserver.de" = ["lobby"]
try = ["lobby"]
Die try-Liste legt fest, mit welchem Server sich Spieler standardmäßig verbinden. Liste deine Lobby zuerst auf.
3. Modern Forwarding auf Paper-Backends aktivieren
Öffne auf jedem Paper-Backend-Server config/paper-global.yml und setze:
proxies:
velocity:
enabled: true
online-mode: true
secret: "dein-forwarding-secret-hier"
Das Secret muss mit dem Inhalt von forwarding.secret in deinem Velocity-Verzeichnis übereinstimmen. Behandle es wie ein Passwort — teile es niemals öffentlich.
Setze außerdem online-mode=false in der server.properties jedes Backends. Die Authentifizierung übernimmt der Proxy.
---
BungeeCord / Waterfall einrichten
Wenn du bei BungeeCord bleibst, verwende Waterfall (den Paper-Fork) für bessere Performance. Download unter [papermc.io/downloads/waterfall](https://papermc.io/downloads/waterfall).
Wichtige config.yml-Einstellungen
listeners:
- host: 0.0.0.0:25565
max_players: 500
motd: '&aMein BungeeCord-Netzwerk'
forced_hosts:
lobby.deinserver.de: lobby
default_server: lobby
fallback_server: lobby
servers:
lobby:
motd: '&bLobby'
address: localhost:25566
restricted: false
survival:
address: localhost:25567
restricted: false
ip_forward: true
online_mode: true
Aktiviere ip_forward: true und setze bungeecord: true in der spigot.yml jedes Backends:
# spigot.yml auf jedem Backend
settings:
bungeecord: true
---
Sicherheit: Der wichtigste Schritt
Ein falsch konfigurierter Proxy ist ein ernstes Sicherheitsloch. Befolge diese Schritte ausnahmslos:
1. Backend-Server per Firewall absichern
Deine Backend-Server dürfen ausschließlich Verbindungen vom Proxy akzeptieren, niemals vom öffentlichen Internet. Nutze iptables oder das Firewall-Panel deines Hosters:
# Nur die Proxy-IP darf sich mit dem Backend verbinden
iptables -A INPUT -p tcp --dport 25566 -s DEINE_PROXY_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 25566 -j DROP
Wenn ein Spieler sich direkt mit einem Backend verbinden kann (am Proxy vorbei), kann er jeden Benutzernamen angeben — auch den von Admins.
2. Sicherheits-Plugin für BungeeCord installieren
Installiere für BungeeCord-Netzwerke BungeeGuard sowohl auf dem Proxy als auch auf allen Backends. Es fügt eine tokenbasierte Authentifizierungsschicht hinzu, sodass Backends Verbindungen ablehnen, die nicht durch den Proxy kamen.
Velocitys modern Forwarding erledigt dies bereits kryptografisch — kein zusätzliches Plugin nötig.
3. online-mode sicher deaktivieren
Backend-Server laufen mit online-mode=false — aber das bedeutet normalerweise, dass sie gecrackte Clients akzeptieren würden. Der Proxy übernimmt die Authentifizierung. Solange deine Firewall korrekt konfiguriert ist, ist das sicher.
---
Performance-Tuning
Velocity JVM-Flags
Velocity ist leichtgewichtig, aber korrekte JVM-Flags sind trotzdem wichtig:
java -Xms512M -Xmx512M \
-XX:+UseG1GC \
-XX:G1HeapRegionSize=4M \
-XX:+UnlockExperimentalVMOptions \
-XX:+ParallelRefProcEnabled \
-jar velocity.jar
Halte den Velocity-Heap klein (512 MB–1 GB reichen meist völlig aus). Der Proxy simuliert keine Welten — er leitet nur Pakete weiter.
Komprimierungseinstellungen
In velocity.toml:
# Pakete größer als dieser Wert (Bytes) komprimieren. -1 deaktiviert die Komprimierung.
compression-threshold = 256
compression-level = 6
Wenn Proxy und Backends auf demselben Rechner laufen, setze compression-threshold = -1, um die Komprimierung zwischen Proxy und Backends zu deaktivieren. Komprimierung auf localhost verschwendet CPU ohne Bandbreitenvorteil.
Für BungeeCord in config.yml:
network_compression_threshold: -1
Verbindungs-Throttling
Konfiguriere in velocity.toml ein Login-Throttling zum Schutz vor Bot-Fluten:
[advanced]
login-ratelimit = 2000 # ms zwischen Logins von derselben IP
connection-timeout = 5000
read-timeout = 30000
---
Häufige Fehler vermeiden
- Backends nicht per Firewall absichern — der größte einzelne Sicherheitsfehler in Minecraft-Netzwerken
legacyForwarding verwenden, wenn alle Backendsmodernunterstützen — Legacy sendet IPs im Klartext- Zu viel RAM für den Proxy reservieren — Velocity braucht für die meisten Netzwerke nicht mehr als 1 GB
- Proxy und Backend auf demselben Port laufen lassen — trenne Ports immer klar voneinander
online-modeinserver.propertiesvergessen — Backends müssenonline-mode=falsehaben
---
Dein Proxy-Netzwerk überwachen
Sobald dein Netzwerk läuft, brauchst du Überblick über alle Server. Welches Backend laggt? Verursacht ein plötzlicher Spieleranstieg Verbindungsfehler? Tools wie [PulseNode](https://pulsenode.tech) bieten dir Echtzeit-Performance-Monitoring über dein gesamtes Server-Netzwerk und helfen dir, den Flaschenhals zu finden, bevor deine Spieler ihn bemerken.
---
Abschluss-Checkliste
Vor dem Go-Live prüfen:
- [ ] Backends per Firewall abgesichert — nur Proxy-IP darf verbinden
- [ ]
player-info-forwarding-mode = "modern"in Velocity gesetzt (oder BungeeGuard für BungeeCord installiert) - [ ]
forwarding.secretstimmt auf Proxy und allen Backends überein - [ ]
online-mode=falseauf allen Backends - [ ] Standard-/Fallback-Server auf die Lobby gesetzt
- [ ] Komprimierung deaktiviert, wenn Proxy und Backends auf demselben Rechner laufen
- [ ] Login-Rate-Limiting konfiguriert
Ein korrekt konfigurierter Velocity- oder Waterfall-Proxy ist das Rückgrat jedes ernsthaften Minecraft-Netzwerks. Kümmere dich zuerst um die Sicherheit — Performance-Tuning kommt danach.