Skip to content

Wiki pl pl

pjscruggs edited this page Nov 11, 2026 · 2 revisions

Raknetify2 · Polski (Polska)

Język

Tryb wieloosobowy

Połączenia sieciowe przez RakNet dla klientów i serwerów Minecrafta.

Pobierz · GitHub

Minecraft Raknetify2 Klient / Serwer
Fabric mods/raknetify2-fabric-*.jar Klient / Serwer
Forge mods/raknetify2-forge-*.jar Klient / Serwer
NeoForge mods/raknetify2-neoforge-*.jar Klient / Serwer
Spigot / Paper plugins/raknetify2-spigot-*.jar Serwer
Velocity plugins/raknetify2-velocity-*.jar Velocity
BungeeCord plugins/raknetify2-bungee-*.jar BungeeCord

Dodaj serwer

  1. Tryb wieloosobowy

  2. Dodaj serwer

  3. Adres serwera

    Adres serwera
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. Gotowe

  5. Dołącz

F3 · Raknetify2

F3
RakNet · UDP Aktywne · MTU 1400
TCP Nieaktywne

Velocity / BungeeCord

  1. Klient · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. Velocity / BungeeCord → TCP → Serwer
Numer portu · UDP Java
Fabric / Forge / NeoForge 1–65534 -Draknetify.fabric.portOverride=25570
Spigot / Paper ≥ 0.1.0-beta.1.431 1–65535 -Draknetify.spigot.portOverride=25570
Velocity 1–65534 -Draknetify.velocity.portOverride=25570
BungeeCord 1–65534 -Draknetify.bungee.portOverride=25570

Upłynął limit czasu

Adres serwera UDP
raknet;play.example.com:25580 play.example.com:25580 → NAT → 192.0.2.10:25570
Serwer · 192.0.2.10 25570/udp

config/raknetify2-compatibility.json

Serwer / Velocity / BungeeCord

JSON
① ② ③ {"mode":"ordered"}
① ∥ ② ∥ ③ {"mode":"multichannel"}

Simple Voice Chat

Serwer Raknetify2 · UDP 25565 Simple Voice Chat
Fabric / Forge / NeoForge config/raknetify2-voicechat.json · {"enabled":true} config/voicechat/voicechat-server.properties · port=-1
Spigot / Paper config/raknetify2-voicechat.json · {"enabled":true} plugins/voicechat/voicechat-server.properties · port=-1

Simple Voice Chat · Velocity / BungeeCord

PROXY protocol v2 · UDP

Adres serwera trustedProxies RakNet
192.0.2.10 · PROXY v2 / UDP ["192.0.2.10"] ✓
192.0.2.11 · PROXY v2 / UDP ["192.0.2.10"] ✗
Klient → RakNet / UDP ["192.0.2.10"] ✗

config/raknetify2-proxy-protocol.json

{"trustedProxies":["192.0.2.10"]}

