serverinfrastructuur:proxy

Velocity Proxy

De Velocity Proxy is het centrale toegangspunt van het Tulpencraft-netwerk.

Alle spelers die verbinding maken met Tulpencraft komen binnen via de Velocity-proxy. De proxy stuurt spelers door naar de centrale Lobby.

De achterliggende Minecraft-servers zijn niet zelfstandig vanaf het internet bereikbaar.


EigenschapWaarde
Hostnamemc-proxy001
SoftwareVelocity
RolCentrale netwerkproxy
Publiek adrestulpencraft.nl
Minecraft-poort25565
Eerste backendlobby
BesturingssysteemLinux
Installatiedirectory/srv/minecraft/velocity/

Tulpencraft gebruikt een centrale netwerkarchitectuur.

De verbinding van een speler verloopt altijd via de proxy en vervolgens naar de Lobby:

                     Minecraft-client
                            β”‚
                            β”‚ tulpencraft.nl:25565
                            β–Ό
                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚   Velocity Proxy   β”‚
                  β”‚     mc-proxy001    β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β”‚
                            β–Ό
                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚       Lobby        β”‚
                  β”‚     mc-proxy001    β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚          β”‚          β”‚
                 β–Ό          β–Ό          β–Ό
              Survival    Events    SkyBlock

De Velocity-proxy maakt voor spelers uitsluitend de Lobby tot eerste backend.

De spelservers bevinden zich achter de Lobby.

De gewenste verkeersstroom is:

Speler
  ↓
Velocity
  ↓
Lobby
  ↓
Spelserver

Niet:

Speler
  β”œβ”€β”€β†’ Survival
  β”œβ”€β”€β†’ Events
  └──→ SkyBlock

De achterliggende servers zijn dus geen zelfstandige publieke Minecraft-servers.


πŸ”€ Velocity

Velocity verzorgt de centrale netwerklaag van Tulpencraft.

De proxy handelt onder andere af:

  • inkomende Minecraft-verbindingen;
  • doorsturen naar de Lobby;
  • netwerkcommando's;
  • serverroutering;
  • versiecompatibiliteit;
  • proxyplugins;
  • centrale netwerkfunctionaliteit.

De hoofdconfiguratie staat in:

/srv/minecraft/velocity/velocity.toml

πŸ”Œ GeΓ―nstalleerde plugins

De huidige pluginset op mc-proxy001 bestaat uit:

PluginVersieRol
VLobby2.1.1Lobbycommando's en routering
ViaVersion5.11.0Minecraft-versiecompatibiliteit
ViaBackwards5.11.0Ondersteuning oudere Minecraft-clients
MCKotlinVelocity1.5.1-k2.4.0Kotlin-runtime voor Velocity
Simple Voice Chat2.6.18Voice-chat proxy
bStatsβ€”Anonieme plugin-statistieken
De pluginbestanden bevinden zich in:
/srv/minecraft/velocity/plugins/

De huidige directorystructuur is:

/srv/minecraft/velocity/plugins/
β”œβ”€β”€ bStats/
β”œβ”€β”€ MCKotlinVelocity-1.5.1-k2.4.0.jar
β”œβ”€β”€ viabackwards/
β”œβ”€β”€ ViaBackwards-5.11.0.jar
β”œβ”€β”€ viaversion/
β”œβ”€β”€ ViaVersion-5.11.0.jar
β”œβ”€β”€ vlobby/
└── VLobby-2.1.1.jar

De mappen bevatten de configuratie en plugin-data van de betreffende plugins.


πŸšͺ VLobby

VLobby verzorgt de lobbycommando's op de Velocity-proxy.

De huidige pluginversie is:

VLobby 2.1.1

Configuratie:

/srv/minecraft/velocity/plugins/vlobby/configuration.conf

De configuratie gebruikt momenteel de handler:

command-handler="COMMAND_TO_SERVER"

De beschikbare routeringscommando's zijn onder andere:

/survival
/events
/lobby
/hub

De configuratie koppelt deze commando's aan de betreffende servers.

Voorbeeld:

survival=survival
events=events
lobby=lobby
hub=lobby

VLobby gebruikt momenteel een cooldown van 5 seconden voor de geconfigureerde commando's.

De Nederlandse melding hiervoor is:

Je kunt dit commando niet zo snel opnieuw gebruiken. Wacht <time> seconden.

🌍 ViaVersion

ViaVersion verzorgt de Minecraft-versiecompatibiliteit op de proxy.

Versie:

5.11.0

Pluginbestand:

/srv/minecraft/velocity/plugins/ViaVersion-5.11.0.jar

Configuratie:

/srv/minecraft/velocity/plugins/viaversion/

ViaVersion maakt het mogelijk om verschillende ondersteunde Minecraft-clientversies met het netwerk te laten communiceren.


↩️ ViaBackwards

ViaBackwards werkt samen met ViaVersion.

Versie:

5.11.0

Pluginbestand:

/srv/minecraft/velocity/plugins/ViaBackwards-5.11.0.jar

Configuratie:

/srv/minecraft/velocity/plugins/viabackwards/

