Repository navigation
Wiki lt lt
- Pagrindinis
- Įrengimas
- Velocity ir BungeeCord
- Užkardos ir maršrutizatoriaus konfigūracija
- Suderinamumas
- Užsakytas režimas
- Automatiniai pervedimai
- UDP persiuntimas ir PROXY protokolas
- Simple Voice Chat
- Trikčių šalinimas
- Mod integracija
- UDP tarpiniai serveriai
„RakNet“ tinklo ryšiai „Minecraft“ klientams ir serveriams.
| Minecraft | Raknetify2 | Klientas / Serveris |
|---|---|---|
| Fabric | mods/raknetify2-fabric-*.jar |
Klientas / Serveris |
| Forge | mods/raknetify2-forge-*.jar |
Klientas / Serveris |
| NeoForge | mods/raknetify2-neoforge-*.jar |
Klientas / Serveris |
| Spigot / Paper | plugins/raknetify2-spigot-*.jar |
Serveris |
| Velocity | plugins/raknetify2-velocity-*.jar |
Velocity |
| BungeeCord | plugins/raknetify2-bungee-*.jar |
BungeeCord |
-
Žaidimas tinkle
-
Pridėti serverį
-
Serverio adresas
Serverio adresas RakNet · UDP raknet;play.example.com:25565TCP play.example.com:25565 -
Atlikta
-
Prisijungti
| F3 | |
|---|---|
| RakNet · UDP | Aktyvus · MTU 1400 |
| TCP | Neaktyvus |
- Klientas · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
- Velocity / BungeeCord → TCP → Serveris
| Prievado numeris · 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 |
| Serverio adresas | UDP |
|---|---|
raknet;play.example.com:25580 |
play.example.com:25580 → NAT → 192.0.2.10:25570
|
Serveris · 192.0.2.10
|
25570/udp |
Serveris / Velocity / BungeeCord
| JSON | |
|---|---|
| ① ② ③ | {"mode":"ordered"} |
| ① ∥ ② ∥ ③ | {"mode":"multichannel"} |
| Serveris | 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
| Serverio adresas | trustedProxies |
RakNet |
|---|---|---|
192.0.2.10 · PROXY v2 / UDP |
["192.0.2.10"] |
✓ |
192.0.2.11 · PROXY v2 / UDP |
["192.0.2.10"] |
✗ |
| Klientas → RakNet / UDP | ["192.0.2.10"] |
✗ |
config/raknetify2-proxy-protocol.json
{"trustedProxies":["192.0.2.10"]}-
Serveris A · Fabric / Forge / NeoForge ·
config/raknetify2-transfers.json{"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]} -
Serveris B ·
play.example.com·server.properties→accepts-transfers=true -
Serveris A ·
/transfer play.example.com 25565 Alex→ Klientas (Alex) → RakNet ·play.example.com:25570
| Minecraft | |
|---|---|
ui |
Nustatymai |
entity |
Skeletas |
world_interaction |
Inventorius |
effects |
Dalelyčių |
chunk |
Blokai |
- Fabric · Minecraft / Java · English
- Forge / NeoForge / Spigot / Paper · GitHub Releases
„Raknetify2“ daugelio žaidėjų „Minecraft“ žaidime perduoda duomenis protokolu „RakNet“ per UDP. Srautas padalijamas į kanalus, kurių kiekvienas išlaiko savo paketų eilės tvarką. Jei viename kanale paketas dingsta, kitais kanalais duomenys gali keliauti toliau. Todėl žaidimas gali reaguoti į jūsų veiksmus, kol prarasti duomenys siunčiami iš naujo arba perduodamos pasaulio dalys.
Raknetify2 yra nepriklausomai palaikoma Raknetify šaka, kurią iš pradžių sukūrė ishland. Ši šaka prideda palaikymą naujesnėms Minecraft versijoms ir palaiko transportą, platformos integraciją ir suderinamumo testavimą.
- Patikrinkite Minecraft ir mod suderinamumą.
- Pasirinkite atsisiuntimą ir įdiekite jį.
- Prisijunkite su adresu, pvz.,
raknet;play.example.com.
- Velocity ir BungeeCord
- Užkardos ir maršrutizatoriaus konfigūracija
- Automatiniai pervedimai
- UDP persiuntimas ir PROXY protokolas
- Dalijimasis UDP prievadu su Simple Voice Chat
- Trikčių šalinimas ir klaidų ataskaitos
Mod autoriai gali naudoti paketų užsakymo sąsaja deklaruoti priklausomybes tarp pasirinktinių naudingų krovinių ir Minecraft srauto.
Raknetify2 naudoja MIT licencija ir išlaiko originalius autorių teisių pranešimus, o tinklo įgyvendinimas remiasi Raknetify ir netty-raknet.
Atsisiųskite išleidimo versiją iš GitHub Releases. Patikrinkite Minecraft versiją ir krautuvo reikalavimus tam leidimui prieš įdiegdami.
| Kur įdiegiate | Failas | Aplankas |
|---|---|---|
| Fabric klientas arba serveris | raknetify2-fabric-*.jar |
mods |
| Forge klientas arba serveris | raknetify2-forge-*.jar |
mods |
| NeoForge klientas arba serveris | raknetify2-neoforge-*.jar |
mods |
| Spigot arba Paper serveris | raknetify2-spigot-*.jar |
plugins |
| Velocity proxy | raknetify2-velocity-*.jar |
plugins |
| BungeeCord proxy | raknetify2-bungee-*.jar |
plugins |
Prieš pakeisdami JAR, uždarykite klientą arba sustabdykite serverį.Prieš pridėdami naują failą, pašalinkite originalų Raknetify JAR ir bet kokį senesnį Raknetify2 JAR iš to paties įdiegimo.
Kliento aplankai priklauso Minecraft egzemplioriui arba modpack, kurį paleidote. Serverio ir proxy aplankai priklauso serveriui arba proxy įdiegimui. Sukurkite atitinkamą aplanką, jei jūsų įkėlėjas jo dar nesukurė.
- Įdiekite kliento mod savo krautuvui.
- Įdiekite atitinkamą serverio mod arba Spigot / Paper įskiepį suderinamame serveryje.
- Sekite Užkardos ir maršrutizatoriaus konfigūracija, kad leistumėte UDP prisijungti prie serverio.
- Iš naujo paleiskite klientą ir serverį.
- Įtraukite serverio adresą, pvz.,
raknet;play.example.comarbaraknet;play.example.com:25565.
Adresai be raknet; prefikso naudoja TCP.
Kliento mod įdiegimas neprideda RakNet palaikymo nuotoliniam serveriui, serverio operatorius turi suteikti RakNet galinį tašką. Žaidėjai prisijungę prie kažkieno kito serverio paprastai neturi įeinančios maršrutizatoriaus persiuntimo taisyklės.
Įdiekite atitinkamą proxy įskiepį ir kliento mod.Sekite Velocity ir BungeeCord klausytojų nustatymams, backend persiuntimui, prieigos apribojimams ir adresui, kurį žaidėjai turėtų naudoti.
Tiesioginiam Minecraft serveriui nustatykite atitinkamą Java argumentą žemiau. Proxy operatoriai turėtų naudoti Velocity ir BungeeCord klausytojų nustatymai.
| Platforma | Java argumentas | Priimami prievadai |
|---|---|---|
| Fabric, Forge arba NeoForge serveris | -Draknetify.fabric.portOverride=25570 |
nuo 1 iki 65534
|
| Spigot arba Paper serveris | -Draknetify.spigot.portOverride=25570 |
nuo 1 iki 65535
|
Forge ir NeoForge naudoja bendrą klausytuvo kodą, todėl jų savybės pavadinimas taip pat turi fabric, pakeiskite 25570 su pageidaujamu UDP prievadu.
Spigot / Paper ≥ 0.1.0-beta.1.431
Pridėkite argumentą prieš -jar Java komandoje, arba jūsų kompiuterio JVM argumentų lauke. Iš naujo paleiskite serverį ir leiskite UDP pasirinktame klausymo prievade. Jei viešasis prievadas taip pat yra 25570, prisijunkite prie raknet;play.example.com:25570. Jei maršrutizatorius išverčia prievadą, naudokite jo viešąjį prievadą kliento adresu. TCP prievadas lieka esamos reikšmės.
Spigot/Paper, UDP klausytojas išlaiko Minecraft TCP klausytojo vietinį prijungimo adresą. Negaliojantis perrašymas arba užimtas UDP prievadas neleidžia RakNet paleisti. Patikrinkite paleidimo žurnalą dėl prijungto UDP adreso ir prievado. Pašalinkite argumentą ir paleiskite iš naujo, kad grįžtumėte į TCP klausytojo prievado numerį.
Maršrutizatorius arba UDP proxy taip pat gali atskleisti kitą viešą UDP prievadą ir persiųsti jį į esamą klausytuvą nekeičiant serverio Java argumentų.
Atidarykite sėkmingą main paleidimą GitHub Actions ir atsisiųskite jo Artifacts archyvą. GitHub reikalauja paskyros, kad atsisiųstų darbo eigos artefaktus. Naudokite aukščiau pateiktą diegimo lentelę, kad pasirinktumėte JAR iš archyvo.
Velocity ir BungeeCord sėdi tarp žaidėjų ir backend Minecraft serverių.Įdiekite Raknetify2 proxy ir kiekvienam klientui, kuris prisijungs per RakNet.
Raknetify2 · Klientas --UDP--> Velocity / BungeeCord --TCP--> Serveris
Pagrindiniams serveriams nereikia Raknetify2 šiam ryšio maršrutui, jiems vis tiek reikia modifikacijų, įskiepių ir persiuntimo palaikymo, reikalingų jūsų tinklui. Raknetify2 neverčia Minecraft versijų ir nekeičia tarpinio serverio paskyros autentifikavimo.
- Patikrinkite, ar veikia įprasti TCP ryšiai per tarpinį serverį, įskaitant autentifikavimą ir perjungimą tarp užpakalinių serverių.
- Sustabdyti proxy ir atsisiųsti atitinkamą įskiepį iš GitHub Releases.
- Įdėkite
raknetify2-velocity-*-all.jararbaraknetify2-bungee-*-all.jarį tarpinio serveriopluginsaplanką ir pašalinkite visus senesnius Raknetify arba Raknetify2 įskiepius iš šio aplanko. - Įdiekite atitinkamą Raknetify2 kliento mod naudojant montavimo vadovas.
- Patikrinkite toliau pateiktus klausytuvo nustatymus, iš naujo paleiskite tarpinį serverį ir patikrinkite, ar jo žurnale nėra RakNet klausytuvo klaidų.
- Leisti viešą UDP srautą į proxy ir apriboti backend žaidimo prievadus, kaip aprašyta Užkardos ir maršrutizatoriaus konfigūracija.
Naudokite suderinamus Raknetify2 leidimus kliente ir proxy. Patikrinkite Suderinamumas prieš maišant leidimus.
bind nustatymas velocity.toml parenka Velocity Minecraft klausymosi adresą ir TCP prievadą. Raknetify2 paprastai naudoja tą patį prievado numerį UDP. [servers] įrašai identifikuoja backend serverius. Laikykite šiuos įrašus nukreiptus į backend TCP adresus. Žiūrėkite Velocity konfigūracijos nuoroda.
Norėdami naudoti atskirą UDP prievadą, pridėkite šį JVM argumentą prieš -jar Velocity paleidimo komandoje:
-Draknetify.velocity.portOverride=25570
Pakeiskite 25570 į pasirinktą prievadą. Tai pakeis RakNet UDP prievadą išlaikant Velocity TCP prievadą ir backend adresus. Iš naujo paleiskite Velocity pakeitus argumentą.
Konfigūruoti grotuvo persiuntimo tiek Velocity ir jos backends.Naudokite modernų persiuntimo, kai backend programinė įranga jį palaiko, ir išlaikyti savo persiuntimo slaptažodį privatus.Sekite backend specifinių instrukcijų Velocity Žaidėjo informacijos persiuntimo vadovas.Laikykite backend ugniasienės apribojimus vietoje kartu su persiuntimo.
BungeeCord config.yml, host reikšmė po kiekvienu listeners įrašu identifikuoja Minecraft klausymosi adresą ir TCP prievadą. Raknetify2 paprastai prideda UDP prie to prievado numerio. servers įrašai turi backend TCP adresus. Šie nustatymai aprašyti BungeeCord konfigūravimo vadovas.
Norėdami atskirti UDP prievadą, pridėkite šį JVM argumentą prieš -jar BungeeCord paleidimo komandoje:
-Draknetify.bungee.portOverride=25570
Perkėlimas priklauso visam tarpinio serverio procesui. Jei konfigūruojama su keliais Minecraft klausytojais, prieš pridėdami užkardos taisykles patikrinkite faktinius RakNet galutinius taškus paleidimo žurnale. Pakeitus argumentą, iš naujo paleiskite BungeeCord.
Išsaugoti sąskaitos autentifikavimą proxy serveryje. Spigot backends, BungeeCord IP peradresavimo vadovas poruoja ip_forward: true proxy serveryje su settings.bungeecord: true backend serveryje. Persiuntimas vien neužkerta kelio kam nors prisijungti tiesiogiai prie backend serverio. Apriboti backend prieigą naudojant Užkardos instrukcijos.
Abu proxy perrašymai priima prievadus nuo 1 iki 65534. Netinkamos reikšmės ignoruojamos, todėl patikrinkite susietą UDP prievadą paleidimo žurnale. Pašalinkite argumentą ir paleiskite iš naujo, kad grįžtumėte prie Minecraft klausytuvo prievado numerio.
Žaidėjai prisijungia prie proxy viešojo kompiuterio vardo ir UDP prievado, pavyzdžiui raknet;play.example.com:25570. Kai maršrutizatorius išverčia prievadus, kliento adrese naudojamas jo viešasis UDP prievadas. Adresai be raknet; prefikso ir toliau naudoja proxy TCP klausytuvą.
Palikite Query, Geyser ir kitas UDP paslaugas atskiruose UDP prievaduose.Skirtingas TCP prievadas neišsprendžia UDP lizdo konflikto.
Simple Voice Chat naudoja savo proxy įskiepį ir UDP prievadą Velocity ir BungeeCord.Sekite Balso pokalbių proxy vadovas nustatymus.
Jeigu prieš Minecraft proxy yra atskiras UDP relay ir jis siunčia PROXY protokolo v2 antraštes, sukonfigūruokite Raknetify2 naudodami UDP persiuntimas ir PROXY protokolas.Velocity arba BungeeCord įdiegimui nereikia tokios konfigūracijos.
Išbandykite iš išorės savo vietinio tinklo su Raknetify2 klientu. Prisijunkite per proxy, perjunkite tarp backend serverių, kuriuos naudojate, ir patikrinkite, ar žaidėjo tapatybė ir teisės išlieka teisingos.
- Jei TCP per tarpinį serverį veikia, bet RakNet baigėsi laikas, patikrinkite tarpinio serverio UDP klausytuvą, viešąjį prievadą, IPv4 ir IPv6 maršrutus ir užkardos taisykles.
- Jei abu transportai nepavyksta, kai proxy prisijungia prie backend, patikrinkite to backend TCP adresą, prieigos taisykles ir grotuvo persiuntimo konfigūraciją.
- Jei tarpinis serveris praneša apie užimtą UDP prievadą, patikrinkite, ar nėra Query, Geyser, balso tarpinio serverio ar kito proceso, susieto su juo.
Ataskaitose įtraukite ir tarpinio serverio, ir užpakalinės sistemos žurnalus iš to paties bandymo prisijungti.Žr. Trikčių šalinimas versijos informaciją, kurią reikia įtraukti.
Šis vadovas skirtas serverio operatoriams. Raknetify2 reikia veikiančio UDP maršruto į serverį arba proxy, priimantį RakNet ryšius. Numatytasis nustatymas naudoja tą patį prievado numerį kaip Minecraft TCP klausytojas.
Žaidėjams tame pačiame vietiniame tinkle, naudokite serverio vietinį adresą ir leiskite UDP per savo šeimininko ugniasienę.Maršrutizatoriaus prievadų persiuntimas reikalingas, kai interneto srautas turi pereiti jūsų maršrutizatorius IPv4 NAT.
Siųsti viešą UDP srautą į mašiną, kurioje veikia Minecraft serveris su Raknetify2. Paskirties prievadas yra to serverio RakNet UDP klausytuvas. Leisti tą prievadą serverio mašinos pagrindiniame užkardoje. Išlaikyti esamą TCP maršrutą įprastiems Minecraft ryšiams.
Pavyzdžiui, jei Raknetify2 klausosi UDP 25570, persiųskite viešą UDP prievadą į serverio vietinį adresą 25570 prievade. Serverio TCP prievadas gali likti 25565. Žiūrėkite direct-server klausytuvo nustatymai, kad pasirinktumėte kitą UDP prievadą.
Siųsti viešą UDP srautą į mašiną, kurioje veikia Velocity arba BungeeCord su Raknetify2 proxy įskiepiu. Naudokite proxy RakNet UDP klausytuvą kaip persiuntimo vietą. Išlaikyti proxy esamą viešą TCP maršrutą įprastiems Minecraft ryšiams.
Proxy prisijungia prie Minecraft serverių per TCP, o pridėdamas Raknetify2 prie proxy nereikia atidaryti UDP prievadų žaidėjams.
| Ryšys | Prieiga leisti |
|---|---|
| Žaidėjai į proxy | Viešasis UDP į RakNet klausytuvą, plius esamas viešasis TCP klausytuvas |
| Proxy į backend serverius | Backend Minecraft TCP prievadai, pasiekiami tik iš numatytų proxy kompiuterių |
| Žaidėjai tiesiogiai į backend žaidimo prievadus | Laikykite užblokuotas, įskaitant per IPv6 |
Kai proxy ir backend veikia tiesiogiai jūsų valdomame specialiame kompiuteryje, backend klausytojai gali naudoti loopback adresus su proxy, sukonfigūruotu pasiekti juos ten. Visuose kompiuteriuose apribokite backend TCP prieigą prie proxy kompiuterių naudodami ugniasienę arba izoliuotą privatų tinklą. Konteineriai ir valdomi kompiuteriai turi atitikti tinklo išdėstymo apribojimus. Žiūrėkite Velocity backend saugumo vadovas ir BungeeCord užkardos vadovas.
Žaidėjo peradresavimas ir ugniasienės apribojimai veikia kartu. Tiesioginė prieiga gali apeiti proxy prisijungimo patikras. Įskiepių diegimui, peradresavimo nustatymams ir UDP prievado pakeitimams sekite Velocity ir BungeeCord.
Viešasis prievadas ir klausytojo prievadas gali skirtis, kai maršrutizatorius verčia tarp jų:
| Nustatymas | Naudoti prievadas |
|---|---|
| Kliento serverio adresas | Viešasis UDP prievadas |
| Maršrutizatoriaus peradresavimo taisyklės išorinis prievadas | Viešasis UDP prievadas |
| Maršrutizatoriaus peradresavimo taisyklės vidinis prievadas | RakNet klausytuvo UDP prievadas |
| Pagrindinio kompiuterio užkardos vietinis prievadas | RakNet klausytuvo UDP prievadas |
Hostingui už IPv4 maršrutizatoriaus:
- Suraskite vietinį IPv4 adresą kompiuteryje, priimančiame RakNet ryšius.Naudokite DHCP rezervaciją arba tinkamą statinį adresą, kad persiuntimo taisyklė ir toliau būtų nukreipta į tą kompiuterį.
- Pridėkite UDP persiuntimo taisyklę viešajam prievadui, kurį naudosis žaidėjai.
- Nustatykite taisyklės paskirties vietą į to kompiuterio vietinį adresą ir RakNet klausytuvo UDP prievadą.
- Leisti įeinantį UDP klausytojo prievade pagrindinio kompiuterio užkardoje.
Pavyzdžiui, serveris, klausantis UDP prievado 25565, gali naudoti taisyklę su viešuoju prievadu 25565, paskirties adresu 192.168.1.100 ir paskirties prievadu 25565.Pakeiskite pavyzdinį adresą į faktinį serverio vietinį adresą.
Išlaikyti esamą TCP taisyklę įprastoms Minecraft jungtims. Vien TCP persiuntimo taisyklė neperduoda UDP.
Patikrinkite, ar kitas maršrutizatorius arba jūsų IPT atlieka NAT prieš srautą pasiekiant jūsų maršrutizatorių. Jei valdote du maršrutizatoriumi, persiuntimas turi apimti abu. Jei jūsų IPT naudoja vežėjo lygio NAT, paklauskite, ar jis gali pateikti viešą IPv4 adresą arba naudoti prieglobos paslaugą ar tunelį, palaikantį gaunamą UDP. Jūsų maršrutizatoriaus persiuntimo taisyklė negali sukonfigūruoti IPT NAT. Žr. TP-Link uosto persiuntimo vadovas dėl viešojo WAN adreso reikalavimo.
Leiskite pasirinktą UDP prievado per tiek routerio IPv6 apsaugos sienos ir vartotojo apsaugos sienos. Tikslas yra mašinos IPv6 adresas, kuri priima RakNet ryšius.
Patikrinkite, ar pagrindinio kompiuterio vardo IPv6 adresas nukreipia į tą kompiuterį.Jei jo IPv6 adresas pasikeičia, atnaujinkite DNS įrašą ir visas adreso specifines užkardos taisykles.
Pagrindinio kompiuterio vardas, kuris skelbia ir IPv4 ir IPv6 adresus, turi veikti kiekvienam skelbiamam adresui.Patikrinkite abu taisyklių rinkinius, kai vienas žaidėjas gali prisijungti, o kitas negali.
Jei IPv4 persiuntimas pakeičia prievado numerį, įsitikinkite, kad prievado grotuvai taip pat pasiekia IPv6 klausytuvą.IPv4 prievado vertimas nekonfigūruoja IPv6 maršruto.
Teikėjas arba tunelis turi palaikyti UDP viešame galutiniame taške, kurį suteikiate žaidėjams, patikrinkite jo prievadų paskirstymą ir tinklo ugniasienės taisykles, taip pat serverio ugniasienę.
Jei papildomas UDP tarpinis serveris persiunčia kliento adresus naudodamas PROXY protokolo v2 versiją, vykdykite UDP persiuntimas ir PROXY protokolas ir apribokite prieigą prie gaunamo UDP klausyklės patikimam tarpiniam serveriui.
Prisijunkite iš serverio vietinio tinklo su atnaujintu Raknetify2 klientu, naudodami adresą, pvz., raknet;play.example.com:25565.Naudokite viešą UDP prievadą šiame adrese.
Naudokite tikrą RakNet ryšį, kad patikrintumėte maršrutą. UDP nuskaitymas, kuris negauna atsakymo, gali pranešti neįtikinamą rezultatą, nes veikianti tarnyba gali atmesti nežinomą zondą. Nmap UDP nuskaitymo dokumentacija paaiškina šį elgesį.
Sėkmingas TCP ryšys patvirtina tik TCP maršrutą.Jei RakNet laikas baigiasi, patikrinkite klausytuvą, persiuntimo tikslą, UDP prievadą ir užkardos taisykles naudodami Trikčių šalinimo vadovas.
Patikrinkite suderinamumą su konkrečia laida, kurią atsisiuntėte.Vystymo šaka gali turėti palaikymą, kuris dar nebuvo pasirodęs laidoje.
Minecraft ir Java versijos · English
Java reikalavimai, kuriuos deklaruoja Raknetify2, yra minimalūs. Minecraft arba įkėlėjui gali reikėti naujesnės vykdyklės. Pasirinkite Java versiją, kuri atitinka visus tris reikalavimus.
Naudokite tą pačią Raknetify2 versiją klientui ir serveriui arba tarpiniam serveriui, priimančiam jo ryšį, kai įmanoma. Prieš maišant versijas, patikrinkite versijos pastabas. Šifruotiems RakNet ryšiams reikia autentifikuoto šifravimo protokolo palaikymo abiejuose galuose. Originalios Raknetify ir Raknetify2 versijos, sukurtos prieš protokolo pristatymą, negali sukurti šifruotų ryšių su atnaujintais partneriais.
Raknetify2 naudoja Minecraft žaidimų protokolą, o norint prijungti skirtingas Minecraft versijas reikia suderinamo protokolo vertimo.
Dėl gedimo didesniame modpack, sekite Trikčių šalinimo vadovas. Įtraukite visas mod versijas į savo ataskaitą.
Paprastai Raknetify2 leidžia nepriklausomiems paketų kanalams tęstis, kol vienas kanalas laukia trūkstamų duomenų, o tvarkingas režimas pateikia visus Minecraft paketus viename kanale, todėl trūkstamas paketas sulaiko kiekvieną vėlesnį paketą ta kryptimi, kol jis yra persiunčiamas iš naujo. Tai išsaugo tvarką, kurios tikisi kai kurios anti-cheat programos, bet praranda Raknetify2 galimybę išlaikyti nesusijusių žaidimo srautų judėjimą laukimo metu.
-
Įdiekite Raknetify2 sukūrimą, kuris palaiko užsakytą režimą serveryje arba tarpiniame serveryje, priimančiame RakNet ryšius, ir kiekviename RakNet kliente.
-
Sukurkite
config/raknetify2-compatibility.jsonsusijusį su tuo serveriu ar proxy dirbojančioji kataloge. Sukurkiteconfigkatalogą, jei jis neturime. -
Pridėkite šiuos:
{"mode": "ordered"} -
Iš naujo paleiskite serverį arba tarpinį serverį.
Klientai automatiškai seka serverio nustatymus, žaidėjams nereikia kurti konfigūracijos failo ar keisti savo RakNet serverio adreso.
Visi Minecraft paketai naudoja vieną patikimą užsakytą kanalą kiekviena kryptimi, įskaitant paketų atskirtuvus ir pasaulio perėjimus.
Kai žaidėjai jungiasi per Velocity arba BungeeCord, konfigūruokite užsakytą režimą tame proxy, net jei anti-cheat veikia backend serveryje.
Ši strategija taikoma visiems užpakalinės dalies jungikliams. Užsakytu režimu tarpinis serveris persiunčia užpakalinę dalį, kad išlaikytų gyvas užklausas realiam klientui, o ne atsakytų į jas vietoje.
Pirmą kartą prijungus RakNet, konsolė praneša:
Raknetify2 compatibility: ordered (updated clients required, genuine acknowledgements)
Sėkmingas suderinamumo mainai taip pat registruoja ordered compatibility negotiated, po kurio seka peer adresą.
Laikykite anti-cheat patikras įjungtas ir patvirtinkite savo konkrečią nuostatą.
RakNet Klientai, kurie nepalaiko užsakyto režimo, negali prisijungti prie serverio, kuriam jis reikalingas. Atnaujinti Raknetify2 klientuose arba prisijungti naudojant įprastą serverio arba tarpinio serverio TCP adresą ir prievadą be raknet; prefiksas.
Pakeiskite failą į:
{"mode": "multichannel"}Tada iš naujo paleiskite serverį arba tarpinį serverį.Pašalinus failą taip pat atkuriamas daugiakanalis režimas po perkrovimo.
Faile turi būti tik vienas nustatymas, pavadintas mode, kurio reikšmė yra "ordered" arba "multichannel".Reikšmės skiriasi nuo didžiųjų ir mažųjų raidių.
Netinkama arba neįskaitoma konfigūracija atmeta RakNet ryšius. Ištaisykite failą ir paleiskite procesą iš naujo.
Jei konsolė vis dar praneša multichannel, patikrinkite, ar failas yra serverio arba tarpinio serverio, priimančio RakNet ryšį, darbo kataloge, tada iš naujo paleiskite šį procesą.
Fabric, Forge ir NeoForge serveriai gali pasirinkti RakNet, kai perkelia klientą į sukonfigūruotą paskirties vietą. Tai naudoja Minecraft vietinį perkėlimo palaikymą, pristatytą Java leidimas 1.20.5. Patikrinkite, ar jūsų Raknetify2 laida palaiko Minecraft versiją ir įkėlėją kiekviename gale.
Įdiekite Raknetify2 siunčiančiame serveryje ir kliente, o paskirties vieta turi pateikti suderinamą RakNet klausytuvą ir priimti gaunamus Minecraft pervedimus.
Ši konfigūracija taikoma perkėlimams, siunčiamiems trijų aukščiau minėtų mod įkėlėjų.Spigot/Paper, Velocity ir BungeeCord įskiepiai neskaito šio perkėlimo failo.
Sukurkite config/raknetify2-transfers.json siunčiančio serverio kataloge:
{
"destinations": [
{
"host": "play.example.com",
"tcpPort": 25565,
"udpPort": 25570
}
]
}Pakeiskite pavyzdinį kompiuterio vardą ir prievadus savo paskirties vietos reikšmėmis, tada iš naujo paleiskite siunčiantį serverį.Papildomi tikslai patenka į tą patį masyvą.
| Laukas | Reikšmė |
|---|---|
host |
Paskirties kompiuterio vardas arba IP adresas be transporto priešdėlio ar prievado |
tcpPort |
Paskirties uostas pradiniame pervedimo prašyme |
udpPort |
Viešasis RakNet prievadas, prie kurio perkeliamas klientas turėtų prisijungti |
TCP ir UDP prievadų numeriai gali būti vienodi. Jeigu maršrutizatorius konvertuoja UDP prievadą, naudokite viešąjį prievadą šiame faile. Įrašykite prievadus kaip JSON numerius.
Siųsti perdavimus į įprastą paskirties kompiuterio vardą ir TCP prievadą. Raknetify2 tikrina, ar klientas skelbia automatinio perdavimo palaikymą. Jei klientas gali ir atitinka paskirties vietą, jis pasirenka sukonfigūruotą UDP prievadą. Kiti klientai ir nesuderintos paskirties vietos išlaiko pradinį perdavimo adresą.
Atitikimas naudoja kompiuterio vardą ir TCP prievadą iš perdavimo užklausos. Kompiuterio vardo didžiosios raidės, paskutinis DNS taškas ir atitinkama IPv6 rašyba yra normalizuojami. DNS paieška nedalyvauja atitikime, todėl du skirtingi kompiuterio vardai, kurie išsprendžia į tą patį adresą, turi atskirus įrašus.
Jei paskirties vieta naudoja Minecraft server.properties, nustatykite accepts-transfers=true ir paleiskite jį iš naujo. Paskirties proxy gali turėti savo perdavimo nustatymą. Minecraft numatytasis nustatymas atmeta įeinančius perdavimus, net jei veikia įprastas tiesioginis sujungimas.
Tikslinės RakNet klausytojas, viešasis UDP perjungimas ir vartotojo sienos apsauga turi būti jau nustatyti. Siunčiantys serverio perjungimai pasirinko adresą, siunčiantį klientui.
Patikrinkite tiek paskirties IPv4, tiek IPv6 maršrutus, kai jo kompiuterio vardas skelbia abu adresų tipus.Prieš tiriant automatinio perdavimo elgesį, išbandykite įprastą tiesioginį RakNet ryšį su paskirties vieta.
Išlaikyk bet kokius tikslinės prisijungimo ar įėjimo patikrinimus. Ši konfigūracija neleidžia žaidėjams prieigos ar nepakeičia serverio autentifikacijos.
Trūkstantys laukai, nežinomi laukai, netinkami prievadai ir pasikartojančios paskirties vietos sukelia konfigūracijos klaidą inicializavimo metu.Naudokite serverio žurnalą, kad nustatytumėte klaidą, ištaisytumėte JSON ir paleiskite iš naujo.
Norėdami išjungti automatinį pasirinkimą, pašalinkite konfigūracijos failą arba naudokite {"destinations": []}, tada iš naujo paleiskite siunčiantį serverį, kurio perdavimo užklausos išlaikys savo pradinius adresus.
UDP tarpinis serveris gali persiųsti RakNet srautą ir išsaugoti pradinį kliento adresą, naudodamas PROXY protokolo v2 versiją. Įjunkite šią funkciją, kai aukštesnio lygio UDP tarpinis serveris siunčia šias antraštes jūsų klausytojui. Įprastas maršrutizatoriaus prievadų persiuntimas to nereikalauja.
Serveryje arba Minecraft proxy, gaunančiam persiunčiamą UDP srautą, sukurkite config/raknetify2-proxy-protocol.json:
{
"trustedProxies": ["192.0.2.10"]
}Pakeiskite pavyzdį į faktinį UDP tarpinio serverio IP adresą arba CIDR diapazoną, kurį kontroliuojate. Adresas turi atitikti tai, ką gaunantis klausytojas mato po bet kokio tarpinio NAT. Priimami IPv4 ir IPv6 literalai. DNS kompiuterio vardai atmetami. Iš naujo paleiskite gaunantį serverį arba tarpinį serverį.
Konfigūruoti persiuntimo tarpinį serverį, kad jis siųstų PROXY protokolo v2 antraštes UDP. Raknetify2 priima persiunčiamus kliento adresus tik iš išvardytų šaltinių. Tiesioginiai RakNet ryšiai be šių antraščių yra atmetami, kol ši konfigūracija įjungta. TCP klausytuvas išlaiko esamą konfigūraciją.
Kiekvienas sąraše esantis tarpinis serveris yra patikimas, kad galėtų pateikti kliento adresus. Užkardoje apribokite prieigą prie vidinio UDP prievado, kad jį galėtų pasiekti tik numatytas tarpinis serveris. Patikimi intervalai turi būti tokie siauri, kiek leidžia jūsų tinklas.
Failas turi turėti tik trustedProxies, su bent vienu įrašu. Tuščias masyvas yra klaida. Netinkamas failas neleidžia RakNet klausyklei paleisti.
Norėdami grįžti prie tiesioginių UDP ryšių, pašalinkite failą ir iš naujo paleiskite klausytuvą.Tuo pačiu metu atnaujinkite viršutinio persiuntimo elgesį ir užkardos taisykles naujam maršrutui.
Jei įgalinus šią funkciją ryšiai nepavyksta, patikrinkite faktinį tarpinio serverio šaltinio adresą užpakalinėje dalyje, sukonfigūruotą patikimą diapazoną ir ar tarpinis serveris siunčia UDP PROXY protokolo v2 antraštes.
Norėdami įdiegti Minecraft proxy ir konfigūruoti backend, sekite Velocity ir BungeeCord.
Raknetify2 gali pasidalinti savo serverio UDP klausytoju su Simple Voice Chat Fabric, Forge, NeoForge, Spigot ir Paper.
Įdiekite Simple Voice Chat serveryje ir kiekviename kliente, kuris nori balso pokalbių.Sekite jo serverio sąrankos vadovas likusią jo konfigūraciją.
Naudokite serverio aukščiausio lygio config katalogą Raknetify2 failui, įskaitant Spigot / Paper.Simple Voice Chat paties failo lieka konkrečioje platformos vietoje žemiau.
-
Sukurkite
config/raknetify2-voicechat.jsonserverio kataloge su šiuo turiniu:{"enabled": true} -
Nustatykite
port=-1Simple Voice Chat serverio konfigūracijoje. Modifikuotuose serveriuose tai yraconfig/voicechat/voicechat-server.properties, o Spigot/Paper serveriuose taiplugins/voicechat/voicechat-server.properties. -
Palikite
bind_addresstuščią, kai yra vienas atitinkantis RakNet klausytojas.Jei serveris turi kelis klausytojus tame UDP prievade, nustatykite jį į klausytojo, kurį norite bendrinti, vietinį adresą. -
Iš naujo paleiskite serverį ir paleiskite
/voicechat test <PLAYERNAME>prijungtam grotuvui.
Jei RakNet klausytojas naudoja kitą prievadą nei Minecraft, nustatykite balso port į tą vietinį UDP prievadą aiškiai, o ne naudojant -1.Pavyzdžiui, RakNet klausytojas vietiniame UDP prievade 25570 turi port=25570.
Nustatykite voice_host, kai klientams reikia kito viešojo adreso ar prievado. Jei maršrutizatorius persiunčia viešąjį UDP 25580 į vietinį UDP 25570, naudokite port=25570 ir voice_host=play.example.com:25580. Viešasis adresas priklauso voice_host. bind_address nustatymas parenka vietinį klausytuvą.
Raknetify2 tiekia bendrą UDP lizdą per Simple Voice Chat API. Simple Voice Chat valdo balso autentifikavimą ir šifravimą. Žaidėjai gali naudoti balso pokalbį su TCP arba RakNet žaidimo ryšiais.
Laikykite "Query" ir "Geyser" atskiruose UDP prievaduose. Bendra lizdo integracija palaiko tik Simple Voice Chat.
Integracija neturi balso proxy lizdo Velocity ar BungeeCord. Sekite Simple Voice Chat proxy nustatymo vadovas ir suteikite balso proxy savo UDP prievadą. Su oficialiu balso proxy įskiepiu, nustatykite bet kokį viešą voice_host perkėlimą proxy balso konfigūracijoje. Šis įskiepis ignoruoja užpakalinių serverių voice_host nustatymus.
Bendrojo UDP tuneliui nustatykite voice_host kaip viešąjį kompiuterio vardą ir UDP prievadą, kuris persiunčia į šį serverį.
Jei žurnalas praneša No RakNet listener matches the voice bind address and port, patikrinkite, ar RakNet pradėjo sėkmingai ir ar balso prievadas ir susiejimo adresas atitinka vietinį klausytuvą.
Jei jis praneša Multiple RakNet listeners match the voice bind address, pasirinkite konkretų atitinkantį vietinį adresą bind_address ir paleiskite iš naujo.
Tik vienas Simple Voice Chat įskiepis gali tiekti savo UDP lizdą.Jei paleidimo pranešimas praneša, kad kitas įskiepis jau tiekia lizdą, pasirinkite, kurią lizdo integraciją naudoti.
Norėdami išjungti Raknetify2 integraciją, nustatykite {"enabled": false} balso konfigūracijoje arba pašalinkite tą failą, suteikite Simple Voice Chat atskirą UDP prievadą, atnaujinkite savo ugniasienę arba persiuntimo taisykles ir iš naujo paleiskite serverį.
Patikrinkite juos tokia tvarka:
- Klientas turi teisingą Raknetify2 mod jo krautuvas ir Minecraft versija.
- Ryšį priimančiame serveryje arba tarpiniame serveryje įdiegta Raknetify2 ir jis paleistas be klausymo klaidos.
- Adresas prasideda
raknet;ir naudoja viešą UDP prievadą. - Hostingo teikėjas, maršrutizatorius ir pagrindinio kompiuterio užkarda leidžia UDP naudoti tą prievadą.
- Pagrindinio kompiuterio vardo IPv4 ir IPv6 adresai nukreipia į numatytą pagrindinį kompiuterį ir turi veikiančias užkardos taisykles.
Sėkmingas TCP ryšys patvirtina tik TCP maršrutą. Sekti Užkardos ir maršrutizatoriaus konfigūracija patikrinti UDP persiuntimo ir IPv6 prieigą. Jei PROXY protokolas yra įjungtas, klientai turi pasiekti klausytuvą per sukonfigūruotą patikimą proxy.
Patikrinkite, ar yra kitas procesas, naudojantis UDP prievadą. Query, Geyser ir kitos UDP paslaugos turi savo prievadus. Simple Voice Chat gali naudoti shared-port integracija.
Galite pasirinkti kitą vietinį UDP prievadą, naudodami direct-server klausytuvo nustatymai arba Velocity ir BungeeCord nustatymai. Patikrinkite Spigot/Paper nustatymo versijos reikalavimus. Pakeitus tik maršrutizatoriaus viešąjį prievadą, vietos lizdo konfliktas liks vietoje.
Prisijunkite tiesiogiai prie paskirties vietos naudodami jos raknet; adresą.Jei tai nepavyksta, pirmiausia ištaisykite paskirties klausyklę arba tinklo maršrutą.
Jei veikia tiesioginiai ryšiai, patikrinkite, ar paskirties serveris priima gaunamus perdavimus. Minecraft serveriui, naudojančiam server.properties, reikia accepts-transfers=true. Tiesioginės jungtys netikrina šio parametro.
Tada palyginkite perdavimo kompiuterio vardą ir TCP uostas su config/raknetify2-transfers.json Patikrinkite, ar failas buvo įkeltas po paleidimo iš naujo ir ar klientas palaiko automatinį failo įkėlimą. RakNet pervedimai. Žr. Automatiniai pervedimai.
Patikrinkite Raknetify2 versijas abiejuose ryšio galuose. Atnaujinkite klientą ir serverį arba tarpinį serverį kartu, kai laida pakeičia užšifruotą protokolą. Išsaugokite serverio autentifikavimo nustatymus, kol atliekate tyrimą.
Įrašykite, koks veiksmas sukėlė klaidą, pavyzdžiui, inventoriaus atidarymas, resursų paketo gavimas, pasaulių keitimas ar subjekto atsiradimas.Palyginkite tą patį veiksmą per TCP ir RakNet, naudodami atskirą testinę įdiegtį, kai tai praktiška.
Kai kurios modifikacijos priklauso nuo paketų tvarkos, o modifikacijų autoriai gali deklaruoti šias priklausomybes per paketų užsakymo sąsaja.
Atidarykite problemą Raknetify2 problemų sekimo priemonė ir įtraukite:
- Minecraft, Java, krautuvas, ir Raknetify2 versijos abiejuose galuose.
- Serverio ir proxy programinės įrangos versijos, įskaitant bet UDP persiuntimo proxy.
- Kiti įdiegti mods ir jų versijos.
- Veiksmai, kaip atkurti problemą ir tai, ko tikėjotės.
- Ar tie patys žingsniai veikia per TCP.
- Atitinkami kliento, serverio ir tarpinio serverio žurnalo ištraukos iš to paties bandymo.
Prieš nusiųsdami žurnalus pašalinkite prieigos raktus, slaptažodžius ir kitą asmeninę informaciją, išsaugokite išimties pranešimus ir stegoselius, reikalingus problemai diagnozuoti.
Raknetify2 leidžia mods deklaruoti, kuris Minecraft srautas turi likti užsakytas su savo pasirinktiniais naudingomis apkrovomis.Naudokite tai, kai apdorojant naudingą apkrovą reikia subjekto, gabalėlio, inventoriaus ar kitos būsenos, nustatytos ankstesniais paketais.
| Grupė | Susijęs srautas |
|---|---|
ui |
Nepriklausomi nuo pasaulio meniu ir sąveika |
entity |
Subjekto atsiradimas, pašalinimas ir judėjimas |
world_interaction |
Inventoriai ir kitos nuo pasaulio priklausomos sąveikos |
effects |
Garsai ir dalelės |
chunk |
Reljefo, blokų ir apšvietimo atnaujinimai |
Visos grupės išlaiko patikimą tvarkingą pristatymą savo kanale. Paketai skirtingose grupėse gali atvykti skirtinga santykine tvarka. Pasirinkite grupę, atitinkančią naudingosios apkrovos priklausomybę.
Pridėkite teikėją po raknetify:packet_channels įėjimo tašku jūsų mod fabric.mod.json. Teikėjas įgyvendina Consumer<BiConsumer<String, String>> naudodamas JDK tipus. Jis gauna registratorių, kuris priima pasirinktinį naudingos apkrovos identifikatorių ir užsakymo grupę.
Sujungti šį įrašą į savo esamus metaduomenis, pakeičiant klasės pavadinimą su savo teikėjo pilnai kvalifikuotu pavadinimu:
{
"entrypoints": {
"raknetify:packet_channels": [
"com.example.mod.OrderingProvider"
]
}
}Išsaugokite likusią savo fabric.mod.json dalį, įskaitant jo esamus įėjimo taškus. Tai metaduomenų failo fragmentas.
Pavyzdžiui, subjekto judėjimo plėtinys gali registruoti example:entity_path su entity grupe, o PacketOrdering API dokumentacija apima tiekėjo įgyvendinimą.
Fabric palieka šį entrypoint nenurodytą, kai Raknetify2 Teikėjai turėtų deklaruoti identifikatorius ir grupes inicializavimo metu, nepasikliaudami kitu modu, kuris baigė savo inicializavimą.
Forge ir NeoForge mods, ir serverio ar proxy įskiepiai, gali skambinti PacketOrdering.register(identifier, group) per inicijavimą, kai Raknetify2 yra prieinamas. klasė yra com.ishland.raknetify.api.PacketOrdering. Registruotis prieš priimant grotuvo jungtis, ir išlaikyti pasirinktinį integracijos kodą nuo įkėlimo Raknetify2 klases, kai priklausomybė nėra.
Deklaracijos taikomos naujiems ryšiams. Esami ryšiai išlaiko taisykles, kurias jie gavo nustatymo metu. Leidžiama kartoti identišką deklaraciją. Konfliktuojančios to paties identifikatoriaus grupės atmetamos.
Naudingosios apkrovos identifikatoriai turi naudoti galiojančią pasirinktinę vardų erdvę. minecraft vardų erdvė yra rezervuota. Galutinio taško riba yra 128 deklaracijos, įskaitant įtaisytąsias taisykles ir registravimą iš kitų modifikacijų. Identifikatoriuose gali būti iki 255 ASCII simbolių, naudojant API vardų erdvės identifikatoriaus sintaksę.
Atnaujinta RakNet lygiaverčiai keičiasi deklaracijomis ryšio nustatymo metu. Serveris arba tarpinis serveris gali naudoti lygiavertį deklaravimą, kai jis neturi vietinės taisyklės tam naudingumui.Vietinės taisyklės turi pirmenybę, o lygiaverčių deklaracijos išlieka to ryšio srityje.
Žr. UDP persiuntimas ir PROXY protokolas dėl UDP relės ir persiųstų kliento adresų.
Dėl Minecraft proxy nustatymo, žiūrėkite Velocity ir BungeeCord.