// Minecraft

Budowa sieci serwerów Minecraft z Velocity

Budowa sieci serwerów Minecraft z Velocity

Jeden serwer Minecraft to fajna sprawa, ale w pewnym momencie chcesz więcej: świat survival i świat creative albo osobny serwer minigier na eventy. Upychanie wszystkiego na jednym serwerze szybko robi się wolne i chaotyczne. Rozwiązaniem jest sieć: kilka serwerów pod jednym adresem, z proxy, które kieruje graczy we właściwe miejsce.

Velocity to obecnie naturalny wybór na takie proxy. Poniżej przeczytasz dlaczego, jak taka sieć jest zbudowana i jakich pułapek unikać — z forwarding-secret jako najważniejszą z nich.

Co właściwie robi proxy?

Proxy to mały serwer, który sam nie uruchamia żadnego świata. Gracze łączą się z adresem proxy, a ono przekazuje ich dalej do jednego z twoich prawdziwych serwerów: backendów. Dla graczy wygląda to jak jeden duży serwer. Wpisują /server survival albo wchodzą w portal w lobby i bez ponownego logowania lądują w innym świecie.

W praktyce daje to:

  • Jeden adres do wszystkiego. Gracze muszą znać tylko jedno IP lub domenę, niezależnie od tego, ile serwerów za nimi stoi.
  • Przełączanie bez ponownego łączenia. Z lobby na survival i na minigry, bez wylogowywania i list serwerów.
  • Konserwacja bez całkowitego przestoju. Restartujesz serwer survival, a reszta sieci działa dalej, a gracze czekają w lobby.
  • Rozłożenie obciążenia. Ciężka minigra albo tłoczny event nie ściąga w dół całej sieci; każdy backend ma własne zasoby.

Jest też uczciwa druga strona medalu: nagle zarządzasz kilkoma serwerami, a rzeczy ogólnosieciowe, jak czat, rangi i ekonomia, wymagają pluginów współdzielących dane między serwerami, zwykle przez bazę danych. Sieć opłaca się więc przede wszystkim wtedy, gdy jeden serwer robi się naprawdę za mały — nie gdy grasz z czwórką znajomych.

Velocity czy BungeeCord?

BungeeCord to weteran wśród proxy i przez lata był standardem. Velocity to nowocześniejszy odpowiednik, rozwijany przez zespół stojący za Paperem. Różnice w skrócie:

  • Wydajność. Velocity zostało zaprojektowane tak, by przy małej ilości pamięci obsłużyć wielu graczy naraz i wyraźnie lepiej się skaluje.
  • Bezpieczeństwo. Modern forwarding w Velocity podpisuje przekazywane dane graczy tajnym kluczem. BungeeCord wysyła te dane bez podpisu i potrzebuje dodatkowego pluginu, jak BungeeGuard, żeby załatać tę samą lukę.
  • Pluginy. Tu BungeeCord punktuje stażem: starych pluginów pod Bungee jest po prostu więcej. W praktyce niemal wszystkie duże pluginy sieciowe mają już także wersję pod Velocity.
  • Utrzymanie. Velocity jest aktywnie rozwijane, podczas gdy BungeeCord jest głównie utrzymywany dla kompatybilności.

Jeśli dziś zaczynasz nową sieć, wybierz Velocity. BungeeCord ma sens właściwie tylko wtedy, gdy zależysz od jednego konkretnego pluginu Bungee bez alternatywy pod Velocity — sprawdź to więc przed wyborem, a nie po nim.

Jak zbudowana jest twoja sieć

Minimalna sieć składa się z trzech elementów: proxy Velocity, lobby i przynajmniej jednego backendu z grą. Konfiguracja proxy znajduje się w velocity.toml, a jej rdzeń jest zaskakująco krótki. W sekcji [servers] nadajesz każdemu backendowi nazwę i adres, na przykład lobby = "127.0.0.1:25566" i survival = "127.0.0.1:25567". Wpisem try = ["lobby"] ustalasz następnie, że nowi gracze zaczynają w lobby.

Same backendy to zwykłe serwery Minecraft, najlepiej na Paperze. Warto wiedzieć:

  • Każdy backend działa osobno, z własnym portem oraz własnymi pluginami, światami i ustawieniami.
  • Na każdym backendzie ustawiasz online-mode w server.properties na false: proxy weryfikuje konta już przy wejściu, a backendy na tym polegają.
  • Najlepiej, gdy publicznie dostępne jest tylko proxy, a backendy przyjmują wyłącznie ruch od proxy.

