De config.yml bepaalt waar BungeeCord luistert, welke backends hij kent en waarheen nieuwe spelers worden geleid. Genereer het bestand altijd met je geïnstalleerde versie. Oude blogvoorbeelden kunnen velden of standaardwaarden bevatten die niet meer bij de actuele build passen.

Een syntactisch geldige configuratie is nog geen veilig netwerk. Zodra backends online-mode=false gebruiken, moet hun TCP-poort beveiligd zijn tegen directe verbindingen. Het volledige proces vind je in de BungeeCord-setup-pillar.

Veilige basisstructuur

online_mode: true
ip_forward: true
player_limit: -1
server_connect_timeout: 5000
remote_ping_timeout: 5000

servers:
  lobby:
    address: <LOBBY-ADRES>:<PORT>
    motd: '&aLobby'
    restricted: false
  survival:
    address: <SURVIVAL-ADRES>:<PORT>
    motd: '&aSurvival'
    restricted: false

listeners:
  - host: 0.0.0.0:<PROXY-PORT>
    motd: '&aMijn Netwerk'
    priorities:
      - lobby
      - survival
    force_default_server: true
    forced_hosts:
      survival.example.net: survival
    max_players: 100
    tab_list: GLOBAL_PING
    query_enabled: false
    proxy_protocol: false

Placeholders moeten worden vervangen door paneeladressen. Een openbaar backendadres in het voorbeeld is geen toestemming om de poort openbaar toegankelijk te laten.

Globale velden

Veld Betekenis Veilige duiding
online_mode Authenticatie bij de proxy voor normale premium-netwerken true
ip_forward IP, UUID en profiel naar de backend vereist, maar geen toegangscontrole
player_limit globale harde spelerslimiet 0 of lager betekent onbeperkt
server_connect_timeout tijd voor backendverbinding te klein geeft valse meldingen, te groot lange wachttijden
remote_ping_timeout timeout voor backend-pings een ping is niet hetzelfde als een echte join
remote_ping_cache cache voor backendstatus kan kortstondig een oude status tonen
connection_throttle tijdvenster voor nieuwe verbindingen geen volledige bot-/DDoS-bescherming
forge_support extra Forge-handshake-ondersteuning modloadercompatibiliteit apart controleren

servers: backends benoemen

Elke sleutel onder servers is een interne naam. address moet bereikbaar zijn vanuit het perspectief van het proxyproces. restricted: true vereist de permissie bungeecord.server.<name>, maar voorkomt geen directe netwerktoegang tot de backendpoort.

Vermijd hetzelfde publieke proxydomein als backendadres: dat kan een lus veroorzaken. Gebruik een concreet intern, privé- of anderszins voor de proxy vrijgegeven adres.

listeners: publieke ingangen

host moet overeenkomen met de toegewezen proxyallocatie. priorities is de geordende lijst voor start en fallback. Een typefout zoals Lobby in plaats van lobby volstaat om ervoor te zorgen dat er geen standaarddoel wordt gevonden.

force_default_server: true start nieuwe verbindingen via de priorities-/forced-host-logica. Bij false kan BungeeCord proberen een eerder gebruikt doel te herstellen.

max_players is niet player_limit

listeners.*.max_players bepaalt het weergegeven spelersaantal in de serverlijst. player_limit is de globale harde grens. Stel beide bewust in; een mooie weergave vervangt geen capaciteitsmeting.

forced_hosts en DNS

forced_hosts koppelt een hostnaam aan een interne servernaam. DNS wijst nog steeds naar BungeeCord. Gebruik voor een domein en afwijkende poort de domein-/SRV-gids.

Velden niet verwarren

  • proxy_protocol is bedoeld voor een voorgeschakelde HAProxy-/PROXY-protocol-sender, niet voor normale BungeeCord-forwarding.
  • query_enabled opent indien nodig een aparte UDP-dienst; activeer hem niet uit voorzorg.
  • ping_passthrough neemt de MOTD en status van een doel over, maar maakt een backenduitval wel zichtbaarder.
  • restricted is een BungeeCord-permissie, geen firewall.
  • /greload laadt niet elke plugin- en permissiewijziging betrouwbaar; plan een herstart in.

Backendzijde passend configureren

Zet server.properties op online-mode=false en settings.bungeecord: true in spigot.yml. Bij Paper moet proxies.bungee-cord.online-mode overeenkomen met de online_mode van de proxy. Lees voor een wijziging de gids voor veilige forwarding en maak een geteste back-up via het kopieer-/rollbackpad dat wordt beschreven in de gids voor versiewissel.

Validatie

  1. Gebruik alleen spaties, geen tabs.
  2. Controleer de inspringing en strings met speciale tekens.
  3. Vergelijk alle namen in priorities en forced_hosts met servers.
  4. Herstart backend en proxy volledig.
  5. Test TCP, Minecraft-ping en een echte lobby-join afzonderlijk.
  6. Test vanaf een onafhankelijke bron dat de backendpoort geblokkeerd is.

Als BungeeCord geen lobby bereikt, helpt de fallback-foutgids. Installeer pas na deze basistest proxy- en backend-plugins op het juiste niveau.

FAQ

Waarom moet ik de config.yml niet uit een handleiding kopiëren?

Omdat velden en standaardwaarden per build verschillen. Laat BungeeCord het bestand met je geïnstalleerde versie zelf genereren en neem daaruit alleen de waarden over die je echt wilt aanpassen. Een veld uit een oud voorbeeld kan in jouw build ontbreken of een andere betekenis hebben.

Wat is het verschil tussen max_players en player_limit?

listeners.*.max_players is puur weergave: het getal dat clients in de serverlijst zien. player_limit is de harde globale grens waarbij de proxy verbindingen weigert (0 of lager betekent onbeperkt). Stel beide bewust in — een hoge weergave vervangt geen capaciteitsmeting.

Volstaat restricted: true om een backend te beveiligen?

Nee. restricted is een BungeeCord-permissie en vereist bungeecord.server.<name> voor het wisselen via de proxy. Het weerhoudt niemand ervan de backendpoort rechtstreeks te benaderen. De bescherming daar is firewall of privénetwerk, niet de proxyconfiguratie.

Moet ik na een wijziging herstarten, of volstaat /greload?

Plan een herstart in. /greload leest de configuratie opnieuw in, maar draagt niet elke plugin- en permissiewijziging betrouwbaar over naar de actieve staat. Bij wijzigingen aan listeners, servers of forwarding is een volledige herstart de enige betrouwbare weg.

Waarom mag het proxydomein niet als backendadres staan?

Omdat de proxy zichzelf dan als doel aanspreekt en er een lus ontstaat. Onder servers.<name>.address hoort het adres waarmee het proxyproces de backend bereikt — een intern of privé-adres, niet de publieke naam waar de DNS van je netwerk naar wijst.

Primaire bronnen