Przejdź do treści
Aktualny kupon:10% zniżkiUżyj w zamówieniu

Sieć serwerów z Velocity: lobby, survival i minigry pod jednym adresem

Jak połączyć kilka serwerów Minecraft proxy Velocity: instalacja, velocity.toml linia po linii, modern forwarding, konfiguracja Papera i Fabrica, zabezpieczenie backendów i naprawa błędów.

  • ekspert
  • ~40 min
  • Zaktualizowano 9.10.2026

Velocity to proxy, dzięki któremu gracze łączą się z jednym adresem, a potem przechodzą między serwerami poleceniem /server – na przykład z lobby na survival albo na minigry. Pokażemy, jak zainstalować i skonfigurować Velocity, połączyć je z serwerami bezpiecznym modern forwardingiem i zabezpieczyć serwery za proxy tak, aby nikt nie dostał się na nie bezpośrednio.

Czego potrzebujesz

  • Co najmniej dwa serwery Minecraft: Paper lub Purpur (wersja 1.13 lub nowsza) albo Fabric, Forge lub NeoForge z modem do forwardingu
  • Miejsce na uruchomienie proxy: VPS z Ubuntu 24.04 lub Debianem 13 (połączenie przez SSH); osobny produkt Minecraft Proxy przygotowujemy
  • Dostęp do zakładek Pliki i Ustawienia serwera każdego serwera
  • Około 40 minut

Kiedy potrzebujesz proxy#

ChceszPotrzebujesz proxy?
Jeden serwer dla znajomych lub społecznościNie
Lobby + jeden lub więcej serwerów gry pod jednym adresemTak
Różne tryby gry (survival, kreatywny, minigry) z przełączaniem bez rozłączaniaTak
Wspólny czat, uprawnienia lub bany na wszystkich serwerachTak (z pluginami na proxy)
Gracze Bedrocka w całej sieciTak, Geyser działa wtedy tylko na proxy

Proxy samo nie uruchamia gry, tylko przekazuje połączenia. Jest oszczędne: na dziesiątki graczy wystarczy 1–⁠2 GB pamięci.

Jak działa sieć#

text
Gracz ──► mc.example.cz:25565  (Velocity, weryfikuje konto gracza)
              │
              ├──► lobby     (Paper, online-mode=false, przyjmuje tylko proxy)
              ├──► survival  (Paper, online-mode=false, przyjmuje tylko proxy)
              └──► minihry   (Paper, online-mode=false, przyjmuje tylko proxy)
  1. Gracz łączy się z adresem proxy. Proxy sprawdza w Microsofcie, czy ma oryginalne konto (online-mode = true).
  2. Proxy wysyła go na pierwszy serwer z listy try (lobby).
  3. Razem z połączeniem proxy przekazuje serwerowi nick gracza, UUID, skin i prawdziwy adres IP (player info forwarding). Dane podpisuje tajnym kluczem, który zna tylko proxy i Twoje serwery.
  4. Serwery za proxy (backendy) same niczego nie weryfikują (online-mode=false) i ufają tylko proxy z ważnym kluczem. Kto połączy się bezpośrednio, dostanie komunikat This server requires you to connect with Velocity.

Proxy, serwery i domena#

  • Proxy: Velocity 4.x wymaga Javy 25. Uruchom je na VPS (VPS Performance, VPS Budget). Na proxy należą tylko pluginy dla Velocity – pluginy dla Papera na nim nie działają.
  • Backendy: zwykłe serwery Minecraft. Mogą działać w StormHost jako osobne usługi (każda z własnym adresem i portem) albo na tym samym VPS co proxy.
  • Domena (opcjonalnie): gracze wpisują mc.example.cz zamiast IP (Adres serwera i domena).

Produkt Minecraft Proxy

Przygotowujemy samodzielne proxy jako usługę. W zakładce Uruchamianie będzie miało preset parametrów Proxy dla Velocity. Do tego czasu użyj VPS – kroki są poniżej.

Instalacja Velocity na VPS#

