Základy Používání BungeeCordu
Body návodu:
-
Co je to Bungeecord?
-
Jiné verze
-
Bezpečnost
-
Nastavení serverů
-
Oprávnění
1. Co je to Bungeecord?
Bungeecord je proxy server, který umožňuje spojit více samostatných Spigot (a lepších) serverů pod jednu síť.
Toho se dosahuje pomocí tzv. forwardingu, neboli přeposílání zpráv mezi specifické cíle (servery)
Funguje jednoduše - máte k dispozici skupinu hlavních a vedlejších serverů, které mají svou vlastní IP adresu i port, a lze se na ně napojit přes bungee.
Jelikož toho lze zneužít, je třeba server i zabezpečit.
Na nezabezpečený server se lze dostat přes jakoukoliv instanci bungee, pokud známe IP a Port cílového serveru.
Jde tedy jen o most, skrze který se hráči připojují na cílové subservery. Přitom však na serverech nejsou doslova, ale Bungeecord si je přerozděluje tak, aby všechna komunikace šla na cílový server, jako by se hráč připojil přímo.
2. Jiné verze
Bungeecord existuje již od verze 1.5.2, a tak není divu, že vznikly jeho modifikace. Spravuje a vyvíjí jej SpigotMC.
Mezi nejznámější patří Waterfall a Flamecord.
Waterfall je vyvíjen skupinou PaperMC, která téže vyvíjí modifikaci Spigotu - Paper.
Flamecord patří mezi tzv. custom modifikace, a zaměřuje se na bezpečnost a rychlost Bungeecordu, zatímco Waterfall na obecnou funkcionalitu a bugfixy.
3. Bezpečnost
Bezpečnost je nejdůležitější aspekt jakéhokoliv serveru, bez vyjímek.
Kvůli zmíněné chybě v bezpečnosti existují pluginy, které tento problém řeší.
BungeeGuard je řešení, které na připojení mezi proxy a herním serverem přidává klíč (token). Pokud tento token není na obou stranách stejný, nelze se připojit. Tím se předejde všem připojením, které tento klíč neznají. Nelze se pak tedy připojit jednoduše z jiné bungee instance.
Návod na nastavení BungeeGuard najdete zde.
4. Nastavení Serverů
BungeeCord pracuje na podobném principu, jako Spigot server.
Máte k dispozici základní konfiguraci (config.yml) a složku s pluginy.
Tyto pluginy jsou unikátní pro Bungeecord a nelze zde nahrát jiné, než k tomu uzpůsobené pluginy.
Najít je můžete na (https://www.spigotmc.org/resources/categories/bungee-proxy.3/)
Základní nastavení - Listeners:
• Port je zde označen jako “query_port”
• IP Adresa je pak označena jako “host”
• Adresu není třeba vypsat, je přiřazena automaticky, pokud používáme adresu “0.0.0.0” (all interfaces)
• Server, který chceme, aby byl lobby, či přihlašovacím serverm, dáme jako první položku v sekci priorities.
Ostatní není třeba vypisovat.
• bind_local_address přiřadí lokální IP pro 0.0.0.0, tzn adresu nodu, na kterém se server nachází (alfa.gamerhost.pro, aj.)
• force_default_server by správně měl být zapnutý, pokud používáte autentifikaci na lobby. Zabraňuje tomu, aby se hráč dostal na jiné servery, když se připojuje. Také to znamená, že pokud je auth server nedostupný, nebude se moci připojit, a tedy nemůže obejít přihlašování.
Přidávání serverů:
• Servery lze najít v sekci “servers”.
• Každý server má svoje id, neboli název (survival, test)
Tento název se používá při připojení na něj, nastavení pluginů, aj.
• Každý server má svou adresu a port. Ta může být naprosto odlišná, pokud Bungee server může dosáhnout připojeného serveru. (Což je zpravidla vždy)
• Podle daného schématu je možné v rychlosti přidat server, na který se hráči napojí.
Jména těchto serverů lze použít v již zmíněných priorities (seznamu priorit při připojení)
Nastavení na straně jednotlivých serverů:
• Každý subserver musí mít ve spigot.yml nastaveno “bungeecord: true”
• BungeeGuard token musí být totožný s tím ve složce “token.yml” na BungeeCord instanci.
• Vypneme kompresi packetů v server.properties pro subservery (packet-compression-threshold: 0)
• Nastavíme online-mode na false
Ostatní důležitá nastavení:
• ip_forward je velmi důležité nastavení.
Předává automaticky IP adresy serverů i proxy instance.
Není třeba mít zapnuté pro VPS
• prevent_proxy_connections dokáže částečně předejít VPN a dalším proxy připojením zvenčí.
• online_mode by měl být pro warez servery vždy false. Pokud je pro hráče s legální verzí, je třeba jej mít na online, a pro každý další sub-server na offline (jednotlivé hrací servery)