Skip to content

Wiki be by

pjscruggs edited this page Nov 11, 2026 · 2 revisions

Raknetify2 · Беларуская (Беларусь)

Мова

Сумесная гульня

Сеткавыя злучэнні RakNet для кліентаў і сервераў Minecraft.

Спампаваць · GitHub

Minecraft Raknetify2 Кліент / Сервер
Fabric mods/raknetify2-fabric-*.jar Кліент / Сервер
Forge mods/raknetify2-forge-*.jar Кліент / Сервер
NeoForge mods/raknetify2-neoforge-*.jar Кліент / Сервер
Spigot / Paper plugins/raknetify2-spigot-*.jar Сервер
Velocity plugins/raknetify2-velocity-*.jar Velocity
BungeeCord plugins/raknetify2-bungee-*.jar BungeeCord

Дадаць сервер

  1. Сумесная гульня

  2. Дадаць сервер

  3. Адрас сервера

    Адрас сервера
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. Гатова

  5. Далучыцца

F3 · Raknetify2

F3
RakNet · UDP Актыўны · MTU 1400
TCP Неактыўны

Velocity / BungeeCord

  1. Кліент · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. Velocity / BungeeCord → TCP → Сервер
Нумар порта · 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

Час чакання выйшаў

Адрас сервера UDP
raknet;play.example.com:25580 play.example.com:25580 → NAT → 192.0.2.10:25570
Сервер · 192.0.2.10 25570/udp

config/raknetify2-compatibility.json

Сервер / Velocity / BungeeCord

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

Simple Voice Chat

Сервер 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

Адрас сервера trustedProxies RakNet
192.0.2.10 · PROXY v2 / UDP ["192.0.2.10"] ✓
192.0.2.11 · PROXY v2 / UDP ["192.0.2.10"] ✗
Кліент → RakNet / UDP ["192.0.2.10"] ✗

config/raknetify2-proxy-protocol.json

{"trustedProxies":["192.0.2.10"]}

Minecraft ≥ 1.20.5 · /transfer

  1. Сервер A · Fabric / Forge / NeoForge · config/raknetify2-transfers.json

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

  3. Сервер A · /transfer play.example.com 25565 Alex → Кліент (Alex) → RakNet · play.example.com:25570

PacketOrdering

Minecraft
ui Налады
entity Шкілет
world_interaction Рыштунак
effects Часцінкі
chunk Блокі

PacketOrdering.java

Несумяшчальная версія!

Знайшлі памылку?

Хатняя старонка

Raknetify2

У шматкарыстальніцкай гульні Minecraft мод Raknetify2 перадае даныя з дапамогай RakNet праз UDP. Трафік падзяляецца на каналы, кожны з якіх захоўвае ўласны парадак пакетаў. Калі пакет у адным канале згубіўся, па іншых каналах даныя могуць ісці далей. Таму гульня можа рэагаваць на вашы дзеянні, пакуль паўторна перадаюцца страчаныя даныя або загружаюцца часткі свету.

Raknetify2 - гэта незалежна падтрымліваемы разрыў Raknetify, першапачаткова распрацаваны ishland. Разрыў дадае падтрымку для новых версій Minecraft і падтрымлівае транспарт, інтэграцыю платформы і тэсты сумяшчальнасці.

Пачаць

  1. Праверка сумяшчальнасці Minecraft і mod.
  2. Выберыце праграму для спампоўкі і ўсталюйце яе.
  3. Злучэнне з адрасам, такім як raknet;play.example.com.

Настаўленні сервера

Аўтары модаў могуць выкарыстоўваць Інтэрфейс пастаўкі пакетаў для абвяшчэння залежнасцяў паміж уласнымі нагрузкамі і трафікам Minecraft.

Спасылкі праекту

Raknetify2 выкарыстоўвае Ліцэнзія MIT і захоўвае арыгінальныя паведамленні аб аўтарскіх правах. Яго сеткавая рэалізацыя пабудавана на Raknetify і netty-raknet.

Устаноўка

Сцягнуць рэліз з GitHub Releases. Праверце версію Minecraft і патрабаваньні загрузніка для гэтага рэлізу перад усталёўкай.

Дзе вы ўсталёўваеце & Файл & Тэчка
Кліент ці сервер Fabric raknetify2-fabric-*.jar mods
Кліент ці сервер Forge raknetify2-forge-*.jar mods
Кліент ці сервер NeoForge raknetify2-neoforge-*.jar mods
Сервер Spigot або Paper raknetify2-spigot-*.jar plugins
Проксі Velocity raknetify2-velocity-*.jar plugins
Проксі BungeeCord raknetify2-bungee-*.jar plugins

Зачыніце кліент або спыніце сервер перад заменай яго JAR. Выдаліць арыгінальны Raknetify JAR і любы старэйшы Raknetify2 JAR з той жа ўстаноўкі перад даданнем новага файла.

Кліенцкія тэчкі належаць экзэмпляру Minecraft або модпаку, які вы запускаеце. Тэчкі сервера і проксі належаць серверу або ўстаноўцы проксі. Стварыце адпаведную тэчку, калі ваш загрузчык яе яшчэ не стварыў.

Прамыя злучэння з серверам

  1. Усталяваць кліенцкую модыфікацыю для вашага загрузніка.
  2. Усталяваць адпаведны серверны мод або ўтулку Spigot/Paper на сумяшчальны сервер.
  3. Наступная каманда Настаўленні брандмаўэра і маршрутызатараName дазваляе злучэнне UDP з серверам.
  4. Перазагрузіць кліент і сервер.
  5. Дадаць адрас сервера, напрыклад, raknet;play.example.com або raknet;play.example.com:25565.

Адрасы без прэфікса raknet; выкарыстоўваюць TCP.

