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.
π Basisinformatie
| Eigenschap | Waarde |
|---|---|
| Hostname | mc-proxy001 |
| Software | Velocity |
| Rol | Centrale netwerkproxy |
| Publiek adres | tulpencraft.nl |
| Minecraft-poort | 25565 |
| Eerste backend | lobby |
| Besturingssysteem | Linux |
| Installatiedirectory | /srv/minecraft/velocity/ |
ποΈ Architectuur
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
Belangrijk ontwerpprincipe
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:
| Plugin | Versie | Rol |
|---|---|---|
| VLobby | 2.1.1 | Lobbycommando's en routering |
| ViaVersion | 5.11.0 | Minecraft-versiecompatibiliteit |
| ViaBackwards | 5.11.0 | Ondersteuning oudere Minecraft-clients |
| MCKotlinVelocity | 1.5.1-k2.4.0 | Kotlin-runtime voor Velocity |
| Simple Voice Chat | 2.6.18 | Voice-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
Cooldown
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.
Huidige status
| 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 |
π¦ Velocity-proxy
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
ποΈ Survival-backend
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.
π Verkeersstroom
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
π₯ Firewall
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.
π DNS
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.
π€ Client
Simple Voice Chat vereist client-side ondersteuning.
Spelers moeten daarom de bijbehorende Simple Voice Chat-client gebruiken om voice chat te kunnen gebruiken.
π§ Configuratie wijzigen
Velocity
/srv/minecraft/velocity/plugins/voicechat/voicechat-proxy.properties
Belangrijke instellingen:
port=25565
voice_host=server.tulpencraft.nl:25565
Survival
/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.
π§ͺ Troubleshooting
Proxy controleren
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.
Survival controleren
sudo journalctl -u minecraft-survival --since "10 minutes ago" --no-pager | grep -iE 'voicechat|voice chat'
Luisterende UDP-poorten controleren
Op de proxy:
sudo ss -lunp | grep 25565
Op Survival:
sudo ss -lunp | grep 24454
β οΈ Belangrijk
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/ βββ ...
Configuratie
/srv/minecraft/velocity/velocity.toml
Plugins
/srv/minecraft/velocity/plugins/
Taalbestanden
/srv/minecraft/velocity/lang/
Logs
/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.
Status bekijken
sudo systemctl status velocity
Proxy starten
sudo systemctl start velocity
Proxy stoppen
sudo systemctl stop velocity
Proxy herstarten
sudo systemctl restart velocity
π Logs
De Velocity-logs kunnen via journalctl worden bekeken.
Live logs
sudo journalctl -u velocity -f
Recente logs
sudo journalctl -u velocity --since "10 minutes ago" --no-pager
Fouten zoeken
sudo journalctl -u velocity --since "10 minutes ago" --no-pager | \ grep -Ei 'error|exception|warn'
VLobby controleren
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.
Verbinding bij het inloggen
Minecraft-client
β
tulpencraft.nl
β
Velocity
β
Lobby
Naar Survival
Speler β Lobby β Survival
Naar Events
Speler β Lobby β Events
Naar toekomstige SkyBlock
Speler β Lobby β SkyBlock
π¨ Troubleshooting
Speler kan niet verbinden met Tulpencraft
Controleer:
sudo systemctl status velocity
Controleer vervolgens de logs:
sudo journalctl -u velocity --since "10 minutes ago" --no-pager
Speler komt niet in de Lobby
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'
Speler kan niet naar Survival
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
| Onderdeel | Status |
|---|---|
| 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.