Działa tak samo na Ubuntu 24.04 i na Debianie 13. Polecenia uruchamiaj jako root.

  1. Zainstaluj Javę 25 i curl:

    bash
    apt update
    apt install openjdk-25-jre-headless curl
    • apt update – pobiera aktualną listę pakietów.
    • apt install openjdk-25-jre-headless – instaluje środowisko uruchomieniowe Javy 25 bez bibliotek graficznych (serwer ich nie potrzebuje).
    • curl – program do pobierania plików z internetu (jeśli już go masz, nic się nie stanie).
  2. Sprawdź wersję:

    bash
    java -version

    Pierwsza linia wyniku musi zawierać 25.

  3. Utwórz użytkownika i folder dla proxy:

    bash
    useradd --system --create-home --home-dir /opt/velocity --shell /usr/sbin/nologin velocity
    • useradd --system – tworzy użytkownika systemowego bez hasła (proxy nie będzie działać jako root).
    • --create-home --home-dir /opt/velocity – tworzy folder /opt/velocity, w którym będzie proxy.
    • --shell /usr/sbin/nologin – nikt nie może zalogować się jako ten użytkownik.
    • velocity – nazwa użytkownika.
  4. Na papermc.io/downloads/velocity (otwiera się w nowym oknie) skopiuj link do najnowszej stabilnej wersji i pobierz ją:

    bash
    cd /opt/velocity
    curl -o velocity.jar "<DOWNLOAD_URL>"
    chown velocity:velocity velocity.jar
    • cd /opt/velocity – przechodzi do folderu proxy.
    • curl -o velocity.jar – pobiera plik i zapisuje go jako velocity.jar.
    • <DOWNLOAD_URL> – link skopiowany ze strony. Zastąp całość łącznie z nawiasami ostrymi, cudzysłowy zostaw.
    • chown velocity:velocity – ustawia użytkownika velocity jako właściciela pliku.
  5. Uruchom proxy po raz pierwszy, aby utworzyło konfigurację:

    bash
    runuser -u velocity -- env MALLOC_ARENA_MAX=2 java -Xms1G -Xmx1G -XX:MaxDirectMemorySize=512M -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -jar velocity.jar
    • runuser -u velocity -- – uruchamia polecenie za -- jako użytkownik velocity.
    • env MALLOC_ARENA_MAX=2 – ogranicza areny pamięci alokatora, aby proxy nie zużywało niepotrzebnie dodatkowej pamięci.
    • -Xms1G -Xmx1G – daje proxy 1 GB sterty (od razu całość, aby nie musiało jej powiększać w trakcie działania). Dla większej sieci zwiększ do 2G. Proxy potrzebuje dużo pamięci także poza stertą na sieć, więc nie dawaj mu więcej niż połowę pamięci, którą masz dla niego przeznaczoną.
    • -XX:MaxDirectMemorySize=512M – limit dla buforów sieciowych. Bez niego mogą urosnąć do rozmiaru sterty.
    • -XX:+UseG1GC … -XX:+AlwaysPreTouch – parametry zalecane przez dokumentację Velocity (garbage collector G1 dostrojony dla proxy).
    • -jar velocity.jar – uruchamia proxy.

    Generator skryptu startowego przygotuje polecenie dla innego rozmiaru pamięci.

    Po starcie zobaczysz linię Done (…)!. Wpisz end i naciśnij Enter, a proxy się wyłączy. W folderze są teraz velocity.toml i forwarding.secret.

  6. Aby proxy działało stale i samo uruchamiało się po restarcie VPS, utwórz dla niego usługę systemd według poradnika Aplikacja 24/7 na VPS. W pliku unit ustaw User=velocity, WorkingDirectory=/opt/velocity, Environment=MALLOC_ARENA_MAX=2, a w ExecStart wpisz polecenie z kroku 5 bez runuser -u velocity -- env MALLOC_ARENA_MAX=2 i z pełną ścieżką do Javy, czyli zaczynające się od /usr/bin/java -Xms1G ….

  7. Zezwól na port proxy w zaporze VPS: TCP 25565 (i port UDP Geysera, jeśli będziesz go używać). Zobacz Zapora w strefie klienta i UFW.

velocity.toml#

Otwórz /opt/velocity/velocity.toml (na przykład nano /opt/velocity/velocity.toml). Oto przykład z ustawieniami dla sieci trzech serwerów (resztę pliku zostaw bez zmian):

/opt/velocity/velocity.tomlTOML
bind = "0.0.0.0:25565"
motd = "<gold><bold>StormCraft</bold></gold> <gray>| lobby, survival, minihry"
show-max-players = 100
online-mode = true
force-key-authentication = true
player-info-forwarding-mode = "modern"
forwarding-secret-file = "forwarding.secret"

[servers]
lobby = "203.0.113.10:30066"
survival = "203.0.113.11:30067"
minihry = "203.0.113.12:30068"

try = [
    "lobby"
]