Устаноўка кліентавай модуляцыі не дадае падтрымку RakNet на аддалены сервер. Аператар сервера павінен забяспечыць канечную кропку RakNet. Гульцы, якія падлучаюцца да сервера іншага карыстальніка, звычайна не патрабуюць правілаў перасылання маршрутызатара.

Velocity і BungeeCord

Усталюйце адпаведны ўтулку проксі і мод кліента. Прачытайце Velocity і BungeeCord для налад слухача, перасылання backend, абмежаванняў доступу і адрасу, які павінны выкарыстоўваць гульцы.

Адмысловы порт слухача UDP

Для прамога сервера Minecraft вызначце адпаведны аргумент Java ніжэй. Аператары проксі павінны выкарыстоўваць Настаўленні слухачоў Velocity і BungeeCord.

Платформа Аргумент Java Прынятыя порты
Сервер Fabric, Forge ці NeoForge -Draknetify.fabric.portOverride=25570 Ад 1 да 65534
Сервер Spigot або Paper -Draknetify.spigot.portOverride=25570 Ад 1 да 65535

Forge і NeoForge выкарыстоўваюць агульны код слухальніка, таму іх назва ўласцівасці таксама ўтрымлівае fabric. Замяніце 25570 на жаданы UDP порт.

Spigot / Paper ≥ 0.1.0-beta.1.431

Дадаць аргумент перад -jar у камандзе Java або ў поле аргументаў JVM вашага вузла. Перазагрузіць сервер і дазволіць UDP на выбраным порту слухача. Калі публічны порт таксама 25570, падлучыцеся да raknet;play.example.com:25570. Калі маршрутызатар перакладае порт, выкарыстоўвайце яго публічны порт у адрасе кліента. Порт TCP застаецца на сваім існуючым значэнні.

На Spigot/ Paper, слухач UDP захоўвае лакальны адрас злучэння слухача Minecraft TCP. Няслушная перазагрузка або заняты порт UDP перашкаджае запуску RakNet. Праверце часопіс запуску для звязанага адрасу і порта UDP. Выдаліць аргумент і перазагрузіць, каб вярнуцца да нумара порта слухача TCP.

Маршрутызатар або UDP-праксі можа таксама выяўляць іншы публічны порт UDP і перасылаць яго на існуючы слухач без змены аргументаў Java сервера.

Збудовы для распрацоўкі

Адкрыць паспяховы файл main запуск у GitHub Actions і загрузіць яго Artifacts архіў. GitHub Неабходны рахунак для загрузкі артэфактаў workflow. Выкарыстоўвайце табліцу ўстаноўкі вышэй, каб выбраць JAR з архіва.

Velocity і BungeeCord

Velocity і BungeeCord знаходзяцца паміж гульцамі і серверамі Minecraft. Усталюйце Raknetify2 на проксі і на кожным кліенце, які падлучаецца праз RakNet.

Raknetify2 · Кліент --UDP--> Velocity / BungeeCord --TCP--> Сервер

Backend- серверы не патрабуюць Raknetify2 для гэтага шляху злучэння. Яны ўсё роўна патрабуюць модаў, утулак і падтрымкі перасылання, патрэбных вашай сетцы. Raknetify2 не перакладае версіі Minecraft і не змяняе аўтэнтыфікацыю рахункаў проксі.

Усталяваць утулку проксі

  1. Пацвердзіце, што звычайныя злучэння TCP праз ваш проксі працуюць, уключаючы аўтэнтыфікацыю і пераключэнне паміж серверамі.
  2. Спыніць проксі і загрузіць адпаведны ўтулку з GitHub Releases.
  3. Уставіць raknetify2-velocity-*-all.jar або raknetify2-bungee-*-all.jar у тэчку plugins проксі. Выдаліць усе старыя ўтулкі Raknetify або Raknetify2 з гэтай тэчкі.
  4. Усталюйце адпаведны мод кліента Raknetify2 з дапамогай кіраўніцтва ўстаноўкі.
  5. Праверце налады слухача ніжэй, перазагрузіце проксі і праверце яго часопіс на памылкі слухача RakNet.
  6. Дазволіць публічны трафік UDP на проксі і абмежаваць гульнявыя порты, як апісана ў Настаўленні брандмаўэра і маршрутызатараName.

Выкарыстоўваць сумяшчальныя версіі Raknetify2 на кліенце і проксі. Праверце Сумяшчальнасць перад сумяшчэннем версій.

Velocity

Настаўленне bind у velocity.toml выбірае адрас слухання Minecraft і порт TCP для Velocity. Raknetify2 звычайна выкарыстоўвае той жа нумар порта для UDP. Запісы [servers] вызначаюць backend- серверы. Утрымлівайце гэтыя запісы накіраванымі на адрасы backend TCP. Глядзіце спасылку на настаўленні для Velocity.

Каб выкарыстоўваць асобны порт UDP, дадайце гэты аргумент JVM перад -jar у камандзе запуску Velocity:

-Draknetify.velocity.portOverride=25570

Замяніць 25570 на ваш выбраны порт. Гэта зменіць порт RakNet на UDP, захаваўшы пры гэтым Velocity' s TCP порт і адрасы backend. Перазагрузіць Velocity пасля змены аргументаў.

Настаўце перасылку гульцоў на Velocity і яго backend. Выкарыстоўвайце сучасную перасылку, калі праграма backend падтрымлівае яе, і захоўвайце сакрэтнасць перасылкі. Выконвайце інструкцыі backend у Інфармацыя пра гульца для Velocity. Захоўвайце абмежаванні firewall backend на месцы разам з перасылкай.

BungeeCord

У config.yml BungeeCord, значэнне host пад кожным запісам listeners вызначае адрас слухання Minecraft і порт TCP. Raknetify2 звычайна дадае UDP на гэты нумар порта. Запісы servers утрымліваюць адрасы backend TCP. Гэтыя налады апісаны ў Падручнік настаўлення BungeeCord.

