Proxy Protocol dla Minecrafta: po co jest i jak go skonfigurować
Co to jest Proxy Protocol
Kiedy serwer Minecraft stoi za reverse proxy (czy to ochrona DDoS, CDN, czy własny serwer proxy), pojawia się jeden fundamentalny problem: serwer widzi adres IP proxy, a nie prawdziwy IP gracza. Dla serwera wszystkie połączenia wyglądają tak, jakby szły z tego samego adresu.
Proxy Protocol rozwiązuje właśnie ten problem. To prosty protokół opracowany w HAProxy, który przekazuje informacje o źródłowym połączeniu (adres IP i port klienta) na samym początku połączenia TCP. Proxy dodaje specjalny nagłówek przed przekazaniem ruchu do backendu, a backend go odczytuje i wie, kto naprawdę się połączył.
Istnieją dwie wersje protokołu. Proxy Protocol v1 przekazuje dane w formacie tekstowym, v2 - binarnym. Druga wersja jest bardziej zwarta i szybsza w parsowaniu. Większość nowoczesnych rozwiązań (w tym MineGuard) używa v2.
Po co to serwerowi Minecraft
Bez prawdziwych adresów IP psuje się cały zestaw serwerowych mechanik, na których administratorzy polegają codziennie.
Bany i moderacja
Najbardziej oczywisty przypadek. Ban IP to jedno z podstawowych narzędzi walki z grieferami i cheaterami. Jeśli serwer widzi tylko IP proxy, zbanowanie konkretnego gracza po IP jest niemożliwe. Gorzej, jeśli spróbujesz zbanować ten jeden IP, który serwer widzi, odłączą się w ogóle wszyscy gracze.
Geoblokowanie i geoanaliza
Wiele serwerów ogranicza połączenia po geografii. Rosyjskojęzyczny serwer może blokować połączenia z regionów, z których zwykle lecą boty. Albo na odwrót, serwer eventowy jest otwarty tylko dla określonego regionu. Bez prawdziwych IP geofiltracja nie działa w ogóle.
Plus analityka: rozumienie, skąd przychodzą gracze, jest przydatne dla rozwoju projektu. Które regiony rosną, gdzie trzeba się reklamować, czy potrzebne są dodatkowe lokalizacje serwerów.
Pluginy i limity
Mnóstwo pluginów jest powiązanych z IP gracza. Limity połączeń z jednego IP, systemy antybot, systemy głosowania, powiązanie kont. Gdy wszyscy gracze "przychodzą" z jednego adresu, te pluginy albo nie działają, albo działają nieprawidłowo.
Logowanie
W razie incydentu (włamanie na konto, atak od środka, naruszenie zasad) logi z prawdziwymi adresami IP są jedynym sposobem rozgryzienia sytuacji. Logi, w których każdy ma jeden IP, są bezużyteczne.
Konfiguracja Proxy Protocol dla Paper
Paper (i jego forki typu Purpur) wspierają Proxy Protocol od stosunkowo świeżych wersji. Konfiguracja zależy od tego, której wersji Paper używasz.
Paper 1.19.4 i nowszy
W pliku konfiguracyjnym config/paper-global.yml znajdź sekcję proxies:
proxies:
proxy-protocol: true
Zapisz plik i zrestartuj serwer. Gotowe.
Stare wersje Paper
Dla wersji przed 1.19.4 konfiguracja leży w paper.yml:
settings:
proxy-protocol: true
Ważna uwaga
Po włączeniu Proxy Protocol serwer zacznie oczekiwać nagłówka PP od każdego przychodzącego połączenia. To znaczy, że bezpośrednie połączenia (bez proxy) przestaną działać. Nie włączaj tej opcji, zanim skonfigurujesz proxy, bo inaczej nikt nie będzie mógł wejść na serwer, włącznie z tobą.
Jeśli testujesz na lokalnej maszynie i łączysz się bezpośrednio, musisz albo wyłączyć PP na czas testów, albo łączyć się przez proxy.
Konfiguracja Proxy Protocol dla Velocity
Velocity to popularny serwer proxy dla sieci z kilku serwerów. Jeśli twoja architektura wygląda jak "ochrona DDoS -> Velocity -> Paper", to PP trzeba włączyć na Velocity, a już Velocity przekaże prawdziwe IP na serwery backend przez swój protokół.
W pliku velocity.toml:
[advanced]
haproxy-protocol = true
Po restarcie Velocity będzie czytać nagłówki PP z przychodzących połączeń.
Łańcuch proxy
Typowy schemat dla chronionego serwera:
Gracz -> ochrona DDoS (PP v2) -> Velocity (haproxy-protocol = true) -> Paper
W takim schemacie PP włącza się tylko na Velocity. Paper dostaje prawdziwe IP przez wbudowany mechanizm forwarding Velocity (modern forwarding). Nie trzeba włączać PP na Paper.
A jeśli nie masz Velocity i architektura jest prostsza:
Gracz -> ochrona DDoS (PP v2) -> Paper (proxy-protocol = true)
Wtedy PP włącza się na Paper bezpośrednio.
Nie włączaj PP jednocześnie i na Velocity, i na Paper w jednym łańcuchu. Paper za Velocity nie powinien oczekiwać nagłówków PP.
Jak Proxy Protocol działa z ochroną DDoS
Usługa ochrony DDoS dla Minecrafta działa jak reverse proxy: przyjmuje przychodzące połączenia na swój IP, filtruje złośliwy ruch i przesyła czysty ruch do twojego prawdziwego serwera. Bez Proxy Protocol w takim schemacie serwer zobaczy IP filtra, a nie IP gracza.
MineGuard wspiera Proxy Protocol v2. Włącza się jednym przełącznikiem w panelu, w ustawieniach sieci. Po włączeniu filtr automatycznie dodaje nagłówek PP v2 do każdego proxy'owanego połączenia, przekazując prawdziwy IP gracza na twój serwer.
Co się dzieje technicznie:
- Gracz łączy się z chronionym adresem (IP filtra MineGuard).
- Filtr analizuje ruch, odsiewa ataki i boty.
- Legalne połączenie jest proxy'owane na twój prawdziwy serwer.
- Na początku połączenia TCP dodawany jest nagłówek PP v2 z IP i portem gracza.
- Twój serwer (Paper/Velocity) czyta nagłówek i widzi prawdziwy IP.
Cały łańcuch jest przezroczysty dla gracza. On po prostu łączy się z adresem i gra, nie zauważając ani ochrony, ani proxy'owania.
Typowe błędy przy konfiguracji
Przez czas pracy z Proxy Protocol w kontekście Minecrafta zebrało się kilka pułapek, w które wpada się najczęściej.
Błąd 1: MOTD się nie pokazuje albo pokazuje nieprawidłowo
Gdy klient Minecrafta wysyła zapytanie o MOTD (Server List Ping), ustanawia zwykłe połączenie TCP. Jeśli na serwerze włączony jest Proxy Protocol, a zapytanie o MOTD idzie bez nagłówka PP (na przykład przez monitoring albo bezpośrednio), serwer nie może rozebrać pakietu i zrywa połączenie.
Rozwiązanie: upewnij się, że wszystkie połączenia z serwerem idą przez proxy, które wysyła nagłówek PP. Jeśli potrzebny ci monitoring bezpośrednio, użyj narzędzi, które potrafią wysyłać nagłówek PP, albo monitoruj przez osobny port bez PP.
Błąd 2: Podwójny Proxy Protocol
Klasyczna sytuacja: ochrona DDoS wysyła nagłówek PP do Velocity, Velocity przekazuje połączenie do Paper, a na Paper też włączony jest PP. Paper próbuje przeczytać nagłówek PP z danych, które wysyła Velocity, nie znajduje go (bo Velocity przekazuje dane swoim protokołem) i crashuje albo odrzuca połączenie.
Zasada jest prosta: PP włącza się tylko na pierwszym przyjmującym ogniwie twojej infrastruktury.
- Jest Velocity? PP włączamy na Velocity, Paper zostaje bez PP.
- Nie ma Velocity? PP włączamy na Paper.
- Nigdy nie włączamy PP na obu.
Błąd 3: Zapomniano włączyć PP na serwerze, ale włączono na proxy
Proxy wysyła nagłówek PP, a serwer się go nie spodziewa. Serwer próbuje zinterpretować nagłówek jako początek Minecraft Handshake, nie może go sparsować i odrzuca połączenie. Gracze widzą "Connection refused" albo "Can't connect to server".
Błąd 4: Włączono PP na serwerze, ale zapomniano na proxy
Lustrzana sytuacja. Serwer oczekuje nagłówka PP, ale od razu dostaje Minecraft Handshake. Rezultat ten sam: połączenie zrywa się.
Błąd 5: Firewall blokuje porty albo protokoły
PP działa na zwykłym połączeniu TCP, nie na osobnym porcie. Ale jeśli masz twarde reguły firewalla, które pozwalają na połączenia tylko z określonych IP, upewnij się, że adres IP serwera proxy (albo filtra ochrony DDoS) jest dozwolony. To samo dotyczy reguł iptables/nftables: muszą przepuszczać ruch od proxy.
Weryfikacja działania
Po konfiguracji trzeba się upewnić, że wszystko działa poprawnie. Kilka sposobów:
Przez logi serwera
Połącz się z serwerem i zajrzyj do logów. Jeśli w latest.log widzisz swój prawdziwy IP (a nie IP proxy czy filtra), znaczy że PP działa.
[Server thread/INFO]: PlayerName[/203.0.113.45:52341] logged in
Jeśli zamiast twojego IP stoi tam adres proxy (na przykład wewnętrzny IP twojej ochrony), znaczy że coś jest źle skonfigurowane.
Przez pluginy
Plugin GeoIP albo dowolny inny plugin pokazujący IP gracza pokaże prawdziwy adres, jeśli PP jest skonfigurowany poprawnie.
Przez komendę
Na Paper można sprawdzić IP podłączonego gracza przez /whois (jeśli jest odpowiedni plugin) albo przez komendę Essentials /seen <player>.
Bezpieczeństwo a Proxy Protocol
Jest ważny aspekt bezpieczeństwa, o którym rzadko się mówi. Jeśli twój serwer przyjmuje nagłówki PP, to każdy, kto połączy się z serwerem bezpośrednio (omijając proxy), może teoretycznie podrobić swój IP, wysyłając fałszywy nagłówek PP.
Dlatego kluczowe jest:
-
Zamknij bezpośredni dostęp do serwera. Firewallem pozwól na połączenia tylko z adresów IP twojego proxy/ochrony. Wszystkie inne adresy muszą być zablokowane.
-
Nie publikuj prawdziwego IP serwera. Jeśli atakujący zna twój prawdziwy IP, może uderzać bezpośrednio, omijając ochronę. Używaj tylko adresu ochrony w DNS i na platformach monitoringu.
-
Sprawdzaj konfigurację po aktualizacjach. Przy aktualizacji Paper albo Velocity upewnij się, że ustawienia PP nie zresetowały się do wartości domyślnych.
Przy użyciu MineGuard prawdziwy IP twojego serwera zna tylko system filtracji. Graczom widać tylko adres filtra, co dodaje dodatkowy poziom ochrony.
Proxy Protocol a BungeeCord
Osobno warto wspomnieć o BungeeCord. On też wspiera Proxy Protocol, ale mechanizm różni się od Velocity.
W config.yml BungeeCord:
proxy_protocol: true
Działa analogicznie: BungeeCord zaczyna czytać nagłówki PP z przychodzących połączeń.
Jeśli jednak wybierasz między BungeeCord a Velocity, Velocity jest lepszy z kilku powodów: jest szybszy, ma lepsze wsparcie modern forwarding i aktywniej się rozwija. Proxy Protocol działa równie dobrze na obu, ale ogólnie Velocity to bardziej nowoczesne rozwiązanie.
Podsumowanie
Proxy Protocol to prosta rzecz, która rozwiązuje jeden konkretny problem: utratę prawdziwych adresów IP przy proxy'owaniu. Bez niego tracisz możliwość banowania po IP, używania geofiltracji, zbierania sensownej analityki i pełnej pracy z pluginami.
Konfiguracja zajmuje kilka minut: włączyć na proxy (albo ochronie DDoS), włączyć na przyjmującym serwerze, sprawdzić logi. Najważniejsze to pamiętać o trzech zasadach:
- PP włącza się tylko na jednym ogniwie łańcucha.
- Bezpośredni dostęp do serwera musi być zamknięty firewallem.
- Po włączeniu PP bezpośrednie połączenia (bez proxy) przestaną działać.
Jeśli używasz MineGuard do ochrony serwera, włączenie PP v2 zajmuje dokładnie jedno kliknięcie w panelu. Serwer nadal widzi prawdziwe IP graczy, a ochrona nadal filtruje śmieciowy ruch. Wszyscy zadowoleni.
Chroń swój serwer przed atakami DDoS
Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.
Wypróbuj za darmoPowiązane artykuły
Jak wybrać hosting z ochroną DDoS pod Minecraft
Rozkminiamy, co tak naprawdę kryje się za napisem "DDoS protection included" u hostingów.
Factions vs KingdomsX: który plugin PvP wybrać w 2026
Uczciwe porównanie 2026: SaberFactions kontra KingdomsX. Claim, wojny, oblężenia, ekonomia, wydajność, dodatki i który plugin frakcji do jakiego stylu serwera.
Jak skonfigurować ekonomię na serwerze Minecraft: kompletny poradnik
Szczegółowy poradnik konfiguracji ekonomii na serwerze Minecraft: Vault, sklepy, prace, aukcje i ochrona przed dupami. Wszystko, co potrzebne do stabilnej ekonomii serwera.