Jeśli proxy i backendy działają u tego samego hostera, wewnętrzne połączenie jest krótkie i przekazywania w praktyce niemal nie zauważysz. Ten drugi punkt powyżej — wyłączenie weryfikacji kont — brzmi jednak wbrew każdej poradzie o bezpieczeństwie, jaką kiedykolwiek przeczytałeś, i to prowadzi nas do najważniejszego elementu całej układanki.

Forwarding-secret: mały plik, wielkie znaczenie

Ponieważ twoje backendy mają online-mode=false, same nie sprawdzają już kont. Bez dodatkowego zabezpieczenia każdy, kto zna adres backendu, może połączyć się z nim bezpośrednio, pod dowolnym nickiem — również twoim, jako właściciela. To klasyczna luka niedbale skonfigurowanych sieci i jest aktywnie wykorzystywana.

Velocity rozwiązuje to przez modern forwarding. Przy pierwszym uruchomieniu Velocity generuje plik forwarding.secret z tajnym kluczem. Proxy podpisuje nim przekazywane dane graczy, a backend akceptuje tylko połączenia z prawidłowym podpisem. Konfigurujesz to tak:

  1. Ustaw w velocity.toml tryb forwardingu na modern.
  2. Na każdym backendzie Paper włącz w konfiguracji Papera forwarding Velocity i wklej tam dokładnie ten sam secret co na proxy.
  3. Zrestartuj proxy i backendy, zaloguj się i sprawdź, czy widać twój zwykły skin — wtedy prawdziwe dane konta przechodzą poprawnie i forwarding działa.

Traktuj secret jak hasło: nie udostępniaj go nikomu i nie wklejaj do zrzutów ekranu ani zgłoszeń supportu. Jeśli mimo wszystko wybierzesz BungeeCord, użyj przynajmniej BungeeGuard lub podobnego rozwiązania, żeby załatać tę samą lukę.

Lobby, które udźwignie twoją sieć

Lobby to wizytówka i zarazem siatka bezpieczeństwa twojej sieci: każdy przez nie wchodzi, a gdy backend się restartuje lub pada, gracze na nie wracają. Utrzymuj je więc lekkie i nudno-stabilne:

  • Użyj małej, gotowej mapy; świat void z jedną wyspą nie bez powodu jest popularny.
  • Ustaw graczy w trybie adventure, żeby nikt niczego nie niszczył ani nie rozbierał.
  • Ogranicz pluginy do nawigacji i dekoracji: menu na kompasie albo NPC, którymi gracze przeskakują na serwer.
  • Wyłącz to, czego nie potrzebujesz, jak spawnowanie mobów i pogodę. To oszczędza zasoby i bałagan w konsoli.
  • Sprawdź, czy lista try w velocity.toml wskazuje na lobby, żeby przy crashu backendu gracze trafiali tam automatycznie zamiast oglądać komunikat o błędzie.

Lobby prawie nie potrzebuje zasobów; ciężka robota dzieje się na backendach. To tam licz zasoby z zapasem, zwłaszcza dla świata survival, gdzie wiele chunków pozostaje załadowanych.

Ile kosztuje sieć w MC-Node?

Zaleta sieci na osobnych pakietach: płacisz za każdy element dokładnie tyle, ile ten element potrzebuje, i skalujesz je niezależnie od siebie. Startowa sieć może wyglądać na przykład tak:

ElementPakietCena miesięcznie
Proxy VelocityCobblestone2,16 zł
LobbyStone4,75 zł
MinigryIron14,26 zł
SurvivalDiamond33,26 zł

Kompletna sieć startowa działa więc za 54,43 zł miesięcznie. Jeśli twój serwer survival wyrasta z rozmiaru, powiększasz tylko ten jeden pakiet. Wszystkie pakiety można wypowiedzieć co miesiąc i działają na dyskach NVMe ze standardową ochroną DDoS; pełną ofertę ze specyfikacjami znajdziesz w sklepie Minecraft MC-Node.

Zacznij od małej skali: proxy, lobby i jeden backend. Gdy forwarding-secret jest dobrze ustawiony, a gracze płynnie przeskakują między serwerami, każdy kolejny backend to kwestia domówienia serwera, skopiowania konfiguracji i dodania jednej linijki w velocity.toml.

// WYPRÓBUJ SAM
Twój serwer Minecraft online w 60 sekund
Zobacz pakiety →