Для асобнага порта UDP дадайце гэты аргумент JVM перад -jar у камандзе запуску BungeeCord:

-Draknetify.bungee.portOverride=25570

Гэтая перазагрузка адносіцца да ўсяго працэсу проксі. Для настаўлення з некалькімі слухачамі Minecraft праверце рэальныя канечнасці RakNet у часопісе запуску перад даданнем правілаў брандмаўэра. Перазагрузіце BungeeCord пасля змены аргументаў.

Захоўваць аўтэнтыфікацыю ўліковага запісу на проксі. Для backend- аў Spigot, Падручнік IP- перасылання BungeeCord паруе ip_forward: true на проксі з settings.bungeecord: true на backend- а. Сама па сабе перасылка не перашкаджае каму- небудзь злучацца да backend- а папросту. Абмежаваць доступ да backend- оў з дапамогай інструкцыі брандмаўэра.

Вылучыце адрас, якім будуць карыстацца гульцы

Абедзве перазагрузкі проксі прымаюць порты ад 1 да 65534. Няслушныя значэнні ігнаруюцца, таму праверце прывязаны порт UDP у часопісе запуску. Выдаліць аргумент і перазагрузіць сістэму, каб вярнуцца да нумара порта слухача Minecraft.

Гульцы злучаюцца з проксі- серверам праз публічную назву вузла і порт UDP, напрыклад, raknet;play.example.com:25570. Калі маршрутызатар перакладае порты, выкарыстоўвайце яго публічны порт UDP у адрасе кліента. Адрасы без прэфікса raknet; працягваюць выкарыстоўваць слухач TCP проксі.

Пакіньце Query, Geyser і іншыя сервісы UDP на асобных портах UDP. Іншы порт TCP не вырашае канфлікт сокетаў UDP.

Галасовыя гутаркі і дадатковае перасыланьне па UDP

Simple Voice Chat выкарыстоўвае свой уласны плагін-праксі і UDP порт на Velocity і BungeeCord. Выконвайце паказанні Паказанні праксі для гуку для гэтага наладжання.

Калі перад вашым проксі- серверам Minecraft знаходзіцца асобны рэле UDP, які адпраўляе загалоўкі пратакола PROXY v2, настаўце Raknetify2 з дапамогай Перадача UDP і пратакол PROXY. Устаноўка Velocity або BungeeCord сама па сабе не патрабуе такой настаўлення.

Праверка злучэння

Праверка з- за межаў лакальнай сеткі з дапамогай кліента Raknetify2. Падлучыцеся праз проксі, пераключыцеся паміж серверамі і праверце, ці правільны ідэнтыфікатар і правы карыстальніка.

  • Калі TCP праз проксі працуе, але RakNet перавышае тэрмін чакання, праверце слухач UDP проксі, публічны порт, маршруты IPv4 і IPv6 і правілы брандмаўэра.
  • Калі абодва транспарты не працуюць, калі праксі злучваецца з бекэндам, праверце TCP-адрэс бекэнда, правілы доступу і канфігурацыю перанаправання гульшы.
  • Калі проксі паведамляе пра заняты порт UDP, праверце наяўнасць Query, Geyser, галасавага проксі або іншага працэсу, звязанага з ім.

Для справаздач, уключыце як часопісы проксі, так і backend ад адной спробы злучэння. Глядзіце Адладка для інфармацыі аб версіі, якую трэба ўключыць.

Канфігурацыя брандмаўра і маршрутыратара

Гэтае кіраўніцтва прызначана для аператараў сервераў. Raknetify2 патрабуе дзейснага маршруту UDP да сервера або проксі, які прымае злучэння RakNet. Па змаўчанні выкарыстоўваецца той жа нумар порта, што і для слухача TCP у Minecraft.

Для гульцоў у адной і той жа мясцовай сетцы выкарыстоўвайце мясцовы адрас сервера і дазваляйце UDP праходзіць праз брандмаўэр вашага вузла. Перадача портаў маршрутызатара неабходная, калі інтэрнэт- трафік павінен праходзіць праз IPv4 NAT вашага маршрутызатара.

Вылучыце месца прызначэння і порт

Непасрэдны сервер

Даслаць публічны трафік UDP на камп' ютэр, дзе працуе сервер Minecraft з Raknetify2. Порт прызначэння - гэта слухач сервера RakNet UDP. Дазволіць гэты порт у брандмауэр сервера. Захоўваць існуючы маршрут TCP для звычайных злучэнняў Minecraft.

Напрыклад, калі Raknetify2 слухае на UDP 25570, перанакіраваць публічны порт UDP на мясцовы адрас сервера на порту 25570. Порт TCP сервера можа заставацца на 25565. Глядзіце Настаўленні, каб выбраць іншы порт UDP.

Velocity або BungeeCord

Даслаць публічны трафік UDP на камп' ютэр, дзе працуе Velocity або BungeeCord з дадаткам проксі Raknetify2. Выкарыстоўваць слухач RakNet UDP проксі як месца прызначэння перасылкі. Захоўваць існуючы публічны маршрут TCP проксі для звычайных злучэнняў Minecraft.

Проксі злучаецца з серверамі backend Minecraft праз TCP. Даданне Raknetify2 да проксі не патрабуе адкрыцця портаў backend UDP для гульцоў.

Злучэнне Дазволены доступ
Гульцы на проксі Публічны UDP да слухача RakNet, плюс існуючы публічны слухач TCP
Праксі да сервераў backend Порты backend Minecraft TCP, даступныя толькі з прызначаных проксі- вузлоў
Гульцы прама ў backend гульнявых портаў Захоўваць блакаванае, уключаючы праз IPv6

