Velocity of BungeeCord: een netwerk van servers bouwen
Een proxy is een tussenserver waarmee spelers verbinden en die ze doorstuurt naar losse backend-servers voor lobby, survival, creative en minigames, zodat ze tussen werelden springen zonder het spel te verlaten. BungeeCord en Velocity doen allebei dat werk: BungeeCord is ouder en breed ondersteund, Velocity is moderner, sneller en veiliger dankzij modern forwarding. De proxy zelf heeft weinig geheugen nodig, 512 MB is meestal genoeg en kost bij MC-Node 0,50 euro per maand, maar elke backend-server erachter heeft zijn eigen RAM nodig.
Wat doet een proxy precies?
Zonder proxy verbindt je client rechtstreeks met een Minecraft-server. Met een proxy verbindt hij met de proxy, die daarachter zijn eigen verbinding met een backend-server opent. Wissel je van server, dan verbreekt de proxy die achterste verbinding en opent hij een nieuwe naar de volgende. Jouw verbinding blijft staan, dus je ziet alleen even het laadscherm en niet het serverlijstje.
De proxy draait zelf geen wereld: geen chunks, geen mobs, geen redstone. Hij houdt verbindingen vast, verplaatst pakketjes en beheert de spelerslijst. Daarom is 512 MB voor een proxy vrijwel altijd genoeg, terwijl datzelfde geheugen voor een survivalserver nergens toe leidt. Bijkomend voordeel: de proxy is het enige adres dat spelers kennen, en dus ook het punt waar je DDoS-bescherming op richt.
Wat is het verschil tussen BungeeCord en Velocity?
BungeeCord komt uit de Spigot-hoek en is jarenlang de standaard geweest; vrijwel elke oude handleiding gaat erover. Velocity komt van het team achter Paper en pakt twee dingen anders aan: hoe verbindingen worden afgehandeld en hoe een backend controleert dat een speler echt via de proxy binnenkomt. Waterfall, de BungeeCord-fork van datzelfde Paper-team, wordt niet meer doorontwikkeld en verwijst zelf naar Velocity.
| Punt | BungeeCord | Velocity |
|---|---|---|
| Leeftijd | Ouder, veel handleidingen | Nieuwer, actief ontwikkeld |
| Prestaties bij veel verbindingen | Werkt, oudere codebase | Merkbaar zuiniger |
| Speler-forwarding | Legacy, zonder verificatie | Modern, met gedeeld geheim |
| Plugins | Groot aanbod, veel oude builds | Kleiner aanbod, bekende namen aanwezig |
| Veilige modus op de backend | Extra plugin nodig (BungeeGuard) | Ingebouwd in Paper en Purpur |
Plugins zijn niet uitwisselbaar: een BungeeCord-plugin draait niet op Velocity, want het is een andere API. Van wat je op een proxy wilt, zoals LuckPerms en ViaVersion, bestaan wel Velocity-builds. Begin je nu, dan is Velocity de logische keuze. Draai je al jaren op BungeeCord met plugins zonder Velocity-versie, dan is blijven zitten prima, mits je de beveiliging op orde hebt.
Hoeveel RAM heb je nodig voor een netwerk?
Reken per backend, niet voor het netwerk als geheel. Elke backend is een volledige Minecraft-server met een eigen wereld, eigen plugins en een eigen Java-proces. Vier servers is dus vier keer geheugen reserveren; de proxy is de goedkoopste schakel.
| Onderdeel | RAM | Per maand (budgetlijn) |
|---|---|---|
| Velocity- of BungeeCord-proxy | 512 MB | 0,50 euro |
| Lobby met kleine map | 2 GB | 2,20 euro |
| Survival | 4 GB | 4,40 euro |
| Creative of minigames | 2 GB | 2,20 euro |
| Totaal | 8,5 GB | 9,30 euro |
Let op de valkuil: 8,5 GB verdeeld over vier servers is niet hetzelfde als een enkele server met 8,5 GB. Elk Java-proces heeft eigen overhead en eigen geladen chunks, dus je verliest geheugen aan het feit dat het vier servers zijn. Bouw pas een netwerk als je de losse werelden echt nodig hebt. Hoe je een enkele server neerzet staat in de uitleg over een Minecraft-server maken.
Hoe zet je een Velocity-proxy op?
Eerst de proxy, dan de backends, dan testen. Op een paneel als Pterodactyl maak je de proxy aan als apart pakket met een eigen poort.
- Zet Velocity op een pakket van 512 MB en start het een keer, zodat
velocity.tomlenforwarding.secretworden aangemaakt. - Zet in
velocity.tomlde waardenonline-mode = trueenplayer-info-forwarding-mode = "modern". - Vul onder
[servers]de interne adressen en poorten van je backends in, plus eentry-lijst die bepaalt waar spelers binnenkomen, meestal de lobby. - Zet op elke backend in
server.propertiesde waardeonline-mode=false; de proxy doet de authenticatie nu. - Zet op elke Paper- of Purpur-backend in
config/paper-global.ymlonderproxies.velocityde optieenabled: trueen plakforwarding.secretin het veldsecret. - Herstart alles, verbind met het proxy-adres en spring met
/servertussen je backends.
Bij BungeeCord loopt het anders: daar zet je in config.yml de optie ip_forward: true en op elke backend in spigot.yml de optie bungeecord: true. Die combinatie heeft geen enkele controle ingebouwd, en daar heb je BungeeGuard bij nodig.
Waarom kan iedereen zomaar je backend-servers binnenlopen?
In een netwerk controleert alleen de proxy of iemand echt is wie hij zegt te zijn. De backends zetten online-mode daarom op false: die zien alleen nog verkeer dat de proxy al gecontroleerd heeft. Dat is prima, tot een backend-poort ook vanaf het internet bereikbaar is.
Dan kan namelijk iedereen die poort in zijn serverlijst zetten, een willekeurige gebruikersnaam kiezen en binnenkomen. Er is geen controle meer, dus ook de naam van je eigenaar met OP-rechten ligt open. Een whitelist helpt niet: de server gelooft de naam die de client opgeeft, dus een aanvaller vult een naam van de whitelist in. Dit is met afstand de meest voorkomende reden dat kleine netwerken gegriefd worden.
Zo zet je het dicht
- Gebruik modern forwarding. Velocity ondertekent de spelergegevens met het geheim uit
forwarding.secret; een backend die dat geheim kent weigert alles wat niet correct ondertekend is. - Op BungeeCord: installeer BungeeGuard. Legacy IP-forwarding vertrouwt blind op wat binnenkomt. BungeeGuard voegt een gedeeld token toe en dekt hetzelfde gat.
- Beperk het netwerkverkeer. Laat de backends alleen op een intern adres luisteren of sta via de firewall uitsluitend het IP van de proxy toe. Weet je niet hoe dat op jouw paneel werkt, vraag het aan support.
- Test het zelf. Typ adres en poort van een backend rechtstreeks in je client. Kom je binnen, dan staat het gat nog open; krijg je een foutmelding over forwarding, dan is het goed.
Doe die laatste test opnieuw zodra je een backend toevoegt: een nieuwe server begint met standaardinstellingen en dus zonder forwarding.
Wat verandert er aan je plugins?
Een netwerk deelt niets automatisch. Elke backend heeft een eigen wereldmap en eigen spelerdata, dus wie op survival een volle inventaris heeft staat op creative met lege handen, tenzij een plugin die data in een gedeelde database zet. Voor rangen is het eenvoudiger: LuckPerms laat je op alle servers naar dezelfde MySQL-database wijzen, waardoor een rang overal geldt. Draai LuckPerms ook op de proxy zelf, want proxy-commando's hebben eigen permissies.
Plugins die aan de wereld zitten, zoals WorldGuard, WorldEdit, CoreProtect en GriefPrevention, blijven per backend staan. ViaVersion en ViaBackwards verhuizen juist naar de proxy, zodat afwijkende clientversies aan de voordeur worden opgevangen; hetzelfde geldt voor Geyser met Floodgate voor Bedrock-spelers. Chat vergeten mensen het vaakst: spelers op de lobby zien standaard niets van de survivalchat, en DiscordSRV draait per server. Welke plugins waar horen staat in het overzicht van bruikbare Minecraft-plugins.
Wanneer heb je helemaal geen proxy nodig?
Vaker dan je denkt. Wil je alleen een creative-wereld naast je survival-wereld, dan kan dat binnen een enkele server met een wereldbeheerplugin. Dat scheelt een proxy, een extra pakket en een extra ding dat stuk kan gaan. Bij een kleine, vaste spelersgroep steek je het uitgespaarde geld beter in RAM voor je hoofdserver.
Modpacks zijn het tweede geval. Proxies en modloaders gaan matig samen, en zware packs zijn duur om te verdubbelen: All the Mods 10 vraagt minimaal 10 GB en 12 GB voor een kleine groep, dus elke extra backend verdubbelt die eis meteen. Een enkele goed afgestelde server is dan verstandiger; daar gaat het artikel over serveroptimalisatie over.
Houd ook in gedachten dat een proxy een centraal punt is: valt hij weg, dan is je hele netwerk onbereikbaar, ook al draaien de backends door. Begin er dus niet aan voordat je een enkele server soepel draaiend hebt. Wat de losse onderdelen kosten zie je bij Minecraft-hosting bij MC-Node, inclusief de 512 MB-proxy van 0,50 euro.
Veelgestelde vragen
Kan ik mijn BungeeCord-plugins op Velocity draaien? Nee, Velocity heeft een eigen API en laadt geen BungeeCord-plugins. Van de bekende namen bestaan wel Velocity-builds, waaronder LuckPerms, ViaVersion en Geyser met Floodgate. Loop je lijst na voordat je overstapt: juist kleine zelfgebouwde plugins hebben vaak geen Velocity-versie.
Hoeveel RAM heeft de proxy zelf nodig? 512 MB is voor de meeste netwerken genoeg, bij MC-Node 0,50 euro per maand, omdat een proxy geen wereld tickt en geen chunks laadt. Groeit je netwerk hard, dan loop je eerder tegen CPU en netwerk aan dan tegen geheugen. Je RAM hoort naar de backends te gaan.
Moet online-mode op false op mijn backend-servers? Ja, want de proxy heeft de speler al bij Mojang geverifieerd en een tweede controle op de backend mislukt. Zet online-mode op true bij de proxy en op false bij de backends, en zorg dat die backends alleen via de proxy bereikbaar zijn met modern forwarding of BungeeGuard. Zonder die laatste stap kan iedereen met elke gewenste naam binnenlopen.
Deelt een netwerk automatisch inventaris en rangen? Nee. Elke backend houdt eigen wereld- en spelerdata bij, dus inventarissen en enderchests staan los van elkaar. Rangen deel je door LuckPerms op alle servers en op de proxy naar dezelfde MySQL-database te laten wijzen; voor inventaris heb je een aparte plugin met gedeelde opslag nodig.
Kan ik een modpack als All the Mods 10 achter een proxy zetten? Technisch kan het soms, maar meestal is het de moeite niet. ATM10 draait op NeoForge met Minecraft 1.21.1 en vraagt minimaal 10 GB en 12 GB voor een kleine groep, dus elke extra backend telt hard aan. Een enkele goede server is dan de betere keuze.