ViaBackwards breidt ViaVersion uit met ondersteuning voor oudere Minecraft-clientversies.

De combinatie is:

ViaVersion
     +
ViaBackwards
     ↓
Versiecompatibiliteit

🧩 MCKotlinVelocity

MCKotlinVelocity levert Kotlin-runtimefunctionaliteit voor Velocity-plugins die hiervan afhankelijk zijn.

Versie:

1.5.1-k2.4.0

Pluginbestand:

/srv/minecraft/velocity/plugins/MCKotlinVelocity-1.5.1-k2.4.0.jar

MCKotlinVelocity is geen gameplayplugin. Het is een technische runtime/dependency voor plugins die Kotlin gebruiken.


πŸŽ™οΈ Simple Voice Chat

Simple Voice Chat verzorgt de proximity voice chat binnen Tulpencraft.

De voice-chatoplossing bestaat uit twee onderdelen:

  • de Velocity-proxycomponent op mc-proxy001;
  • de Paper-backendplugin op mc-survival001.

De proxy ontvangt het publieke UDP-verkeer en koppelt dit aan de backend waarop voice chat actief is.

Onderdeel Waarde
Status 🟒 Actief
Proxy mc-proxy001
Velocity-plugin Simple Voice Chat 2.6.18
Survival-plugin Simple Voice Chat 2.6.21
Publieke voice-host server.tulpencraft.nl:25565
Publiek protocol UDP
Publieke poort 25565
Survival backend-poort 24454

Op mc-proxy001 draait de Velocity-component van Simple Voice Chat.

Pluginbestand:

/srv/minecraft/velocity/plugins/voicechat-velocity.jar

Configuratie:

/srv/minecraft/velocity/plugins/voicechat/voicechat-proxy.properties

De proxy luistert voor voice chat op:

0.0.0.0:25565/UDP

Dit gebruikt hetzelfde poortnummer als Minecraft, maar een ander protocol:

Protocol Poort Functie
TCP 25565 Minecraft / Velocity
UDP 25565 Simple Voice Chat

De publieke voice-host is:

server.tulpencraft.nl:25565

Op mc-survival001 draait de Paper-versie van Simple Voice Chat.

Pluginbestand:

/srv/minecraft/survival/plugins/voicechat.jar

Versie:

2.6.21

De backend gebruikt intern:

UDP 24454

Deze poort is niet het publieke voice-chat endpoint. Het publieke voice-verkeer komt binnen op de Velocity-proxy en wordt vervolgens naar de backend doorgestuurd.

De voice-chatverbinding verloopt als volgt:

Minecraft client

    β”‚
    β”‚ UDP 25565
    β–Ό

server.tulpencraft.nl

    β”‚
    β–Ό

pfSense

    β”‚
    β–Ό

mc-proxy001 Velocity + Simple Voice Chat

    β”‚
    β”‚ backend
    β–Ό

mc-survival001 Simple Voice Chat UDP 24454

Op mc-proxy001 moet UDP 25565 beschikbaar zijn voor Simple Voice Chat.

Dezelfde host gebruikt TCP 25565 voor Minecraft. TCP en UDP zijn afzonderlijke protocollen en kunnen daarom hetzelfde poortnummer gebruiken.

Op mc-survival001 blijft UDP 24454 beschikbaar voor de backendcomponent.

Voor Minecraft wordt tulpencraft.nl gebruikt.

Voor voice chat wordt expliciet:

server.tulpencraft.nl:25565

gebruikt als publieke voice-host.

Het DNS-record server.tulpencraft.nl moet naar het publieke adres van Tulpencraft wijzen.

Simple Voice Chat vereist client-side ondersteuning.

Spelers moeten daarom de bijbehorende Simple Voice Chat-client gebruiken om voice chat te kunnen gebruiken.

/srv/minecraft/velocity/plugins/voicechat/voicechat-proxy.properties

Belangrijke instellingen:

port=25565

voice_host=server.tulpencraft.nl:25565

/srv/minecraft/survival/plugins/voicechat/voicechat-server.properties

De backend gebruikt intern poort 24454.

Wijzigingen aan deze configuratie worden pas actief wanneer de betreffende plugin/server de configuratie opnieuw inleest.

sudo journalctl -u velocity --since "10 minutes ago" --no-pager | grep -iE 'voicechat|voice chat'

Bij een correcte start moet de proxy een melding geven dat de voice-chatserver actief is.

sudo journalctl -u minecraft-survival --since "10 minutes ago" --no-pager | grep -iE 'voicechat|voice chat'

Op de proxy:

sudo ss -lunp | grep 25565

Op Survival:

sudo ss -lunp | grep 24454

De Velocity-proxy is het publieke voice-chatpunt.

Maak daarom op pfSense geen publieke NAT-regel naar mc-survival001:24454.

De publieke route is:

UDP 25565 β†’ mc-proxy001

De Survival-poort 24454/UDP is alleen voor de interne backendverbinding.


πŸ“Š bStats

bStats wordt gebruikt voor anonieme plugin-statistieken.

De gegevens worden door individuele plugins gebruikt om algemene gebruiksstatistieken te verzamelen.