Калі проксі і backend працуюць на вызначанай вамі машыны, backend слухачы могуць выкарыстоўваць loopback адрасы з проксі, настроенымі для дасягнення іх там. Паміж машынамі абмежаваць backend TCP доступ да проксі вузлоў з дапамогай брандмауэр або ізаляванай прыватнай сеткі. Кантэйнеры і кіруемыя вузлы патрабуюць эквівалентных абмежаванняў для іх сеткавага раскладу. Глядзіце Падручнік па бяспецы backend Velocity і Падручнік па файрволе BungeeCord.

Перадача гульцоў і абмежаванні брандмаўэра працуюць разам. Прамы доступ да backend можа абмінуць праверку ўваходу проксі. Для ўстаноўкі ўтулкі, настаўлення перадачы і пераключэння портаў UDP, глядзіце Velocity і BungeeCord.

Нумары публічных і мясцовых портаў

Публічны порт і порт слухача могуць адрознівацца, калі маршрутызатар перакладае паміж імі:

Настаўленні Выкарыстоўваць порт
Адрас сервера кліента Публічны порт на UDP
Знешні порт правіла перасылання маршрутызатара Публічны порт на UDP
Унутраны порт правіла перасылання маршрутызатара Порт UDP слухача RakNet
Мясцовы порт брандмаўэра вузла Порт UDP слухача RakNet

Перадача портаў IPv4

Для хостынгу за маршрутызатарам IPv4:

  1. Знайсці лакальны адрас IPv4 машыны, якая прымае злучэння RakNet. Выкарыстоўвайце рэзерваванне DHCP або адпаведны статычны адрас, каб правіла перасылкі працягвала працаваць на гэтай машыны.
  2. Дадаць правіла перасылання UDP для публічных портаў, якія будуць выкарыстоўвацца гульцамі.
  3. Усталюйце мэту правіла на лакальны адрас гэтай машыны і порт UDP слухача RakNet.
  4. Дазволіць уваходныя UDP на порт слухача ў брандмаўэры вузла.

Напрыклад, сервер, які слухае на порту UDP 25565, можа выкарыстоўваць правіла з публічным портам 25565, адрасам прызначэння 192.168.1.100 і адрасным портам 25565. Замяніце прыкладны адрас на рэальны лакальны адрас сервера.

Захоўваць існуючае правіла TCP для звычайных злучэнняў Minecraft. Адзін правіла перасылання TCP не пераносіць UDP.

Калі перасыланне ўсё роўна не атрымліваецца

Праверце, ці выконвае іншы маршрутызатар або ваш ISP NAT перад тым, як трафік дасягне вашага маршрутызатара. Калі вы кіруеце двума маршрутызатарамі, перасылка павінна ахопліваць абодва. Калі ваш ISP выкарыстоўвае NAT, запытайцеся, ці можа ён забяспечыць публічны адрас IPv4 або выкарыстаць сэрвіс хостынгу або тунэль, які падтрымлівае ўваходныя UDP. Рэгуляванне перасылкі вашага маршрутызатару не можа наладзіць NAT ISP. Глядзіце Падручнік па перанакіраваньні портаў TP-Link для патрабаванняў публічнага адрасу WAN.

Правілы брандмаўэра IPv6

Дазволіць праходжанне вылучанага порта UDP праз файрвол маршрутызатара IPv6 і вузла. Накіраваць на адрас IPv6 камп' ютэру, які прымае злучэння RakNet.

Праверце, ці з' яўляецца адрас IPv6 назвы вузла спасылкай на гэты камп' ютэр. Калі адрас IPv6 змяніўся, абнавіць запіс DNS і ўсе правілы брандмаўэра, якія тычацца адрасу.

Імя вузла, якое публікуе адрасы IPv4 і IPv6, патрабуе працоўнага маршруту для кожнага абвешчанага адрасу. Праверце абодва наборы правілаў, калі адзін гулец можа злучыцца, а іншы не можа.

Калі перанакіраванне IPv4 змяняе нумар порта, пераканайцеся, што ўведзеныя гульцамі порты таксама даходзяць да слухача IPv6. Пераклад порта IPv4 не канфігуруе маршрут IPv6.

Пастаўшчыкі хостынгу і тунэлі

Пастаўшчык паслуг або тунэль павінны падтрымліваць UDP на публічнай канечнасці, якую вы даеце гульцам. Праверце прывязку портаў і правілы сеткавай брандмауэр, а таксама брандмауэр сервера.

Калі дадатковы UDP проксі перасылае кліенцкія адрасы з дапамогай пратакола PROXY v2, то Перадача UDP і пратакол PROXY і абмяжоўвае доступ да атрымання слухача UDP да даверанага проксі.

Праверка злучэння

Злучыцца з- за межаў мясцовай сеткі сервера з абноўленым кліентам Raknetify2, выкарыстоўваючы адрас, напрыклад, raknet;play.example.com:25565. Выкарыстоўваць публічны порт UDP у гэтым адрасе.

Выкарыстоўвайце сапраўдны злучэнне RakNet, каб праверыць маршрут. UDP-скане, якое не атрымлівае адказу, можа паведаміць невычвердзены вынік, бо працуючы сервіс можа адкінуць непрывычны праб. Дакументацыя UDP-сканера Nmap паясняе гэты прыём.

Паспяховае злучэнне з TCP пацвярджае толькі маршрут TCP. Калі прайшоў тэрмін чакання RakNet, праверце слухачоў, мэту перасылання, порт UDP і правілы брандмаўэра з дапамогай Памылка.

Сумяшчальнасць

Праверце сумяшчальнасць для вызначанага выдання, якое вы загружаеце. Галіна распрацоўкі можа ўтрымліваць падтрымку, якая яшчэ не з'явілася ў выданні.

Версіі Minecraft і Java

Версіі Minecraft і Java · English

Запатрабаванне Java, абвешчанае Raknetify2, з' яўляецца мінімальным. Minecraft або загрузчык могуць патрабаваць больш новай версіі праграмы. Выберыце версію Java, якая задавальняе ўсе тры.

Версіі кліента і сервера