[forced-hosts]
"survival.example.cz" = [
    "survival"
]
UstawienieCo robiZalecana wartośćKiedy zmieniać
config-versionWersja formatu pliku.Nie zmieniajNigdy – Velocity zarządza nią samo.
bindAdres IP i port, na którym proxy nasłuchuje."0.0.0.0:25565"Inny port, jeśli nie chcesz lub nie możesz użyć 25565.
motdOpis na liście serwerów. Format MiniMessage (<gold>, <bold>, <#09add3>), a nie kody §.Twój opisW dowolnym momencie.
show-max-playersIle slotów pokazuje lista serwerów. Velocity nie ogranicza liczby graczy; to tylko wartość wyświetlana.Np. 100Według wielkości sieci.
online-modeProxy weryfikuje konta graczy w Microsofcie.trueNigdy na publicznym serwerze.
force-key-authenticationWymaga od graczy klucza do podpisywania czatu.truefalse, gdy na proxy działa Geyser (inaczej gracze Bedrocka nie mogą pisać).
prevent-client-proxy-connectionsWyrzuca gracza, którego dostawca internetu nie zgadza się z tym, co widzi serwer uwierzytelniania. Słaba ochrona przed VPN.falseZostaw.
player-info-forwarding-modeJak proxy przekazuje dane gracza: none (nic, gracze dostaną offline UUID), legacy (format BungeeCord, niebezpieczny), bungeeguard (legacy z kluczem), modern (podpisany format Velocity, wersja 1.13+)."modern"legacy/bungeeguard tylko dla serwerów na 1.12 i starszych.
forwarding-secret-filePlik z tajnym kluczem forwardingu."forwarding.secret"Nie zmieniaj.
announce-forgeProxy przedstawia się na liście serwerów jako serwer Forge.falsetrue dla sieci serwerów z modami.
kick-existing-playersGdy to samo konto zaloguje się drugi raz, pierwsza sesja zostanie wyrzucona (zachowanie Vanilli).falsetrue, jeśli Twoi gracze tego oczekują.
[servers]Lista backendów w postaci nazwa = "IP:port". Nazwę gracze widzą w /server.Adresy Twoich serwerówGdy dodajesz lub przenosisz serwer.
tryKolejność serwerów, na które proxy próbuje wysłać graczy po połączeniu lub wyrzuceniu z serwera.["lobby"]Dodaj serwer zapasowy, na który gracze trafią, gdy lobby nie działa.
[forced-hosts]Wysyła graczy od razu na konkretny serwer według wpisanego adresu (kto wpisze survival.example.cz, trafi bezpośrednio na serwer survival).W razie potrzebyGdy chcesz dla każdego serwera osobną subdomenę. Domena musi wskazywać na proxy.

W sekcjach [advanced] i [query] warto zwrócić uwagę na trzy pozycje:

Sekcja i ustawienieCo robiZalecana wartośćKiedy zmieniać
[advanced] › login-ratelimitMinimalny odstęp (ms) między połączeniami z jednego IP.3000Nie zmieniaj; chroni przed zalewaniem.
[advanced] › failover-on-unexpected-server-disconnectGdy backend padnie, wysyła graczy na inny serwer zamiast ich rozłączać.trueZostaw.
[query] › enabledOdpowiada na zapytania Query (GameSpy4).falseGdy potrzebuje tego strona ze statystykami.

Velocity 3 i 4

W wersji 4 zamiast linii ping-passthrough = "DISABLED" jest osobna sekcja [ping-passthrough] z przełącznikami version, players, description, favicon i modinfo. Decydują, co proxy przejmuje z backendu na listę serwerów. Domyślnie wszystko jest wyłączone i obowiązuje motd z velocity.toml.

Tajny klucz forwardingu#

Przy pierwszym starcie Velocity tworzy plik forwarding.secret z losowym 12-⁠znakowym kluczem. Zalecamy zastąpić go dłuższym:

  1. W generatorze haseł wygeneruj losowe hasło o długości co najmniej 32 znaków (litery i cyfry).
  2. Wpisz je jako jedyną linię do /opt/velocity/forwarding.secret (na przykład przez nano).
  3. Ten sam klucz wpiszesz potem na wszystkich backendach.

Klucz jest jak hasło administratora

Kto zna forwarding.secret i adres backendu, może połączyć się z nim jako dowolny gracz, także jako Ty. Nikomu go nie wysyłaj, nie umieszczaj w publicznych repozytoriach, a przy podejrzeniu wycieku wymień go na proxy i na wszystkich backendach.

Konfiguracja backendów (Paper i Purpur)#

Na każdym serwerze za proxy:

  1. W zakładce Ustawienia serwera w grupie Gracze wyłącz Weryfikacja kont (online-mode) (online-mode=false) i kliknij Zapisz.

    Strefa klienta pokaże ostrzeżenie, że dołączyć może każdy. Za proxy z modern forwardingiem to prawidłowe – weryfikację robi proxy, a serwer przyjmuje tylko graczy z ważnym kluczem.

  2. W zakładce Pliki otwórz spigot.yml i sprawdź, czy settings.bungeecord ma wartość false:

    spigot.ymlYAML
    settings:
      bungeecord: false
    • bungeecord – włącza forwarding w formacie BungeeCord (legacy). Przy modern forwardingu musi być wyłączony.
  3. Otwórz config/paper-global.yml i w sekcji proxies ustaw:

    config/paper-global.ymlYAML
    proxies:
      velocity:
        enabled: true
        online-mode: true
        secret: "<SECRET>"

    Zamiast <SECRET> wpisz zawartość pliku forwarding.secret z proxy. Zastąp całość łącznie z nawiasami ostrymi, cudzysłowy zostaw.

  4. Uruchom serwer ponownie.

Co oznaczają ustawienia w paper-global.yml:

UstawienieCo robiZalecana wartośćKiedy zmieniać
proxies.velocity.enabledSerwer przyjmuje modern forwarding od Velocity i odrzuca bezpośrednie połączenia.trueTylko przy usuwaniu proxy.
proxies.velocity.online-modeMusi zgadzać się z online-mode w velocity.toml. Decyduje, jakie UUID dostaną gracze.trueNigdy, jeśli proxy weryfikuje graczy.
proxies.velocity.secretTen sam klucz co w forwarding.secret na proxy.Zawartość forwarding.secretGdy wymieniasz klucz.

Na Paperze 1.18.2 i starszym te ustawienia są w paper.yml pod nazwami settings.velocity-support.enabled, settings.velocity-support.online-mode i settings.velocity-support.secret.

Fabric, Forge i NeoForge#

LoaderCo zainstalowaćGdzie wpisać klucz
FabricMod FabricProxy-Lite (z Modrinth, wymaga Fabric API)config/FabricProxy-Lite.toml, wpis secret = "<SECRET>"
Forge, NeoForgeMod ProxyCompatibleForgePlik konfiguracyjny moda w folderze config (według strony moda na Modrinth)

Ustawienia FabricProxy-Lite:

UstawienieCo robiZalecana wartośćKiedy zmieniać
secretKlucz z forwarding.secret.Zawartość forwarding.secretGdy wymieniasz klucz.
hackOnlineModePozwala na połączenia przez proxy nawet przy włączonym online-mode na backendzie.true (domyślnie)Zostaw.
hackEarlySendWysyła dane gracza wcześniej. Wymaga tego LuckPerms, a także niektóre inne mody.true, jeśli używasz LuckPermsInaczej domyślne false.
hackMessageChainNaprawia wyrzucanie graczy z komunikatem o nieprawidłowym podpisie czatu po przejściu między serwerami.falsetrue, gdy gracze po /server są wyrzucani z powodu podpisu czatu.

Zabezpieczenie backendów#

Backend z online-mode=false bez działającego forwardingu wpuściłby każdego pod dowolnym nickiem. Zależnie od tego, gdzie działają Twoje serwery:

  • Backendy w StormHost (osobne usługi): adres i port ustawiamy automatycznie (server-ip nie da się zmienić), więc serwery są osiągalne z internetu. Chroni je właśnie modern forwarding: przy proxies.velocity.enabled: true serwer odrzuci każdego, kto nie przyjdzie przez proxy z ważnym kluczem. Nigdy więc nie używaj legacy ani none.
  • Backendy na tym samym VPS co proxy: w server.properties każdego backendu ustaw server-ip=127.0.0.1, a w velocity.toml użyj adresów 127.0.0.1:<PORT>. Serwery nie będą wtedy w ogóle osiągalne z zewnątrz. W zaporze VPS zezwól tylko na port proxy.
  • Backendy na innym VPS: w zaporze backendu zezwól na port serwera tylko z adresu IP proxy (Zapora w strefie klienta).

Przełączanie serwerów i pluginy na proxy#

PolecenieCo robiUprawnienie
/serverPokazuje, na którym serwerze jesteś, i proponuje pozostałe.velocity.command.server (domyślnie mają je wszyscy)
/server survivalPrzełącza na serwer survival.To samo
/glistLiczba graczy na proxy; z all podział według serwerów.velocity.command.glist (domyślnie nikt)
/send <NICK> <SERVER>Przenosi gracza na inny serwer.velocity.command.send
velocity reloadWczytuje ponownie velocity.toml (w konsoli proxy).velocity.command.reload
shutdownWyłącza proxy (tylko konsola).–

Pluginy na proxy (w folderze /opt/velocity/plugins, wersje dla Velocity):

  • LuckPerms – uprawnienia do poleceń proxy. Do uprawnień na serwerach LuckPerms musi być także na każdym backendzie, a wszystkie instancje muszą używać tej samej bazy MySQL/MariaDB (MySQL dla pluginów). Na każdym backendzie ustaw w konfiguracji LuckPerms inny server (na przykład lobby, survival), aby móc nadawać uprawnienia per serwer, oraz messaging-service: sql, aby zmiany działały od razu na wszystkich serwerach. Szczegóły w poradniku LuckPerms.
  • Geyser i Floodgate – gracze Bedrocka; instaluj je tylko na proxy (poradnik).
  • spark – profilowanie proxy, polecenie sparkv.

Sprawdzenie, czy działa#

  1. Uruchom proxy i backendy. Konsola proxy pokaże Listening on …:25565 i Done (…)!.
  2. Połącz się w grze z adresem proxy. Trafisz na serwer lobby.
  3. Wpisz /server survival – przełączy Cię bez rozłączania.
  4. W konsoli backendu sprawdź linię z Twoim połączeniem: musi zawierać Twój prawdziwy adres IP, a nie adres proxy. Wtedy forwarding działa. W domyślnym Trybie streamera konsola strefy klienta ukrywa adresy IP – do tego sprawdzenia kliknij u góry Pokaż szczegóły.
  5. Spróbuj połączyć się bezpośrednio z adresem backendu. Musisz dostać This server requires you to connect with Velocity.

Rozwiązywanie problemów#

Your server did not send a forwarding request to the proxy. Make sure the server is configured for Velocity forwarding.#

Backend nie ma włączonego modern forwardingu. Sprawdź proxies.velocity.enabled: true w config/paper-global.yml (na Fabricu FabricProxy-Lite) i czy po zmianie uruchomiłeś serwer ponownie.

Unable to verify player details#

Klucz na backendzie nie zgadza się z forwarding.secret na proxy. Skopiuj go ponownie (bez zbędnych spacji i pustych linii) i uruchom backend ponownie.

This server requires you to connect with Velocity.#

Łączysz się bezpośrednio z backendem – tak ma być, serwer jest chroniony. Jeśli widzisz ten komunikat także przy łączeniu przez proxy, proxy ma player-info-forwarding-mode ustawione na coś innego niż modern.

Unable to connect you to lobby. Please try again later.#

Proxy nie dotarło do backendu: serwer nie działa, adres lub port w [servers] nie zgadza się z adresem w zakładce Sieć tego serwera albo połączenie blokuje zapora.

There are no available servers to connect you to. Try again later or contact an admin.#

Żaden z serwerów z listy try nie jest dostępny. Uruchom lobby albo dodaj do try serwer zapasowy.

Gracze mają po przejściu na proxy pusty ekwipunek i inne uprawnienia#

Gracze dostali inne UUID. Przyczyną jest player-info-forwarding-mode = "none" (offline UUID) albo niezgodność online-mode na proxy i proxies.velocity.online-mode na backendzie. Ustaw modern forwarding i obie wartości na true. Dane pod starymi UUID zostają w świecie i plikach pluginów; przed przeniesieniem dużej sieci na proxy zrób kopię zapasową.

Proxy nie wpuszcza graczy Bedrocka albo nie mogą pisać#

Zobacz Crossplay z Bedrockiem: Geyser musi być na proxy, a force-key-authentication w velocity.toml musi być wyłączone.

Podsumowanie

  • Gracze łączą się tylko z proxy; proxy weryfikuje konta (online-mode = true), a backendy mają online-mode=false.
  • Zawsze używaj player-info-forwarding-mode = "modern", a na backendach proxies.velocity.enabled: true z tym samym kluczem z forwarding.secret.
  • forwarding.secret jest tajny; zastąp go długim losowym kluczem.
  • Velocity 4 wymaga Javy 25, a pluginy na proxy muszą być przeznaczone dla Velocity.
  • Sprawdź, czy bezpośrednie połączenie z backendem kończy się komunikatem This server requires you to connect with Velocity.

Czy ten poradnik był pomocny?

Dotyczy

  • Velocity 4.x
  • Paper 1.13 i nowszy
  • Fabric (FabricProxy-Lite)
  • Forge, NeoForge (ProxyCompatibleForge)
  • Ubuntu 24.04
  • Debian 13
Zgłoś błąd w poradniku

Wyszukiwanie w poradnikach