Aller au contenu principal

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

ComposantVPS Game suggéréJustification
Proxy VelocityGame 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

Configuration réseau et sécurité

1. Configuration UFW (Firewall