Выкарыстоўвайце адну і тую ж версію Raknetify2 на кліенце і серверы або проксі, калі гэта магчыма. Праверце запісы аб выпуску перад сумяшчэннем версій. Зашыфраванае злучэнне RakNet патрабуе падтрымкі пратакола шыфравання з аўтэнтыфікацыяй на абодвух канцах. Асноўныя версіі Raknetify і Raknetify2, створаныя да ўвядзення гэтага пратакола, не могуць ствараць зашыфраванае падлучэнне да абноўленых партнёраў.

Raknetify2 падтрымлівае існуючы гульнявы пратакол Minecraft. Падлучэнне розных версій Minecraft патрабуе сумяшчальных налад перакладу пратакола.

Іншыя моды

Іншыя моды · English

Для звароту ў вялікі модпак, судоўце павучэнне па выпраўленні праблем . Уключыце поўныя версіі модаў у свой справаздачу.

Упарадкаваны рэжым

Упарадкаваны рэжым

Звычайна, Raknetify2 дазваляе каналам незалежных пакетаў працягваць працу, пакуль адзін канал чакае адсутных дадзеных. Упарадкаваны рэжым ставіць усе пакеты Minecraft на адзін канал, так што адсутны пакет затрымлівае кожны наступны пакет у гэтым кірунку, пакуль ён не будзе перададзены зноў. Гэта захоўвае парадак, які чакаюць некаторыя праграмы супраць махлярства, але пазбаўляе Raknetify2 магчымасці падтрымліваць не звязаны з гульнёй трафік падчас чакання.

Уключэнне ўпарадкаванага рэжыму

  1. Усталюйце збудаванне Raknetify2, якое падтрымлівае ўпарадкаваны рэжым на серверы ці проксі, які прымае злучэння RakNet, і на кожным кліенце RakNet.

  2. Стварыць config/raknetify2-compatibility.json адносна працоўнай тэчкі сервера або проксі. Стварыць тэчку config, калі яна не існуе.

  3. Дадаць наступнае:

    {"mode": "ordered"}
  4. Перазагрузіць сервер або проксі.

Кліенты аўтаматычна выконваюць налады сервера. Гульцам не трэба ствараць файл настаўлення або змяняць адрас сервера RakNet.

Усе пакеты Minecraft выкарыстоўваюць адзін надзейны ўпарадкаваны канал у кожным кірунку, уключаючы раздзяляльнікі пакетаў і пераходы свету.

Настаўленні проксі

Калі гульцы злучаюцца праз Velocity або BungeeCord, наладжвайце рэжым парадку на гэтым проксі, нават калі anti-cheat працуе на серверы backend.

Гэтая палітыка дзейнічае для ўсіх пераключэнняў backend. У парадкаваным рэжыме backend перасылання проксі захоўвае запыты на рэальным кліенце замест адказу на іх лакальна.

Праверка настаўленняў

Пры першым злучэнні з RakNet кансоль паведамляе:

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

Паспяховы абмен сумяшчальнасцю таксама запісваецца ordered compatibility negotiated, за якім ідзе адрас партнёра.

Захоўваць праверкі супраць махлярства ўключанымі і праверыць вашыя налады.

Старыя кліенты

Кліенты RakNet, якія не падтрымліваюць упарадкаваны рэжым, не могуць злучыцца з серверам, які патрабуе гэтага. Абнавіць Raknetify2 на гэтых кліентах, або злучыцца, выкарыстоўваючы звычайны адрас сервера або проксі TCP і порт без прэфікса raknet;.

Вяртанне ў шматканальны рэжым

Змяніць файл на:

{"mode": "multichannel"}

Затым перазагрузіце сервер або проксі. Выдаленне файла таксама вяртае шматканальны рэжым пасля перазагрузкі.

Праблемы з настаўленнем

Файл павінен утрымліваць толькі адно настаўленне, названае mode, з або "ordered", або "multichannel" як яго значэннем. Значэнні ўлічваюць рэгістр.

Недапушчальная або нечытаная канфігурацыя адхіляе злучэння RakNet. Выпраўце файл і перазагрузіце працэс.

Калі кансоль усё яшчэ паведамляе аб памылцы multichannel, праверце, ці знаходзіцца файл у працоўнай тэчцы сервера або проксі, які прымае злучэнне RakNet, і перазагрузіце працэс.

Аўтаматычныя перадачы

Серверы Fabric, Forge і NeoForge могуць выбіраць RakNet пры перадачы кліента ў настаўлены пункт прызначэння. Гэта выкарыстоўвае падтрымку перадачы Minecraft, уведзеную ў Выданне Java 1.20.5. Праверце, ці падтрымлівае ваша версія Raknetify2 версію Minecraft і загрузнік на кожным канцы.

Усталяваць Raknetify2 на серверы і кліенце адпраўкі. Адрасат павінен мець сумяшчальны слухач RakNet і прымаць увайшлі перадачы Minecraft.

Гэтыя настаўленні датычацца перадачы дадзеных, адпраўленых з дапамогай трох вышэйзгаданых загрузчыкаў модаў. Утулкі Spigot/ Paper, Velocity і BungeeCord не чытаюць гэты файл перадачы.

Настаўленні сервера адпраўкі

Стварыць config/raknetify2-transfers.json у тэчцы сервера адпраўкі:

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

Замяніць імя вузла і порты на значэнні вашага прызначэння і перазагрузіць сервер адпраўкі. Дадатковыя прызначэння будуць у тым жа масіве.

Поле Значэнне
host Назва вузла ці IP- адрас прызначэння, без прэфікса транспарту і порту
tcpPort Порт прызначэння ў першапачатковым запыце перадачы
udpPort Публічны порт RakNet, з якім павінен звязацца перанесены кліент

Нумары портаў TCP і UDP могуць быць аднолькавымі. Калі маршрутызатар перакладае нумар порта UDP, выкарыстоўвайце публічны порт у гэтым файле. Запісвайце нумары портаў як нумары JSON.