De bStats-data bevindt zich onder:

/srv/minecraft/velocity/plugins/bStats/

πŸ“ Directorystructuur

De volledige Velocity-installatie bevindt zich onder:

/srv/minecraft/velocity/

Belangrijke onderdelen:

/srv/minecraft/velocity/
β”œβ”€β”€ velocity.toml
β”œβ”€β”€ plugins/
β”œβ”€β”€ lang/
β”œβ”€β”€ logs/
└── ...
/srv/minecraft/velocity/velocity.toml
/srv/minecraft/velocity/plugins/
/srv/minecraft/velocity/lang/
/srv/minecraft/velocity/logs/

🌐 Taal en berichten

Velocity bevat verschillende taalbestanden:

/srv/minecraft/velocity/lang/

Daaronder bevindt zich onder andere:

messages_nl_NL.properties

Dit bestand bevat de Nederlandse vertalingen van Velocity-meldingen.

Voorbeeld:

velocity.error.connecting-server-error=Kan je niet verbinden met <arg:0>. Probeer het later opnieuw.

De standaard messages.properties bevat de Engelse fallback-teksten.

Bij wijzigingen aan Velocity-teksten moet rekening worden gehouden met de taal die door de Minecraft-client wordt gebruikt.


πŸ› οΈ Beheer

Velocity wordt als systemd-service uitgevoerd.

sudo systemctl status velocity
sudo systemctl start velocity
sudo systemctl stop velocity
sudo systemctl restart velocity

πŸ“œ Logs

De Velocity-logs kunnen via journalctl worden bekeken.

sudo journalctl -u velocity -f
sudo journalctl -u velocity --since "10 minutes ago" --no-pager
sudo journalctl -u velocity --since "10 minutes ago" --no-pager | \
grep -Ei 'error|exception|warn'
sudo journalctl -u velocity --since "10 minutes ago" --no-pager | \
grep -Ei 'vlobby|error|exception'

πŸ”§ Pluginconfiguratie wijzigen

Pluginconfiguraties worden opgeslagen binnen:

/srv/minecraft/velocity/plugins/

Na wijzigingen moet een plugin worden herladen of, indien noodzakelijk, moet Velocity worden herstart.

Voor wijzigingen aan kritieke proxyconfiguratie wordt een volledige restart aanbevolen:

sudo systemctl restart velocity

Daarna controleren:

sudo journalctl -u velocity --since "1 minute ago" --no-pager

πŸ”’ Netwerkbeveiliging

De Velocity-proxy is het enige publieke Minecraft-toegangspunt.

De gewenste netwerkstructuur is:

                       INTERNET
                           β”‚
                           β”‚ :25565
                           β–Ό
                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚     Velocity    β”‚
                  β”‚   mc-proxy001   β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
                           β–Ό
                         Lobby
                           β”‚
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β–Ό          β–Ό          β–Ό
             Survival    Events    SkyBlock

De backendservers mogen niet rechtstreeks vanaf het internet bereikbaar zijn.


🚦 Serverroutering

De proxy gebruikt de Lobby als centrale ingang.

Minecraft-client
       ↓
tulpencraft.nl
       ↓
Velocity
       ↓
Lobby
Speler
  ↓
Lobby
  ↓
Survival
Speler
  ↓
Lobby
  ↓
Events
Speler
  ↓
Lobby
  ↓
SkyBlock

🚨 Troubleshooting

Controleer:

sudo systemctl status velocity

Controleer vervolgens de logs:

sudo journalctl -u velocity --since "10 minutes ago" --no-pager

Controleer eerst Velocity:

sudo systemctl status velocity

Controleer daarna de Lobby:

sudo systemctl status minecraft-lobby

Controleer vervolgens de proxylogs:

sudo journalctl -u velocity --since "5 minutes ago" --no-pager | \
grep -Ei 'lobby|error|exception'

Controleer of Survival actief is:

sudo systemctl status minecraft-survival

Controleer vervolgens de proxy:

sudo journalctl -u velocity --since "5 minutes ago" --no-pager | \
grep -Ei 'survival|vlobby|error|exception'

Controleer daarna de Lobby-server zelf.


πŸ“‹ Huidige configuratiestatus

OnderdeelStatus
Velocity🟒 Actief
Lobby als eerste backend🟒 In gebruik
VLobby🟒 2.1.1
ViaVersion🟒 5.11.0
ViaBackwards🟒 5.11.0
MCKotlinVelocity🟒 1.5.1-k2.4.0
bStats🟒 Aanwezig
Publieke backendserversπŸ”’ Niet bereikbaar
Wiki-documentatie🟑 In ontwikkeling

πŸ“š Gerelateerde pagina's


Laatste update: augustus 2026

De Velocity-proxy is de centrale toegangspoort van Tulpencraft. Wijzigingen aan de proxyconfiguratie, netwerkarchitectuur of geΓ―nstalleerde plugins moeten in deze documentatie worden bijgewerkt.

  • serverinfrastructuur/proxy.txt
  • Laatst gewijzigd: 2026/08/25 07:24
  • door rroethof