Inhoud

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

EigenschapWaarde
Hostnamemc-proxy001
SoftwareVelocity
RolCentrale netwerkproxy
Publiek adrestulpencraft.nl
Minecraft-poort25565
Eerste backendlobby
BesturingssysteemLinux
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:

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

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 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

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.