Адпраўляць перадачы на звычайную назву вузла прызначэння і порт TCP. Raknetify2 правярае, ці абвяшчае кліент падтрымку аўтаматычнага перадачы. Для кліента з такой магчымасцю і адпаведнага прызначэння ён выбірае настаўлены порт UDP. Іншыя кліенты і неадпаведныя прызначэння захоўваюць першапачатковы адрас перадачы.

Суадносіны выкарыстоўвае назву вузла і TCP порт з запыту перадачы. Імя вузла ў рэгістрах, апошняе DNS кропка, і эквівалент IPv6 Праверыць правапіс. DNS пошукі не ўдзельнічаюць у суадносінах, таму дзве розныя назвы вузлоў, якія маюць адзін і той жа адрас, патрабуюць асобных запісаў. Запісы з заменымі сімваламі не падтрымліваюцца.

Настаўленні прызначэння

Для прызначэння, якое выкарыстоўвае server.properties Minecraft, усталюйце accepts-transfers=true і перазагрузіце яго. Праксі прызначэння можа мець свае ўласныя настаўленні перадачы. Па змаўчанні Minecraft адхіляе ўваходныя перадачы, нават калі працуе звычайнае прамае злучэнне.

Неабходна наладзіць слухач RakNet, публічную перасылку UDP і брандмауэр вузла. Адрас, які будзе адпраўлены кліенту, вызначаецца файлам перадачы сервера.

Праверка маршрутаў IPv4 і IPv6 прызначэння, калі імя вузла мае два тыпы адрасоў. Праверка звычайнага прамога злучэння RakNet з прызначэннем перад праверкай аўтаматычнага перадачы.

Захоўваць любыя мэтавыя праверкі ўваходу і доступу. Гэтыя настаўленні не даюць права доступу гульцам і не заменяюць аўтэнтыфікацыю сервера.

Памылкі канфігурацыі і адключэнне

Адсутныя палі, невядомыя палі, няправільныя порты і дублікаты прызначэнняў выклікаюць памылку настаўлення падчас ініцыялізацыі. Выкарыстоўвайце часопіс сервера, каб вызначыць памылку, выправіць JSON і перазагрузіць.

Каб адключыць аўтаматычны выбар, выдаліце файл настаўленняў або выкарыстайце {"destinations": []}, а затым перазагрузіце сервер адпраўкі. Запыты на перасылку будуць захоўваць свае першапачатковыя адрасы.

Перадача UDP і пратакол PROXY

Проксі UDP можа перанакіроўваць трафік RakNet і захоўваць арыгінальны адрас кліента, выкарыстоўваючы пратакол PROXY v2. Уключыце гэтую магчымасць, калі проксі UDP адпраўляе гэтыя загалоўкі вашаму слухачу. Звычайнае перанакіраванне портаў маршрутызатара не патрабуе гэтага.

На серверы або проксі Minecraft, які атрымлівае перанакіраваны трафік UDP, стварыць config/raknetify2-proxy-protocol.json:

{
  "trustedProxies": ["192.0.2.10"]
}

Замяніць прыклад IP- адрасам проксі- сервера UDP або дыяпазонам CIDR, які вы кантралюеце. Адрас павінен адпавядаць адрасу, які атрымальнік бачыць пасля любога ўмяшання NAT. Прымаюцца літарылы IPv4 і IPv6. Імёны вузлоў DNS адхіляюцца. Перазагрузіць сервер або проксі- сервер.

Настаўце проксі- сервер для перасылкі паведамленняў на адпраўку загалоўкаў пратакола PROXY v2 для UDP. Raknetify2 прымае перасланыя кліенцкія адрасы толькі з пералічаных крыніц. Прамыя злучэння RakNet без гэтых загалоўкаў адхіляюцца, пакуль гэтая настаўленне ўключана. Слухач TCP захоўвае свае існуючыя налады.

Давер і доступ

Кожнаму проксі-серверу са спіса дазволена перадаваць адрас кліента. Наладзьце міжсеткавы экран унутранага сервера так, каб доступ да яго порта UDP меў толькі вызначаны проксі-сервер. У давераныя дыяпазоны ўключайце толькі неабходныя адрасы.

Файл павінен утрымліваць толькі trustedProxies, як мінімум з адным запісам. Пусты масіў - гэта памылка. Няслушны файл не дазваляе запусціць слухач RakNet.

Каб вярнуцца да прамых злучэнняў UDP, выдаліце файл і перазагрузіце слухач. Адначасова абнавіць паводзіны перасылання і правілы брандмаўэра для новага маршруту.

Калі пасля ўключэння гэтай магчымасці злучэнне не атрымліваецца, праверце сапраўдны адрас крыніца проксі ў backend, настаўлены давераны дыяпазон і ці выдае проксі загалоўкі пратакола UDP PROXY v2.

Для ўстаноўкі проксі-сервера Minecraft і канфігурацыі backend, прачытайце Velocity і BungeeCord.

Simple Voice Chat

Raknetify2 можа падзяліцца сваім серверам UDP слухач з Simple Voice Chat уключана Fabric, Forge, NeoForge, Spigot, і Paper.

Усталюйце Simple Voice Chat на серверы і на кожным кліенце, які хоча мець галасавую гутарку. Прачытайце яго Падручнік настаўлення сервера для астатніх налад.

Выкарыстоўваць каталог вышэйшага ўзроўню сервера config для файла Raknetify2, уключаючы Spigot/Paper. Файл Simple Voice Chat застаецца ў месцазнаходжанні платформы ніжэй.

