Réseau BungeeCord / Velocity
Guide réseau BungeeCord/Velocity sur VPS Game RedHeberg
Ce guide détaille la configuration d'une architecture réseau Minecraft avec Velocity ou BungeeCord, optimisée pour les VPS Game Ryzen de RedHeberg avec Anti-DDoS PRO inclus.
Architecture recommandée
Principe de fonctionnement
Un proxy (Velocity/BungeeCord) centralise les connexions des joueurs et les redirige vers plusieurs serveurs Minecraft backend. Cette architecture offre :
- Scalabilité : Répartition de la charge sur plusieurs serveurs
- Flexibilité : Changement de serveur sans déconnexion
- Sécurité : Serveurs backend non exposés directement
- Performance : Anti-DDoS PRO RedHeberg + Netrix sur le proxy
VPS recommandés
| Composant | VPS Game suggéré | Justification |
|---|---|---|
| Proxy Velocity | Game TITAN (6vCPU/16GB) | Gestion des connexions simultanées |
| Serveur 1 (Survival) | Game ULTRA (4vCPU/8GB) | Monde persistant, plugins lourds |
| Serveur 2 (Creative) | Game PRO (2vCPU/6GB) | Monde léger, moins de plugins |
| Serveur 3 (Mini-jeux) | Game EXTREME (4vCPU/12GB) | Instances multiples, redémarrages fréquents |
Performance optimale
Les VPS Game Ryzen 9 5900X à 4.8GHz+ offrent d'excellentes performances single-thread, cruciales pour Minecraft.
Installation et configuration Velocity
1. Préparation du serveur proxy
# Mise à jour système
sudo apt update && sudo apt upgrade -y
# Installation OpenJDK 21
sudo apt install openjdk-21-jdk-headless -y
# Vérification version Java
java -version
# Création utilisateur dédié
sudo useradd -m -s /bin/bash velocity
sudo su - velocity
# Création structure dossiers
mkdir -p ~/velocity/{plugins,logs}
cd ~/velocity
2. Installation Velocity
# Téléchargement dernière version
wget https://api.papermc.io/v2/projects/velocity/versions/3.3.0-SNAPSHOT/builds/418/downloads/velocity-3.3.0-SNAPSHOT-418.jar -O velocity.jar
# Script de démarrage
cat > start.sh << 'EOF'
#!/bin/bash
java -Xms1G -Xmx4G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions \
-XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 \
-jar velocity.jar
EOF
chmod +x start.sh
# Premier démarrage pour génération config
timeout 10s ./start.sh || true
3. Configuration velocity.toml
# Édition configuration principale
nano velocity.toml
Contenu du fichier velocity.toml :
# Serveur de liaison
bind = "0.0.0.0:25577"
# MOTD du proxy
motd = "&c&lRedHeberg Network &8| &7Bienvenue !"
# Nombre maximum de joueurs
show-max-players = 500
# Mode en ligne (obligatoire pour sécurité)
online-mode = true
# Prévention proxy malveillants
prevent-client-connections = false
# Clé de forwarding (générer avec uuidgen)
forwarding-secret-file = "forwarding.secret"
player-info-forwarding-mode = "modern"
# Configuration serveurs backend
[servers]
survival = "127.0.0.1:25565"
creative = "127.0.0.1:25566"
minigames = "127.0.0.1:25567"
lobby = "127.0.0.1:25568"
# Serveurs prioritaires (ordre de connexion)
try = [
"lobby",
"survival",
"creative"
]
# Serveur de secours
[forced-hosts]
"survival.monserveur.com" = [
"survival"
]
"creative.monserveur.com" = [
"creative"
]
# Paramètres avancés
[advanced]
compression-threshold = 256
compression-level = -1
login-ratelimit = 3000
connection-timeout = 5000
read-timeout = 30000
4. Génération clé de forwarding
# Génération clé sécurisée
uuidgen > forwarding.secret
# Vérification
cat forwarding.secret
Configuration serveurs Paper backend
1. Installation Paper sur chaque serveur
# Pour chaque serveur backend (ports 25565, 25566, 25567, 25568)
sudo useradd -m -s /bin/bash minecraft-survival
sudo su - minecraft-survival
mkdir -p ~/server/{plugins,world}
cd ~/server
# Téléchargement Paper 1.21
wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/131/downloads/paper-1.21.1-131.jar -O paper.jar
2. Configuration server.properties
# Configuration pour serveur survival (port 25565)
cat > server.properties << 'EOF'
server-ip=127.0.0.1
server-port=25565
online-mode=false
enable-query=false
enable-rcon=false
motd=Serveur Survival
max-players=100
difficulty=normal
gamemode=survival
pvp=true
spawn-protection=16
view-distance=10
simulation-distance=10
sync-chunk-writes=true
EOF
Configuration critique
online-mode=false est obligatoire sur les serveurs backend. La vérification Mojang est déléguée au proxy Velocity.
3. Configuration Paper (paper-global.yml)
# Optimisations Paper pour réseau
cat > config/paper-global.yml << 'EOF'
_version: 28
proxies:
velocity:
enabled: true
online-mode: true
secret: "COLLER_ICI_LE_CONTENU_DE_FORWARDING_SECRET"
bungee-cord:
online-mode: true
packet-limiter:
kick-message: "&cVous envoyez trop de paquets !"
limits:
all:
interval: 7.0
max-packet-rate: 500.0
EOF
4. Scripts de démarrage serveurs
# Script pour chaque serveur
cat > start.sh << 'EOF'
#!/bin/bash
java -Xms2G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC -XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 -XX:+AlwaysPreTouch \
-jar paper.jar --nogui
EOF
chmod +x start.sh