Minecraft ≥ 1.20.5 · /transfer

  1. Serwer A · Fabric / Forge / NeoForge · config/raknetify2-transfers.json

    {"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]}
  2. Serwer B · play.example.com · server.properties → accepts-transfers=true

  3. Serwer A · /transfer play.example.com 25565 Alex → Klient (Alex) → RakNet · play.example.com:25570

PacketOrdering

Minecraft
ui Opcje
entity Szkielet
world_interaction Ekwipunek
effects Cząstki
chunk Bloki

PacketOrdering.java

Niezgodna wersja!

Zgłoś błędy

Główne strony

Raknetify2

Raknetify2 wykorzystuje RakNet poprzez UDP w celu współpracy w wieloosobowej grze Minecraft. Rozróżnia ruch komunikacyjny na kanały, tak aby utrata pakietów w jednym kanale mogła pozwolić na przepływ niezwiązanego ruchu. To umożliwia sprawną komunikację podczas naprawy połączenia, gromadzenia brakujących danych lub przesyłania części świata.

Raknetify2 to rozwijane niezależnie odgałęzienie projektu Raknetify, którego autorem jest ishland. Obsługuje nowsze wersje Minecraft. W ramach projektu utrzymywane są też warstwa transportowa, integracje z platformami i testy zgodności.

Zaczniemy od tego.

  1. Sprawdź zgodność wersji Minecraft i modów.
  2. Wybierz plik do pobrania i zainstaluj go.
  3. Połącz się z adresem takim jak raknet;play.example.com.

Wskazówki dotyczące serwera

Autorzy modów mogą używać interfejsu porządku pakietów do deklarowania zależności między specjalnymi payloadami a ruchiem w Minecraft.

Linki projektu

Raknetify2 wykorzystuje licencję MIT i zachowuje oryginalne znaki praw autorskich. Jego implementacja sieciowa opiera się na Raknetify oraz netty-raknet.

Instalacja

Pobierz wydanie z GitHub Releases. Przed instalacją sprawdź, jakiej wersji Minecraft i jakiego programu ładującego mody wymaga to wydanie.

W miejscu, gdzie planujesz zainstalować Plik Folder
Klient lub serwer Fabric raknetify2-fabric-*.jar mods
Forge client lub server raknetify2-forge-*.jar mods
Klient lub serwer NeoForge raknetify2-neoforge-*.jar mods
Serwer Spigot lub Paper raknetify2-spigot-*.jar plugins
Velocity proxy raknetify2-velocity-*.jar plugins
BungeeCord proxy raknetify2-bungee-*.jar plugins

Zamknij klienta lub zatwierdź serwer przed wymianą jego pliku JAR. Usuń oryginalny plik JAR z pakietu Raknetify oraz wszelkie starsze pliki JAR z pakietu Raknetify2 z tej samej instalacji przed dodaniem nowego pliku.

Klienowe foldery należą do instancji Minecraft lub modpacku, który uruchamiasz. Serwerowe i proxy foldery należą do instalacji serwera lub proxy. Stworzaj odpowiedni folder, jeśli twój loader go jeszcze nie stworzył.

Bezpośrednie połączenia z serwerem

  1. Zainstaluj mod klienta dla swojego loaderu.
  2. Zainstaluj odpowiedni mod serwera lub dodatek Spigot/Paper na kompatybilnym serwerze.
  3. Korzystaj z konfiguracji firewalu i routera, aby umożliwić połączenia UDP z serwerem.
  4. Ponownie uruchom klienta i serwera.
  5. Dodaj adres serwera, np. raknet;play.example.com lub raknet;play.example.com:25565.

Adresy bez prefiksu raknet; używają protokołu TCP.

Instalowanie samodzielnie modu klienta nie dodaje obsługi RakNet na daleki serwer. Operator serwera musi zapewnić endpoint RakNet. Gracze przystępujący do serwera innego gracza zwykle nie potrzebują reguł przekierowywania ruchu przychodzącego.

Velocity i BungeeCord

Zainstaluj odpowiedni plugin proxy oraz mod klienta. Postępuj zgodnie z instrukcjami Velocity i BungeeCord w zakresie ustawień słuchaczy, przekierowywania danych w serwerze, ograniczeń dostępu oraz adresu, który gracze powinni używać.

Odrzucająca port słuchania UDP

Dla bezpośredniego serwera Minecraft należy ustawić odpowiednie argumenty Java poniżej. Operatorzy proxy powinni używać ustawień Velocity i BungeeCord listener.

Platforma Argument Java Akceptowane porty
Serwer Fabric, Forge lub NeoForge -Draknetify.fabric.portOverride=25570 1 do 65534
Serwer Spigot lub Paper -Draknetify.spigot.portOverride=25570 1 do 65535

Forge i NeoForge używają wspólnego kodu słuchania, dlatego nazwa ich właściwości również zawiera „fabric”. Zastąp „25570” żądaną portem UDP.

Spigot / Paper ≥ 0.1.0-beta.1.431

Dodaj argument przed -jar w polej komendy Java, lub w polu argumentów JVM hosta. Ponownie uruchom serwer i aktywuj protokół UDP na wybranym portie słuchacza. Jeśli publiczny port to również 25570, połącz się za pomocą raknet;play.example.com:25570. Jeśli router przekłada port, użyj jego publicznego portu w adresie klienta. Port TCP pozostaje na swojej istniejącej wartości.

W środowisku Spigot/Paper słuchacz UDP zachowuje lokalną adresę połączenia słuchacza TCP Minecraft. Nieprawidłowe przesunięcia lub zajęte porty UDP uniemożliwiają uruchomienie RakNet. Sprawdź logi uruchamiania w celu ustalenia adresu i portu UDP. Usuń argument i przywróć połączenie, aby powrócić do numeru portu słuchacza TCP.

Router lub proxy UDP może również używać innego publicznego portu UDP i przekazywać dane do istniejącego słuchacza, bez zmiany argumentów serwera w języku Java.

Koncepcje rozwojowe

Otwórz pomyślną runkę main w GitHub Actions i pobierz jej archiwum Artifacts. GitHub wymaga konta, aby pobrać artefakty workflow. Użyj powyższej tabeli z instrukcjami, aby wybrać JAR z archiwum.

Velocity i BungeeCord

Velocity i BungeeCord znajdują się pomiędzy graczami a serwerami Minecraft. Zainstaluj Raknetify2 na proxy oraz na każdym klientowi, który będzie łączył się przez RakNet.

Raknetify2 client --UDP--> Velocity lub BungeeCord --TCP--> serwer backend.

Serwery backend nie potrzebują Raknetify2 do tej ścieżki połączeń. Nadal potrzebują modów, dodatków i obsługi przekierowań niezbędnych dla twojej sieci. Raknetify2 nie tłumaczy wersji Minecraft lub nie zmienia autentyfikacji konta proxy.

Zainstaluj plugin proxy.

  1. Upewnić się, że standardowe połączenia TCP przez twój proxy działają prawidłowo, włączając autentyzację i przechodzenie między serwerami backend.
  2. Zatrzymaj proxy i pobierz odpowiedni plugin z GitHub Releases.
  3. Umieść raknetify2-velocity-*-all.jar lub raknetify2-bungee-*-all.jar w folderze plugins proxya. Usuń wszelkie starsze pliki zależne od Raknetify lub Raknetify2 z tego folderu.
  4. Zainstaluj odpowiedni mod klienta Raknetify2 za pomocą przewodnika instalacji.
  5. Sprawdź ustawienia słuchacza poniżej, ponownie uruchom proxy i sprawdź jego logi w poszukiwaniu błędów związanych z słuchaczem RakNet.
  6. Pozwól publicznemu ruchowi UDP do proxy’a i ogranicz porty dla gry w tle, jak opisano w Konfiguracji firewalu i routera.

Używaj kompatybilnych wydań Raknetify2 w klientach i proxy-ach. Sprawdź kompatybilność przed mieszaniem wydań.

Velocity

Opcja bind w pliku velocity.toml wskazuje adres i port TCP, na których Velocity przyjmuje połączenia Minecraft. Raknetify2 zwykle używa tego samego numeru portu dla UDP. Wpisy [servers] wskazują serwery zaplecza i powinny nadal zawierać ich adresy TCP. Więcej informacji podaje dokumentacja konfiguracji Velocity.

Aby użyć oddzielnego portu UDP, dodaj ten argument JVM przed -jar w poleceniu startowym Velocity:

-Draknetify.velocity.portOverride=25570

Przełóż 25570 na wybraną przez Ciebie port. To zmieni port UDP RakNet, przy jednoczesnym zachowaniu portu TCP i adresów backendów Velocity. Ponownie uruchom Velocity po zmianie argumentu.

Konfiguruj przekierowywanie graczy zarówno na Velocity, jak i na jego serwery zaplecowe. Używaj nowoczesnego przekierowania, gdy oprogramowanie serwera zaplecowego to umożliwia, i zachowaj przekierowanie poufne. Postępuj zgodnie z instrukcjami specyficznymi dla serwerów zaplecowych w przewodniku dotyczącym przekierowywania informacji o graczach Velocity. Zachowaj również ograniczenia zabezpieczające firewall serwerów zaplecowych obok przekierowania.

BungeeCord

W pliku config.yml BungeeCord wartość host w każdym wpisie listeners określa adres nasłuchu Minecraft i port TCP. Raknetify2 zwykle uruchamia nasłuch UDP na porcie o tym samym numerze. Wpisy servers zawierają adresy TCP serwerów zaplecza. Szczegółowe informacje znajdziesz w instrukcji konfiguracji BungeeCord.

Aby użyć osobnego portu UDP, dodaj ten argument JVM przed -jar w poleceniu startowym BungeeCord:

-Draknetify.bungee.portOverride=25570

Overriding należy do całego procesu proxy. W przypadku konfiguracji z wieloma słuchaczami Minecraft, sprawdź rzeczywiste końcówki RakNet w logu startowym przed dodaniem reguł firewalu. Ponownie uruchom BungeeCord po zmianie argumentu.

Zachowaj autentyfikację konta w proxy’ie. Dla backendów Spigot BungeeCord przewodnik dotyczący przekierowywania IP ustawia ip_forward: true w proxy’ie z settings.bungeecord: true w backend’ie. Samo przekierowywanie nie zapobiega połączeniu bezpośrednim z backend’em. Ogranicz dostęp do backend’ów przy użyciu instrukcji dotyczących firewalla.

Wybierz adresy używane przez graczy

Oba serwery proxy pozwalają wskazać port od 1 do 65534. Nieprawidłowa wartość jest ignorowana, dlatego sprawdź w dzienniku uruchomienia faktyczny port UDP. Aby ponownie używać numeru portu nasłuchu Minecraft, usuń argument i uruchom proxy ponownie.

Zawodnicy połączają się z publicznym nazwą hosta proxy i portem UDP, na przykład raknet;play.example.com:25570. Gdy router przekłada porty, należy użyć jego publicznego portu UDP w adresie klienta. Adresy bez prefiksu raknet; nadal korzystają z TCP słuchacza proxy.

Zachowaj zapytanie, Geyser oraz inne usługi UDP na osobnych portach UDP. Inny port TCP nie rozwiązuje konfliktów związanych z socketami UDP.

Chat głosowy i dodatkowe przekierowywanie komunikatów przez UDP

Simple Voice Chat wykorzystuje własny plugin proxy oraz port UDP w serwerach typu Velocity i BungeeCord. Aby przeprowadzić takie ustawienia, skorzystaj z instrukcji dotyczących proxy dla komunikacji głosowej tutaj.

Jeśli przed proxy Minecraft działa osobny przekaźnik UDP wysyłający nagłówki PROXY protocol v2, skonfiguruj Raknetify2 zgodnie z poradnikiem przekazywania UDP i protokołu PROXY. Samo zainstalowanie Velocity lub BungeeCord nie wymaga takiej konfiguracji.

Sprawdź połączenie

Proveraj z zewnątrz swojej lokalnej sieci za pomocą klienta Raknetify2. Dołącz przez proxy, zmieniaj między używanymi serwerami backend, i upewnij się, że tożsamość gracza i uprawnienia pozostają prawidłowe.

  • Jeśli TCP przez proxy działa, ale RakNet przekroczył czas oczekiwania, sprawdź słuchacza UDP proxy’a, publiczną port, trasę IPv4 i IPv6 oraz zasady firewalla.
  • Jeśli oba transporty zawodzą podczas połączenia proxy z serwerem, sprawdź adres TCP tego serwera, reguły dostępu oraz konfigurację przekierowywania graczy.
  • Jeśli proxy zgłasza zajęty port UDP, sprawdź, czy jest używany przez Query, Geyser, proxy głosowy lub inny proces przypisany do niego.

W raportach należy uwzględnić zarówno logs proxy, jak i backend z tego samego próbnego połączenia. Informacje o wersji należy znaleźć w Troubleshooting.

Konfiguracja firewalu i routera

Ten przewodnik jest przeznaczony dla operatorów serwerów. Raknetify2 wymaga funkcjonującej trasy UDP do serwera lub proxya akceptującego połączenia RakNet. Podstawowe ustawienia używają tego samego numeru portu co słuchacz TCP w Minecraft.

Dla graczy na tej samej lokalnej sieci, należy użyć lokalnej adresy serwera i umożliwić przechodzenie komunikatów UDP przez jego firewall hosta. Potrzebne jest przekierowanie portów routera, gdy ruch internetowy musi przechodzić przez NAT IPv4 routera.

Wybierz docelową lokalizację i port.

Serwer bezpośredni

Wysyłaj publiczny ruch UDP do maszyny obsługującej serwer Minecraft za pomocą Raknetify2. Port docelowy to RakNet UDP listener tego serwera. Uwolnij ten port w firewallu hosta maszyny serwerowej. Zachowaj istniejącą trasę TCP dla zwykłych połączeń Minecraft.

Na przykład, jeśli Raknetify2 słucha na UDP 25570, przekazuj publiczną port UDP do lokalnej adresy serwera na portie 25570. Port TCP serwera może pozostać na 25565. Zobacz ustawienia słuchacza serwera bezpośredniego, aby wybrać inny port UDP.

Velocity lub BungeeCord

Wysyłaj publiczny ruch UDP do maszyny obsługującej Velocity lub BungeeCord z użyciem pluginu Raknetify2. Użyj słuchacza UDP RakNet znajdującego się w proxy’ie jako cel przekierowania. Zachowaj istniejącą publiczną trasę TCP proxy’a dla zwykłych połączeń Minecraft.

Proxy łączy się z serwerami Minecraft za pośrednictwem protokołu TCP. Dodanie Raknetify2 do proxy nie wymaga otwierania portów UDP dla gry z serwerów backend.

Połączenie Dostęp do zezwalania
Gracze do proxy Publiczny kanał UDP do słuchacza RakNet, plus istniejący publiczny słuchacz TCP.
Proxy do serwerów backendowych Porty TCP w serwerze backendowym Minecraft, do których można dotrzeć tylko poprzez wybrane serwery proxy.
Gracze przechodzą bezpośrednio do backendowych portów gry. Zachowaj blokady, w tym za pośrednictwem IPv6.

Gdy proxy i backend uruchamiają się bezpośrednio na wyznaczonej maszynie, nad którą panujemy, słuchacze backendowych mogą korzystać z adresów loopback, przy czym proxy jest skonfigurowany tak, aby dostęp do nich był możliwy. Pomiędzy maszynami należy ograniczyć dostęp TCP backendów do hostów proxy za pomocą firewalla lub izolowanej prywatnej sieci. Konteynery i zarządzane hosty wymagają równie ważnych ograniczeń w zakresie sieci. Zobacz Przewodnik bezpieczeństwa backendów Velocity oraz Przewodnik firewallu BungeeCord.

Przekierowanie graczy i ograniczenia związane z firewallami działają wspólnie. Bezpośredni dostęp do serwera bazowego może obejść sprawdzanie loginów przez proxy. Aby zainstalować dodatki, zmienić ustawienia przekierowania i przekazać zmiany portu UDP, skorzystaj z informacji na stronie Velocity and BungeeCord.

Lokalne i publiczne numery portów

Publiczna port i port słuchacza mogą się różnić, gdy router przekłada pomiędzy nimi dane.

Ustawienia Używany port
Adres klienta i serwera Publiczna port UDP
Reguła przekierowania routera – zewnętrzna port Publiczna port UDP
Wewnętrzna port w regule przekierowywania routera Port UDP słuchacza RakNet
Lokalna portyka firewalla hosta Port UDP słuchacza RakNet

Przełączanie portów IPv4

Aby hostować za routerem IPv4:

  1. Znajdź lokalny adres IPv4 maszyny przyjmującej połączenia RakNet. Użyj rezerwacji DHCP lub odpowiedniego adresu statycznego, aby reguła przekierowania nadal celowała na tę maszynę.
  2. Dodaj regułę przekierowywania UDP dla publicznego portu, który będą używać gracze.
  3. Należy ustawić docelową adresację reguły na lokalny adres tej maszyny oraz na port UDP słuchacza RakNet.
  4. Pozwolić na przyjście sygnałów typu UDP na portie słuchacza w firewallu hosta.

Na przykład serwer słuchający na portie UDP 25565 może używać reguły z publicznym portem 25565, adresem docelowym 192.168.1.100 i portem docelowym 25565. Zastąp adres w przykładzie rzeczywistym lokalnym adresem swojego serwera.

Zachowaj istniejącą zasadę TCP dla zwykłych połączeń w Minecraft. Zasada przekierowywania TCP nie przekazuje UDP.

Gdy przekierowywanie nadal nie udaje się

Sprawdź, czy inny router lub twój dostawca usług internetowych wykonuje NAT, zanim ruch dotrze do twojego routera. Przy dwóch routerach konieczne jest kontrolowanie przekierowania dla obu. Jeśli twój dostawca usług internetowych używa NAT typu korporacyjnego, zapytaj, czy może zapewnić publiczną adresową IPv4 lub użyć usługi hostingu lub tunelu, które obsługują UDP. Zasady przekierowania twojego routera nie mogą konfigurować NAT dostawcy usług internetowych. Zobacz instrukcje TP-Link dotyczące przekierowywania portów w sprawie wymagań dotyczących publicznej adresowej sieci WAN.

Zasady firewalla IPv6

Umożliwienie przejścia wybranego portu UDP zarówno przez firewall IPv6 routera, jak i przez firewall hosta. Adres IPv6 maszyny odbierającej połączenia RakNet.

Sprawdzić, czy adres IPv6 hosta wskazuje na tę maszynę. Jeśli adres IPv6 zmieni się, aktualizować rekord DNS oraz wszelkie reguły firewalla specyficzne dla danego adresu.

Nazwa hosta, która publikuje zarówno adresy IPv4, jak i IPv6, musi mieć funkcjonującą trasę dla każdego adresu. Sprawdź oba zestawy reguł, gdy jeden gracz może się połączyć, a drugi nie.

Jeśli przekierowanie połączeń w systemie IPv4 zmienia numer portu, upewnij się, że port używany przez graczy będzie dostępny również dla słuchaczy w systemie IPv6. Przekierowanie portów w systemie IPv4 nie konfiguruje tras w systemie IPv6.

Dostawcy usług hostingu i tunely

Prover lub tunel musi obsługiwać protokół UDP na publicznym punkcie dostępu, który przekazujesz graczom. Sprawdź alokacje portów, reguły firewalla sieciowego oraz samo firewall serwera.

Jeśli dodatkowy proxy UDP przekazuje adresy klientów przy użyciu protokołu PROXY v2, należy postępować zgodnie z przekierowaniem UDP i protokołem PROXY i ograniczyć dostęp do odbierającego słuchacza UDP tylko do zaufanego proxy’a.

Sprawdź połączenie

Połącz się z zewnątrz lokalnej sieci serwera za pomocą aktualizowanego klienta Raknetify2, używając adresu takiego jak raknet;play.example.com:25565. Użyj publicznej portu UDP w tym adresie.

Używaj rzeczywistej conexji RakNet, aby sprawdzić trasę. Przeskanowanie UDP, które nie otrzymuje odpowiedzi, może wydać niepewny wynik, ponieważ działająca usługa może odrzucić nieznajomą próbkę. Dokumentacja Nmapa dotycząca przeskanowania UDP wyjaśnia to zachowanie.

Pomyślne połączenie TCP potwierdza tylko trasę TCP. Jeśli RakNet przekroczy czas oczekiwania, sprawdź odbieracza, miejsce przekierowania, port UDP oraz reguły firewalla, korzystając z przewodnika rozwiązywania problemów.

Zgodność

Sprawdź kompatybilność z konkretnym wydaniem, które pobierasz. Branża rozwoju może zawierać funkcje wspierane, które jeszcze nie pojawiły się w żadnym wydaniu.

Wersje Minecraft i Java

Wersje Minecraft i Java · English

Wymagania Java określone przez Raknetify2 są minimalne. Minecraft lub loader mogą wymagać nowszej wersji runtime. Wybierz wersję Java, która spełnia wszystkie trzy wymagania.

Wersje klienta i serwera

Używaj tak samo Raknetify2 na klientach i serwerach lub proxy, który akceptuje jego połączenia, gdy to możliwe. Sprawdź notatki wydania przed mieszaniem wydań. Szyfrowane połączenia RakNet wymagają obsługi autoryzowanego protokołu szyfrowania na obu stronach. Orginalne wersje Raknetify i Raknetify2 pochodzące sprzed wprowadzenia tego protokołu nie mogą tworzyć takich szyfrowanych połączeń z aktualnymi partnerami.

Raknetify2 obsługuje istniejący protokół gry Minecraft. Połączenie różnych wersji Minecraft wymaga kompatybilnego ustawienia tłumaczenia protokołu.

Inne mody

Inne mody · English

W przypadku awarii w większym modpacku, skorzystaj z przewodnika rozwiązywania problemów. W swoim raporcie uwzględnij pełne wersje modów.

Tryb uporządkowany

Tryb uporządkowany

Zwykle Raknetify2 pozwala na kontynuowanie działania niezależnych kanałów pakietowych, podczas gdy jeden kanał czeka na brakujące dane. W trybie uporządkowanego przepływu wszystkie pakety Minecraft są przesyłane na jednym kanale, więc brakujący pakiet opóźnia wszystkie późniejsze pakety w tym kierunku, aż zostaną ponownie wysłane. To zachowuje kolejność oczekiwaną przez niektóre oprogramowanie antycheatowe, ale jednocześnie pozbawia Raknetify2 możliwości utrzymania ruchu niezwiązanego z gry podczas tego czasu oczekiwania.

Włączanie trybu uporządkowanego

  1. Zainstaluj wersję Raknetify2, która obsługuje tryb uporządkowany na serwerze lub proxy akceptującym połączenia RakNet, oraz na każdym klientzie RakNet.

  2. Stworzyć plik config/raknetify2-compatibility.json w katalogu odpowiadającym serwerowi lub katalogowi proxy. Jeśli katalog config nie istnieje, utworzyć go.

  3. Dodaj następujący tekst:

    {"mode": "ordered"}
  4. Ponownie uruchom serwer lub proxy.

Klienty automatycznie podążają za ustawieniami serwera. Gracze nie muszą tworzyć pliku konfiguracyjnego ani zmieniać adresu serwera RakNet.

W każdym kierunku wszystkie pakiety Minecraft korzystają z jednego niezawodnego kanału zachowującego kolejność. Dotyczy to także znaczników granic wiązek pakietów oraz przejść między światami.

Ustawienia proxy

Gdy gracze łączą się za pośrednictwem Velocity lub BungeeCord, należy ustawić w tym proxy tryb porządkowania, nawet jeśli antycheaty są realizowane na serwerze zaplecza.

Polityka ta obowiązuje we wszystkich switchach backendowych. W trybie porządkowym proxy przekazuje żądania keepalive do klienta rzeczywistego, zamiast odpowiadać na nie lokalnie.

Sprawdzanie ustawień

Podczas pierwszego połączenia RakNet konsola zgłasza:

Raknetify2 compatibility: ordered (updated clients required, genuine acknowledgements)

Udane wymiany kompatybilności również rejestrują ordered compatibility negotiated, a następnie adres partnera.

Pozostaw włączone mechanizmy wykrywania oszustw i przetestuj własną konfigurację.

Starsze klienty

Klienty RakNet, które nie obsługują trybu uporządkowanego, nie mogą połączyć się z serwerem, który tego wymaga. Należy aktualizować oprogramowanie Raknetify2 na tych klientach, lub połączyć się z serwerem lub proxy’em przy użyciu standardowych adresów i portów TCP bez prefiksu raknet;.

Wróćmy do trybu wielokanałowego.

Zmień plik na:

{"mode": "multichannel"}

Następnie restartuj serwer lub proxy. Usuwanie pliku również przywraca tryb wielokanałowy po restartowaniu.

Problemy z konfiguracją

Plik musi zawierać dokładnie jedną ustawienie o nazwie mode, przy czym wartością tej ustawienia może być albo "ordered", albo "multichannel". Wartości te są wrażliwe na małe różnice w zapisie liter.

Nieprawidłowa lub nieczytelna konfiguracja odrzuca połączenia RakNet. Popraw file i ponownie uruchom proces.

Jeśli konsolka nadal wydaje komunikat multichannel, upewnij się, że plik znajduje się w katalogu roboczym serwera lub proxy akceptującego połączenie RakNet, a następnie ponownie uruchom ten proces.

Automatyczne przekazywanie

Serwery Fabric, Forge i NeoForge mogą wybrać RakNet podczas przekazywania zdolnego klienta do skonfigurowanego celu. Wykorzystuje to natywne wspieranie przesyłania w Minecraft, wprowadzone w Java Edition 1.20.5. Upewnij się, że twoja wersja Raknetify2 obsługuje wersję i loader Minecrafta na obu stronach.

Zainstaluj Raknetify2 na serwerze wysyłającym i klienta. Dokładne miejsce przeznaczenie musi posiadać kompatybilnego słuchacza RakNet i akceptować przychodzące przesyłki Minecraft.

Ta konfiguracja odnosi się do przesyłek wysyłanych przez trzy powyższe mody. Pluginy Spigot/Paper, Velocity i BungeeCord nie czytają tego pliku przesyłek.

Konfigurowanie serwera wysyłającego

Stworzyć plik config/raknetify2-transfers.json w katalogu serwera wysyłającego:

{
  "destinations": [
    {
      "host": "play.example.com",
      "tcpPort": 25565,
      "udpPort": 25570
    }
  ]
}

Zastąp wartości przykładowego nazwy hosta i portów wartościami twojego celu, a następnie ponownie uruchom serwer wysyłania. Inne cele należy umieścić w tym samym arrariu.

Pole Znaczenie
host Adres hosta lub IP adresu docelowego, bez prefiksu transportowego ani portu.
tcpPort Port docelowy w oryginalnej prośbie o przekazanie danych
udpPort Publiczny port RakNet, z którym kontaktuje się przekazany klient, powinien zostać wykorzystany.

Numery portów TCP i UDP mogą być równe. Jeśli router konwertuje porty UDP, należy użyć publicznego portu zawartego w tym pliku. Numery portów należy zapisać jako liczby w formacie JSON.

Wysyłać przesyłania do standardowego nazwę hosta i portu TCP docelowego. Raknetify2 sprawdza, czy klient obsługuje automatyczne przesyłanie. Dla zdolnego klienta i odpowiedniego docelowego wybiera skonfigurowany port UDP. Inni klienty i nieodpowiednie docelowe utrzymują oryginalną adresę przesyłania.

Wykonuje się wyszukiwanie na podstawie nazwy hosta i portu TCP z żądania przesyłania. Podnosi się wielkość liter nazwy hosta, dodaje ostatni punkt DNS oraz normalizuje składnię IPv6. Wyszukiwanie w DNS nie jest uwzględniane w procesie wyszukiwania, dlatego dwa różne nazwy hostów, które odpowiadają temu samemu adresowi, wymagają osobnych wpisów. Wpisy typu wildcard są nieakceptowane.

Ustawienia docelowego

Aby uzyskać destynację korzystającą z server.properties w Minecraft, ustaw accepts-transfers=true i włącz ponownie serwer. Proxy destynacji może mieć własne ustawienia transferu. Standardowo Minecraft odrzuca przychodzące przesyłki, nawet gdy normalne przyłączenie bezpośrednie funkcjonuje prawidłowo.

Odbiornik RakNet na stronie docelowej, publiczne przekierowywanie UDP oraz firewall hosta muszą być już skonfigurowane. Plik transferów serwera wysyłającego wybiera adres wysyłany do klienta.

Sprawdź ruchy adresowe w systemach IPv4 i IPv6 adresu docelowego, gdy jego nazwa hosta publikuje oba typy adresów. Przeprowadź zwykłą bezpośrednią konfigurację sieci RakNet z docelowym urządzeniem, zanim zbadasz zachowanie automatycznego przekazania danych.

Nie zmieniaj żadnych kontroli logowania ani weryfikacji dostępu. Ta konfiguracja nie udziela graczom dostępu ani nie zastępuje autentyfikację na serwerze.

Błędy konfiguracji i wyłączanie

Brak polí, nieznane pola, nieprawidłowe porty oraz duplikowane destynacje powodują błąd konfiguracji podczas inicjalizacji. Użyj logu serwera, aby zidentyfikować błąd, skorygować JSON i ponownie uruchomić serwer.

Aby wyłączyć automatyczne wybieranie, usunij plik konfiguracji lub użyj {"destinations": []}, a następnie ponownie uruchom serwer wysyłania. Jego żądania przesyłania będą nadal przechowywać oryginalne adresy.

Przekierowywanie UDP i protokół PROXY

Proxy UDP może przekierowywać ruch RakNet i zachowywać oryginalną adresową klienta przy użyciu protokołu PROXY v2. Uruchom tego funkcji, gdy upstreamowy proxy UDP wysyła te nagłówki do twojego słuchacza. Zwykłe przekierowywanie portów routera tego nie wymaga.

Na serwerze lub w proxy’cie Minecraft, który odbiera przekierowaną komunikację UDP, utwórz plik config/raknetify2-proxy-protocol.json:

{
  "trustedProxies": ["192.0.2.10"]
}

Przełącz adres IP źródłowy proxy UDP lub zakres CIDR, który kontrolujesz. Adres musi odpowiadać temu, co widzi odbierający słuchacz po wszelkich przechodzących procesach NAT. Akceptowane są litery IPv4 i IPv6. Rejestry hostów DNS są odrzucane. Ponownie uruchom serwer odbierający lub proxy.

Konfiguruj proxy przekierowujący tak, aby wysyłać nagłówki protokołu PROXY v2 dla protokołu UDP. Raknetify2 akceptuje tylko adresy klientów przekierowane z wymienionych źródeł. Bez tych nagłówków odrzucane są bezpośrednie połączenia RakNet, gdy ta konfiguracja jest włączona. Słuchacz TCP zachowuje swoją istniejącą konfigurację.

Zaufanie i dostęp

Każde proxy z tej listy może przekazywać adresy klientów. Ustaw zaporę serwera docelowego tak, aby dostęp do jego portu UDP miały wyłącznie wskazane serwery proxy. Wpisuj możliwie najwęższe zakresy zaufanych adresów.

Plik musi zawierać tylko trustedProxies, z co najmniej jednym wpisem. Pusty array jest błędem. Nieprawidłowy plik uniemożliwia uruchomienie słuchacza RakNet.

Aby wrócić do bezpośrednich połączeń UDP, usuń plik i ponownie uruchom słuchacza. Jednocześnie aktualizuj zachowanie przekierowywania danych upstream oraz reguły firewalu dla nowej trasy.

Jeśli po włączeniu tej funkcji połączenia nie udają się, sprawdź rzeczywistą adresową źródło proxy na serwerze bazowym, zdefiniowany obszar zaufany oraz to, czy proxy emituje nagłówki protokołu UDP PROXY v2.

Instalację proxy Minecraft i konfigurację serwerów zaplecza opisuje poradnik dotyczący Velocity i BungeeCord.

Simple Voice Chat

Raknetify2 może dzielić swój słuchacz UDP z serwerem Simple Voice Chat w serwerach Fabric, Forge, NeoForge, Spigot i Paper.

Zainstaluj Simple Voice Chat na serwerze oraz na każdym klientzie, który chce korzystać z rozmów głosowych. Dla pozostałych ustawień konfiguracyjnych postępuj zgodnie z przewodnikiem instalacji serwera.

Używaj najwyższej poziomowej katalogu config serwera dla plików Raknetify2, w tym w przypadku Spigot/Paper. Własny plik Simple Voice Chat pozostaje w specyficznym miejscu platformy.

Podziel się portem gry

  1. Stworzaj plik config/raknetify2-voicechat.json w katalogu serwera z następującym zawartością:

    {"enabled": true}
  2. Ustaw port=-1 w konfiguracji serwera Simple Voice Chat. Na modowanych serwerach znajduje się to w config/voicechat/voicechat-server.properties. W Spigot/Paper to plugins/voicechat/voicechat-server.properties.

  3. Zostaw polu bind_address puste, jeśli istnieje już jeden słuchacz RakNet. Jeśli serwer ma kilku słuchaczy na tym portie UDP, ustaw polę na lokalną adres słuchacza, który chcesz udostępnić.

  4. Ponownie uruchom serwer i uruchom program /voicechat test <PLAYERNAME> dla gracza, który jest połączony z serwerem.

Jeśli słuchacz RakNet-u używa innego portu niż Minecraft, należy wyraźnie ustawić port port na ten lokalny port UDP zamiast używać -1. Na przykład słuchacz RakNet-u na lokalnym portie UDP 25570 wymaga ustawienia port=25570.

Należy ustawić voice_host, gdy klientom potrzebna jest inna publiczna adresowa część lub port. Aby router przekazywał publiczny UDP 25580 do lokalnego UDP 25570, należy użyć ustawienia port=25570 i voice_host=play.example.com:25580. Publiczna adresowa część musi znajdować się w voice_host. Ustawienie bind_address wybiera lokalnego słuchacza.

Raknetify2 udostępnia wspólne wyjście UDP za pośrednictwem API Simple Voice Chat. Simple Voice Chat obsługuje autentyzację i szyfrowanie głosowe. Gracze mogą korzystać z rozmów głosowych zarówno przy połączeniach TCP, jak i RakNet.

Inne usługi UDP i proxyy

Utrzymuj Query i Geyser na osobnych portach UDP. Integracja wspólnego soketa obsługuje tylko Simple Voice Chat.

Integracja nie udziela usług proxy dla głosu na serwerach Velocity czy BungeeCord. Należy postępować zgodnie z przewodnikiem instalacji Simple Voice Chat proxy i przydzielić proxy głosowemu własny port UDP. Używając oficjalnego plugina proxy głosowego, należy ustawić dowolne publiczne voice_host w konfiguracji proxy głosowym. Ten plugin ignoruje ustawienia voice_host serwerów backend.

Dla ogólnego tunelu UDP należy ustawić voice_host na publiczny nazwę hosta i port UDP, który przekierowuje na ten serwer.

Wyłącz działanie udostępniania danych lub rozwiąż konflikt związany z socketami.

Jeśli log zawiera informację No RakNet listener matches the voice bind address and port, należy potwierdzić, że RakNet został uruchomiony pomyślnie, a port głosowy oraz adres łączenia odpowiadają lokalnemu słuchaczowi.

Jeśli wynik wynosi Multiple RakNet listeners match the voice bind address, należy wybrać konkretną lokalną adres w bind_address i ponownie uruchomić proces.

Tylko jeden plugin Simple Voice Chat może dostarczyć swojego socketa UDP. Jeśli startowanie systemu informuje, że inny plugin już dostarcza socketa, należy wybrać, który integracja socketa będzie używana.

Aby wyłączyć integrację Raknetify2, należy ustawić wartość {"enabled": false} w konfiguracji głosowej, lub usunąć ten plik. Należy przyznać programowi Simple Voice Chat oddzielny port UDP, aktualizować zasady blokowania danych w firewalle i ponownie uruchomić serwer.

Rozwiązywanie problemów

TCP funkcjonuje, ale RakNet przekroczył czas oczekiwania.

Sprawdź te po kolei:

  1. Klient ma poprawny mod Raknetify2 dla swojego loader i wersji Minecraft.
  2. Serwer lub proxy akceptujący połączenie ma zainstalowany Raknetify2 i został uruchomiony bez błędów związanych z odsłuchiwaczem.
  3. Adres zaczyna się od raknet; i wykorzystuje publiczny port UDP.
  4. Dostawca hostingu, router oraz firewall hosta wszystkie pozwalają na użycie protokołu UDP na tym portie.
  5. Nazwa hosta ma adresy IPv4 i IPv6, które prowadzą do zamierzanego hosta, a także mają działające reguły firewall.

Pomyślne połączenie TCP potwierdza tylko trasę TCP. Sprawdź konfigurację firewalu i routera, aby sprawdzić przekierowanie UDP i dostęp do IPv6. Jeśli zainstalowany jest protokół PROXY, klienty muszą dotrzeć do odbierającego połączenie przez skonfigurowany, godnego zaufania proxy.

Adres jest już używany.

Sprawdzić, czy inny proces używa portu UDP. Geyser oraz inne usługi UDP potrzebują własnych portów. Simple Voice Chat może korzystać z integracji z wspólnym portem.

Możesz wybrać inny lokalny port UDP przy użyciu ustawień słuchacza serwera bezpośredniego lub ustawień Velocity i BungeeCord. Sprawdź wymagania dotyczące wersji dla ustawień Spigot/Paper. Zmiana tylko publicznego portu routera pozostawia konflikt lokalnego soketa.

Połączenie funkcjonuje, ale przesyłania nie udają się.

Połącz się bezpośrednio z celem, używając jego adresu raknet;. Jeśli to nie zaowocuje, najpierw naprawić odbiorcę lub trasę sieciową celu.

Jeśli połączenia bezpośrednie funkcjonują, sprawdź, czy docelowy serwer akceptuje przesyłania dla sieci. Serwer Minecraft używający pliku server.properties musi mieć ustawienie accepts-transfers=true. Połączenia bezpośrednie nie sprawdzają tego ustawienia.

Następnie porównaj nazwę hosta i port TCP z plikiem config/raknetify2-transfers.json na serwerze wysyłającym. Upewnij się, że plik został zainicjowany po ponownym uruchomieniu i że klient obsługuje automatyczne przesyłania danych przez RakNet. Zobacz Przesyłania automatyczne.

Błędy w szyfrowaniu lub protokole

Sprawdź wersje Raknetify2 na obu końcach połączenia. Aktualizuj klienta i serwera lub proxy razem, gdy nowa wersja zmienia szyfrowany protokół. Zachowaj ustawienia autentyczności serwera podczas badania.

Sprzętowe niepowodzenia związane z modem

Zapisać, która akcja powoduje awarię, np. otwarcie inventaru, otrzymanie pakietu z zasobami, zmiana światów lub powstanie obiektu. Porównać tę samą akcję w trybie TCP i RakNet, używając osobnej instalacji testowej, gdy to będzie możliwe.

Niektóre specjalne payloady zależą od kolejności pakietów standardowych. Autorzy modów mogą określić te zależności za pomocą interfejsu zarządzania kolejnością pakietów.

Zgłosić błąd

Otwórz problem w systemie śledzenia problemów Raknetify2 i dodaj:

  • Minecraft, Java, loader oraz wersje Raknetify2 na obu stronach.
  • Wersje oprogramowania serwerów i proxy, w tym wszelkich proxyów przekierlających UDP.
  • Inne zainstalowane mody i ich wersje.
  • Kroki wymagane do wywołania problemu oraz to, co oczekiwać można.
  • Czy te same kroki działają przez TCP.
  • Wartościowe fragmenty logów klienta, serwera i proxy z tego samego przetestowania.

Usuń tokeny dostępu, hasła i inne prywatne informacje przed wysyłaniem logów. Zachowaj komunikaty wyjątków oraz ślady stack, które są potrzebne do diagnozowania problemu.

Integracja modów

Raknetify2 pozwala modom określić, które pakiety Minecraft muszą zachować kolejność względem wysyłanych przez nie danych. Przydaje się to, gdy obsługa danych wymaga, aby wcześniejszy pakiet utworzył już byt, wczytał chunk, przygotował ekwipunek lub ustawił inny stan gry.

Zamawianie grup

Grupa Powiązane ruchomości
ui Menuy i interakcje niezależne od świata
entity Wyjście, usunięcie i ruch entitetów
world_interaction Inwentarze i inne interakcje zależne od świata
effects Dźwięki i cząstki
chunk Aktualizacje terenu, bloków i oświetlenia

Wszystkie grupy zapewniają wiarygodny i uporządkowany transport w swoich kanalech. Pakietty z różnych grup mogą przybywać w innym porządku. Należy wybrać grupę, która odpowiada zależnościom danych w pakiecie.

Opcjonalna integracja z Fabric

Dodaj dostawcę pod wpisem raknetify:packet_channels w pliku fabric.mod.json twojego modu. Dostawca implementuje typ Consumer<BiConsumer<String, String>> przy użyciu typów JDK. Otrzymuje zapiszającego, który przyjmuje identyfikator pakietu i grupę porządkowania.

Połącz tę informację z twoimi istniejącymi metadanymi, zastępując nazwę klasy pełnym nazwą dostawcy.

{
  "entrypoints": {
    "raknetify:packet_channels": [
      "com.example.mod.OrderingProvider"
    ]
  }
}

Zachowaj resztę swojego pliku fabric.mod.json, włączając w to istniejące wpisy. Jest to fragment pliku metadanych.

Na przykład, rozszerzenie ruchu entitetów może zarejestrować example:entity_path w grupie entity. Dokumentacja API PacketOrdering zawiera implementację tego dostawcy.

Fabric nie aktywuje tego punktu wejścia, gdy Raknetify2 nie jest dostępne. Dostawcy powinni deklarować identyfikatory i grupy podczas inicjalizacji, nie polegając na tym, że inny mod ukończył już swoją inicjalizację.

Zachowanie rejestracji

Mody Forge i NeoForge, a także pluginy serwera lub proxy, mogą wywołać PacketOrdering.register(identifier, group) podczas inicjalizacji, gdy Raknetify2 jest dostępny. Klasa ta to com.ishland.raknetify.api.PacketOrdering. Rejestruj mody przed przyjmowaniem połączeń graczy, oraz unikaj wykonywania kodu integracyjnego, który powodowałby uruchamianie klas Raknetify2, gdy zależność jest nieobecna.

Deklaracje dotyczą nowych połączeń. Istniejące połączenia zachowują zasady przyjęte podczas ustawienia. Dopuszczalne jest powtarzanie identycznych deklaracji. Sprzeczne grupy dla tego samego identyfikatora są odrzucane.

Identyfikatory ładunku muszą używać ważnego nazewnictwa specjalnego. Nazewnictwo minecraft jest zarezerwowane. Limit dla całego endpointu wynosi 128 deklaracji, wliczając wewnętrzne reguły i rejestracje z innych modów. Identyfikatory mogą zawierać do 255 znaków ASCII, korzystając z składni nazewnictwa identyfikatorów dostępnej w API.

Uaktualnione współzawodnicy RakNet wymieniają deklaracje podczas ustawiania połączenia. Serwer lub proxy może używać deklaracji współzawodnika, gdy nie ma lokalnych reguł dla danego pakietu. Reguły lokalne mają pierwszeństwo, a deklaracje współzawodnika są ograniczone do tego połączenia.

Proxyy UDP

Zobacz Przekierowywanie UDP i protokół PROXY dotyczące relayów UDP i przekierowanych adresów klientów.

W celu ustawienia proxy w Minecraft, zobacz Velocity i BungeeCord.

English (US)

Clone this wiki locally