Падзяліць порт гульні

  1. Стварыць config/raknetify2-voicechat.json у тэчцы сервера з наступным зместам:

    {"enabled": true}
  2. Усталюйце port=-1 у настаўленнях сервера Simple Voice Chat. На модыфікаваных серверах гэта config/voicechat/voicechat-server.properties. На Spigot/ Paper гэта plugins/voicechat/voicechat-server.properties.

  3. Пакіньце bind_address пустым, калі існуе адзін адпаведны слухач RakNet. Калі сервер мае некалькі слухачоў на гэтым порту UDP, усталюйце яго на лакальны адрас слухача, які вы хочаце падзяліцца.

  4. Перазагрузіць сервер і выканаць /voicechat test <PLAYERNAME> для падлучанага гульца.

Калі слухач RakNet карыстаецца іншым портам, чым Minecraft, усталюйце голас port на гэты лакальны порт UDP выразна замест выкарыстання -1. Напрыклад, слухач RakNet на лакальным порту UDP 25570 патрабуе port=25570.

Усталюйце voice_host, калі кліентам патрэбны іншы публічны адрас або порт. Для маршрутызатара, які перасылае публічныя UDP 25580 на мясцовыя UDP 25570, выкарыстоўвайце port=25570 і voice_host=play.example.com:25580. Публічны адрас знаходзіцца ў voice_host. Настаўленне bind_address выбірае мясцовы слухач.

Raknetify2 забяспечвае супольны сокет UDP праз API Simple Voice Chat. Simple Voice Chat апрацоўвае галасавую аўтэнтыфікацыю і шыфраванне. Гульцы могуць выкарыстоўваць галасавы чат з падлучэннем да гульні TCP або RakNet.

Іншыя сервісы і проксі UDP

Захоўваць Query і Geyser на асобных портах UDP. Інтэграцыя з агульнымі сокетамі падтрымлівае толькі Simple Voice Chat.

Інтэграцыя не выкарыстоўвае агульныя сокеты для галасавых проксі на Velocity і BungeeCord. Працягвайце з Падручнік па наладцы проксі Simple Voice Chat і дайце галасавым проксі свой уласны порт UDP. З дапамогай афіцыйнага дапаўнення для галасавых праксі ўсталюйце любую агульнадаступную перазагрузку voice_host у настаўленнях галасаваньня проксі. Гэтае дапаўненне ігнаруе настаўленні voice_host сервераў backend.

Для звычайнага тунэля UDP усталюйце voice_host як агульнадаступную назву вузла і порт UDP, які перасылаецца на гэты сервер.

Выключыць агульны доступ або вырашыць канфлікт сокетаў

Калі ў часопісе паказана No RakNet listener matches the voice bind address and port, праверце, што RakNet паспяхова запушчаны і што галасавы порт і адрас злучэння адпавядаюць яго мясцоваму слухачу.

Калі ён паведамляе Multiple RakNet listeners match the voice bind address, выберыце адпаведны лакальны адрас у bind_address і перазагрузіце.

Толькі адзін утулка Simple Voice Chat можа забяспечыць свой сокет UDP. Калі пры запуску паведамляецца, што іншы ўтулка ўжо забяспечвае сокет, выберыце, якую інтэграцыю сокетаў выкарыстоўваць.

Каб адключыць інтэграцыю з Raknetify2, усталюйце {"enabled": false} у наладах голасу або выдаліце гэты файл. Дадайце да Simple Voice Chat асобны порт UDP, абнавіць яго брандмауэр або правілы перасылання і перазагрузіце сервер.

Адладка

TCP працуе, але RakNet не працуе

Праверце ў парадку:

  1. Кліент мае правільны Raknetify2 мод для яго загрузчыка і Minecraft версію.
  2. Сервер або проксі- сервер, які прымае злучэнне, усталяваў Raknetify2 і запусціў яго без памылкі слухача.
  3. Адрас пачынаецца з raknet; і выкарыстоўвае публічны порт UDP.
  4. Пастаўшчык хостынгу, маршрутызатар і брандмаўэр вузла дазваляюць UDP на гэтым порту.
  5. Адрасы IPv4 і IPv6 імя вузла вядуць да мэтавага вузла і маюць працуючыя правілы брандмаўэра.

Паспяховае злучэнне TCP пацвярджае толькі маршрут TCP. Праверце перасылку UDP і доступ да IPv6 з дапамогай Настаўленні брандмаўэра і маршрутызатараName. Калі ўключаны пратакол PROXY, кліенты павінны далучацца да слухача праз настаўлены давераны проксі.

Адрас ужо выкарыстоўваецца

Праверка на іншыя працэсы, якія выкарыстоўваюць порт UDP. Query, Geyser і іншыя сервісы UDP патрабуюць свае порты. Simple Voice Chat можа выкарыстоўваць Інтэграцыя shared- port.

Вы можаце выбраць іншы лакальны порт UDP, выкарыстоўваючы Настаўленні або Настаўленні Velocity і BungeeCord. Праверце патрабаванні да версіі для настаўлення Spigot/ Paper. Змена толькі публічнага порта маршрутызатара пакідае канфлікт лакальных сокетаў на месцы.

Далучэнне працуе, але перадачы няўдачы

Злучыцца з мэтай праз яе адрас raknet;. Калі гэта не атрымліваецца, спачатку выправіце прыярытэтны слухач або сеткавы маршрут.

Калі прамыя злучэння працуюць, праверце, ці прымае месца прызначэння ўваходныя перадачы. Сервер Minecraft, які выкарыстоўвае server.properties, патрабуе accepts-transfers=true. Прамыя злучэнні не правяраюць гэтае настаўленне.

Затым параўнайце імя вузла перадачы і порт TCP з config/raknetify2-transfers.json на серверы адпраўкі. Падтрымка аўтаматычнага перадачы файла пасля перазагрузкі і падтрымка кліентам аўтаматычных пераданняў RakNet. Глядзіце Аўтаматычныя перадачы.

Памылкі шыфравання або пратакола

Праверце версіі Raknetify2 на абодвух канцах злучэння. Абнавіць кліента і сервер або проксі разам, калі версія змяняе шыфраваны пратакол. Захоўваць настаўленні аўтарызацыі сервера падчас праверкі.

Памылкі, спецыфічныя для моду

Запісаць дзеянне, якое выклікала памылку, напрыклад, адкрыццё інвентару, атрыманне пакета рэсурсаў, змена светаў або стварэнне сутнасці. Параўнаць адно і тое ж дзеянне паміж TCP і RakNet з выкарыстаннем асобнай тэставай ўстаноўкі, калі гэта магчыма.

Некаторыя ўласныя карысныя файлы залежаць ад парадку пакетаў vanilla. Аўтары модаў могуць абвясціць гэтыя залежнасці праз Інтэрфейс пастаўкі пакетаў.

Паведаміць пра памылку

Адкрыць праблему ў Праграма для выяўленьня праблемаў Raknetify2 і ўключыць:

  • Minecraft, Java, загрузнік і Raknetify2 версіі на абодвух канцах.
  • Сервер і проксі-версіі праграмнага забеспячэння, уключаючы любы UDP forwarding proxy.
  • Іншыя ўсталяваныя моды і іх версіі.
  • Крокі, каб адлюстраваць праблему і тое, што вы чакалі.
  • Ці працуюць тыя ж крокі на TCP.
  • Рэлевантныя кліент, сервер і проксі часопісы выцягваюцца з адной спробы.

Выдаліць ключы доступу, паролі і іншыя прыватныя звесткі перад загрузкай часопісаў. Захоўваць паведамленні аб выключэннях і след стэка, неабходныя для дыягностыкі праблемы.

Інтэграцыя Mod

Raknetify2 дазваляе модам абвяшчаць, які трафік Minecraft павінен заставацца ў парадку з іх уласнымі карыснымі нагрузкамі. Выкарыстоўвайце гэта, калі апрацоўка карыснай нагрузкі патрабуе сутнасці, часткі, інвентару або іншага стану, устаноўленага ранейшымі пакетамі.

Упарадкаванне груп

Група Звязаны трафік
ui Незалежныя ад свету меню і інтэрфейсы
entity Стварэнне, выдаленне і перамяшчэнне элементаў
world_interaction Інвентары і іншыя залежныя ад сьвету ўзаемадзеяньні
effects Гукі і часціцы
chunk Абнаўленне рэльефу, блокаў і асвятлення

Усе групы захоўваюць надзейную ўпарадкаваную дастаўку ў сваіх каналах. Пакеты ў розных групах могуць прыходзіць у розным адносным парадку. Выберыце групу, якая адпавядае залежнасці карыснай нагрузкі.

Дадатковая інтэграцыя з Fabric

Дадаць пастаўшчыка пад кропкай уводу raknetify:packet_channels у fabric.mod.json вашага моду. Пастаўшчык рэалізуе Consumer<BiConsumer<String, String>> з выкарыстаннем тыпаў JDK. Ён атрымлівае рэгістратар, які прымае асабісты ідэнтыфікатар карыснай нагрузкі і групу парадку.

Аб' яднаць гэты запіс з існуючымі метаданнямі, замяніўшы назву класа на поўную назву вашага пастаўшчыка:

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

Захаваць астатнюю частку вашага fabric.mod.json, уключаючы яго існуючыя кропкі ўводу. Гэта частка файла метададзеных.

Напрыклад, пашырэнне руху сутнасці можа рэгістраваць example:entity_path з entity група. Дакументацыя па PacketOrdering API уключае рэалізацыю пастаўшчыка.

Fabric пакідае гэтую кропку ўваходу не выкліканай, калі Raknetify2 адсутнічае. Пастаўшчыкі павінны абвясціць ідэнтыфікатары і групы падчас ініцыялізацыі, не спадзяючыся на іншы мод, які скончыў сваю ініцыялізацыю.

Рэгістрацыя

Моды Forge і NeoForge, серверы і проксі- ўтулкі могуць выклікаць PacketOrdering.register(identifier, group) падчас ініцыялізацыі, калі даступны Raknetify2. Клас - com.ishland.raknetify.api.PacketOrdering. Рэгіструйцеся перад прыняццем злучэнняў прайгравальніка і пазбягайце загрузкі факультатыўнага інтэграцыйнага кода класаў Raknetify2, калі залежнасць адсутнічае.

Абвяшчэнні прымяняюцца да новых злучэнняў. Існуючыя злучэння захоўваюць правілы, якія яны атрымалі пры ўсталёўцы. Паўтарэнне ідэнтычнага абвяшчэння дазволена. Канфліктуючыя групы для аднаго і таго ж ідэнтыфікатара адхіляюцца.

Ідэнтыфікатары карыснай нагрузкі павінны выкарыстоўваць правільную асабістую прастору імёнаў. прастора імёнаў minecraft зарэзервавана. Абмежаванне па канцавых кропках - гэта абвяшчэнні 128, уключаючы ўбудаваныя правілы і рэгістрацыі з іншых модаў. Ідэнтыфікатар можа ўтрымліваць да 255 ASCII сімвалаў, выкарыстоўваючы сінтаксіс ідэнтыфікатараў прасторы імёнаў API.

Абнаўленне абвяшчэнняў абмену RakNet падчас усталёўкі злучэння. Сервер або проксі можа выкарыстоўваць абвяшчэнне партнёра, калі ён не мае мясцовага правіла для гэтай карыснай нагрузкі. Месцавыя правілы маюць перавагу, і абвяшчэнні партнёра застаюцца ў межах гэтага злучэння.

Проксі UDP

Гэта ўказана ў праводзінні UDP і пратакола ПРАКСЫ для UDP-рэлеяў і перададзеных адрасоў кліентаў.

Для наладзіння проксі Minecraft, глядзіце Velocity and BungeeCord.

English (US)

Clone this wiki locally