Repository navigation
Wiki hal ua
- Головна
- Встановленє
- Velocity а BungeeCord
- Настави сїткового фільтра і ровтера
- Сумістність
- Режим з єдиним порєдком
- Гавтоматичне перенесенє
- Пересиланє UDP і протоколь PROXY
- Simple Voice Chat
- Як шукати хиби
- Злука з модами
- Проксї UDP
Сїткове полученє через RakNet для клїєнтїв і серверів Minecraft.
| 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 |
-
Бавити сє з колєґами
-
Додати сервер
-
Гадрес сервера
Гадрес сервера RakNet · UDP raknet;play.example.com:25565TCP play.example.com:25565 -
Готово
-
Прилучити сє
| F3 | |
|---|---|
| RakNet · UDP | Активний · MTU 1400 |
| TCP | Неактивний |
- Клїєнт · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
- 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 |
Сервер / Velocity / BungeeCord
| JSON | |
|---|---|
| ① ② ③ | {"mode":"ordered"} |
| ① ∥ ② ∥ ③ | {"mode":"multichannel"} |
| Сервер | 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
| Гадрес сервера | 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"]}-
Сервер A · Fabric / Forge / NeoForge ·
config/raknetify2-transfers.json{"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]} -
Сервер B ·
play.example.com·server.properties→accepts-transfers=true -
Сервер A ·
/transfer play.example.com 25565 Alex→ Клїєнт (Alex) → RakNet ·play.example.com:25570
| Minecraft | |
|---|---|
ui |
Настави |
entity |
Шкілєт |
world_interaction |
Кишенї |
effects |
Дрібки |
chunk |
Бльоки |
- Fabric ·
compatibility.json·gameVersions/runtimes/depends - Forge / NeoForge / Spigot / Paper · GitHub Releases
З Raknetify2 бавцї Minecraft злучают сє через RakNet по UDP. Пудевка йдут кількома каналами, а кождий канал пильнує свого порєдку. Як пудевко на єднім каналі згубит сє, решта каналів годна далї висилати дані. Завдяки тому бавка годна озивати сє на ваші дїї навіть тогди, як згублені дані йдут наново альбо як ладуют сє чанки.
Raknetify2 відгалузив сє від Raknetify, котрого зробив ishland, і тепер має своїх впорєдників. Ту додано новіщі верзиї Minecraft, доглєдає сє транспорт сїтки, злученє з ріжними плятформами і проби сумістности.
- Глипнїт сумістність Minecraft і модів.
- Вибері́т файль та встановіт го.
- Прилучіт сє за гадресом на взір
raknet;play.example.com.
- Velocity а BungeeCord
- Настави сїткового фільтра і ровтера
- Гавтоматичне перенесенє
- Пересиланє UDP і протоколь PROXY
- Єден UDP-порт на спілку з Simple Voice Chat
- Як шукати та зьвідомлєти хиби
Ті, хто пише моди, годні через інтерфейс порєдку пуделок вказати, котрі власні дані мают йти перед пудевками 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 запері́т клієнт альбо спинїт сервер. З тої самої установки забері́т первісний JAR Raknetify і всї давнїщі JAR Raknetify2, а аж потому доложіт новий файль.
На клієнтї беріт теки тої копії Minecraft альбо того збору модів, що го запускаєте. Для сервера ци проксї беріт теки власне тої установки. Як ладувач ше не зробив потрібної теки, зробіт ї самі.
- Встановіт клієнтский мод до свого ладувачє.
- На сервері встановіт відповідний мод, альбо, як сервер сумістний, втичку Spigot/Paper.
- В наставах сїткового фільтра і ровтера глипнїт, як позволити UDP-злученє до сервера.
- Запустїт клієнт і сервер наново.
- Додайте гадрес сервера, приміром
raknet;play.example.comальбоraknet;play.example.com:25565.
Гадрес без префікса raknet; вживає TCP.
Самого мода на клієнтї замало, аби чужий сервер принимав RakNet. Ґосподар сервера має виставити точку приступа RakNet. Бавцєви, що йде на чужий сервер, звичайно не тре пересилати вхідні порти на своїм ровтері.
Встановіт відповідну втичку на проксї, а мод на клієнтї. В роздїлї Velocity а BungeeCord описані настави слуханє, пересиланє до серверів бавки, обмеженє приступа і гадрес для бавцїв.
Для прємого сервера 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 бере той самий льокальний гадрес, що TCP-слухач Minecraft. Як задане число неважне альбо UDP-порт вже занєтий, RakNet не запустить сє. Глипнїт у запис запуска, на якім гадресї і портї слухає UDP. Аби вернути число порту TCP, забері́т арґумент і запустїт сервер наново.
Ровтер альбо UDP-проксї теж годен виставити єнчий публічний UDP-порт і відсилати з него до теперішного слухачє. Арґументи Java сервера при тім мінєти не тре.
В GitHub Actions втворіт успішне виконанє main і стягнїт архів Artifacts. До стягненє таких файлів GitHub потребує воблїківки. Потрібний JAR в архіві найдете по таблиці встановленє вгорі.
Velocity а BungeeCord стоєт межи бавцєми і серверами бавки Minecraft. Встановіт Raknetify2 на проксї і кождому клієнтови, що має прилучити сє по RakNet.
Клієнт Raknetify2 --UDP--> Velocity альбо BungeeCord --TCP--> сервер бавки
Для такої дороги злученє серверам бавки Raknetify2 не потрібний. Їм далї потрібні моди, втички і спосіб пересиланє, котрих потребує ваша сїтка. Raknetify2 не перекладає межи верзиями Minecraft і не мінє перевірки воблїківок на проксї.
- Провірте, ци звичайне злученє TCP крізь проксї вже дїлає, в тім числї перевірка воблїківки і перехід межи серверами бавки.
- Спинїт проксї і стягнїт відповідну втичку з GitHub Releases.
- Вложіт
raknetify2-velocity-*-all.jarальбоraknetify2-bungee-*-all.jarдо текиpluginsпроксї. Забері́т з тої теки давнїщі втички Raknetify ци Raknetify2. - Встановіт відповідний клієнтский мод Raknetify2 по пораднику встановленє.
- Провірте подані долї настави слуханє, запустїт проксї наново і глипнїт у запис, ци нема хиб слухачє RakNet.
- Дозвольте прилюдний UDP до проксї і обмежте приступ до бавних портів серверів, як описано в наставах сїткового фільтра і ровтера.
На клієнтї і проксї вживайте сумістних видань Raknetify2. Заки змішаєте виданя, глипнїт Сумістність.
Настава bind у velocity.toml вибирає гадрес і TCP-порт, де Velocity слухає Minecraft. Raknetify2 звичайно бере те саме число порту для UDP. В [servers] записані сервери бавки. Там мают лишити сє їх TCP-гадреси. Глипнїт опис настав Velocity.
Аби слухати на осібнім UDP-портї, в наказї запуска Velocity додайте сей арґумент JVM перед -jar:
-Draknetify.velocity.portOverride=25570
Замість 25570 впишіт свій порт. То мінє UDP-порт RakNet і лишає TCP-порт Velocity та гадреси серверів бавки. По змінї арґумента запустїт Velocity наново.
Наставте пересиланє відомостий за бавцїв і у Velocity, і на серверах бавки. Де серверна проґрама позволяє, беріт новий спосіб пересиланє і тримайте його тайний ключ при собі. Глипнїт інструкцию до свого сервера в пораднику пересиланє відомостий Velocity. Сїткові обмеженя на серверах бавки лишіть в силї.
В config.yml BungeeCord величина host у кождім записї listeners подає гадрес слуханє Minecraft і TCP-порт. Raknetify2 звичайно додає UDP з тим самим числом порту. У записах servers стоєт TCP-гадреси серверів бавки. Настави описує порадник BungeeCord.
Аби мати осібний UDP-порт, у наказ запуска BungeeCord перед -jar вложіт сей арґумент JVM:
-Draknetify.bungee.portOverride=25570
Настава дїлає на цїлий процес проксї. Як маєте кілька слухачів Minecraft, глипнїт дїйсні точки RakNet у записї запуска, заки додасте правила фільтра. По змінї арґумента запустїт BungeeCord наново.
Збережіт перевірку воблїківок на проксї. Для серверів Spigot порадник BungeeCord за пересиланє IP злучає ip_forward: true на проксї з settings.bungeecord: true на сервері. Саме пересиланє не перепиняє прємого входу на сервер бавки. Обмежте приступ по наставах сїткового фільтра.
Обидві настави проксї приймают порти від 1 до 65534. Неважну величину проксї мине, тож у записї запуска провірте, котрий UDP-порт дїйсно занєтий. Аби вернути число порту слухачє Minecraft, забері́т арґумент і запустїт проксї наново.
Бавцї вписуют публічне назвиско проксї і його UDP-порт, приміром raknet;play.example.com:25570. Як ровтер мінє порти, в гадресї клієнта подайте публічний UDP-порт. Без префікса raknet; клієнт і далї йде до TCP-слухачє проксї.
Тримайте Query, Geyser і єнчі UDP-служби кождий на осібнім UDP-портї. Єнчий TCP-порт не розв'єже сварки за UDP-сокет.
На Velocity і BungeeCord Simple Voice Chat вживає своєї втички проксї і свого UDP-порту. До такого установленє глипнїт поради Voice Chat до проксї.
Як перед проксї Minecraft стоїт осібний пересилач UDP і шле наголовки PROXY protocol v2, наставте Raknetify2 по пораднику за пересиланє UDP і протоколь PROXY. Самому Velocity ци BungeeCord тої настави не тре.
Візьміт клієнт Raknetify2 з-поза своєї льокальної сїтки. Прилучіт сє крізь проксї, перейдіт межи серверами бавки і провірте, ци бавець лишає сє той самий і має належні позволи.
- Як TCP крізь проксї дїлає, а в RakNet скінчив сє чєс, провірте UDP-слухач проксї, публічний порт, дороги IPv4 й IPv6 і правила сїткового фільтра.
- Як оба способи злученє падут, коли проксї йде до сервера бавки, провірте TCP-гадрес того сервера, правила приступа і настави пересиланє відомостий за бавцїв.
- Як проксї звіщає за занєтий UDP-порт, глипнїт, ци на нїм не сидит Query, Geyser, голосовий проксї ци єнчий процес.
До зьвідомленє додайте записи проксї і сервера бавки з тої самої проби злучити сє. В пораднику за хиби подано, котрі верзиї тре вказати.
Сей порадник для тих, хто тримає сервер. До сервера ци проксї, що принимає злученя RakNet, мусит бути прохід по UDP. Звичайна настава бере те саме число порту, що TCP-слухач Minecraft.
На тій самій льокальній сїтцї бавцї берут льокальний гадрес сервера. На його машинї дозвольте UDP у сїтковім фільтрі. Пересиланє портів на ровтері потрібне, як трафік з інтернету мусит перейти через його IPv4 NAT.
Шлїт публічний UDP на машину, де ходит Minecraft-сервер з Raknetify2. Порт цїли то UDP-слухач RakNet на тім сервері. Дозвольте порт у сїтковім фільтрі машинї. Збережіт теперішну дорогу TCP для звичайних злучень Minecraft.
Приміром, як Raknetify2 слухає UDP 25570, пересилайте публічний UDP-порт до льокального гадреса сервера на порт 25570. TCP-порт сервера годен лишити сє на 25565. Як вибрати єнчий UDP-порт, глипнїт у наставах слухачє прємого сервера.
Шлїт публічний UDP до машини з Velocity ци BungeeCord і втичков Raknetify2. Цїлев пересиланє має бути UDP-слухач RakNet на проксї. Збережіт давнїщу публічну дорогу TCP проксї для звичайних злучень Minecraft.
Проксї лучит сє зо серверами бавки по TCP. Як поставите Raknetify2 на проксї, виставлєти бавцєм UDP-порти бавки самих серверів не тре.
| Злученє | Який приступ позволити |
|---|---|
| Від бавцїв до проксї | Публічний UDP до слухачє RakNet і теперішний публічний слухач TCP |
| Від проксї до серверів бавки | TCP-порти Minecraft на серверах бавки, приступні йно з призначених машин проксї |
| Від бавцїв просто до бавних портів серверів | Тримайте заперетими, також по IPv6 |
Як проксї і сервери бавки ходєт просто на видїленій машинї, котрові ви ґаздуєте, сервери годні слухати на гадресах зворотної петлї. Наставте проксї, аби лучив сє до них там. Як то осібні машини, фільтром альбо відгородженою приватною сїтков дозвольте TCP до серверів йно машинам проксї. Для контейнерів та готового гостинґу тре рівнозначних обмежень після їх будови сїтки. Глипнїт поради Velocity за безпеку серверів бавки і порадник BungeeCord за сїтковий фільтр.
Пересиланє відомостий про бавцїв і сїтковий фільтр дїлают спільно. Хто зайде просто на сервер бавки, годен обминути перевірки входу проксї. За встановленє втичок, пересиланє і зміну UDP-порту глипнїт Velocity а BungeeCord.
Як ровтер переводит єден порт на єнчий, публічний порт годен ріжнити сє від порту слухачє:
| Настава | Котрий порт подати |
|---|---|
| Гадрес сервера в клієнтї | Публічний UDP-порт |
| Зовнїшний порт правила пересиланє на ровтері | Публічний UDP-порт |
| Внутрішний порт правила пересиланє на ровтері | UDP-порт слухачє RakNet |
| Льокальний порт у фільтрі машини | UDP-порт слухачє RakNet |
Як тримаєте сервер за ровтером IPv4:
- Найдїт льокальний гадрес IPv4 машини, що принимає злученя RakNet. Закріпіт його в DHCP альбо дайте відповідний сталий гадрес, аби правило пересиланє і далї вело до тої самої машини.
- Додайте правило пересиланє UDP для публічного порту, котрий подадут бавцї.
- Як цїль правила впишіт льокальний гадрес тої машини і UDP-порт слухачє RakNet.
- Дозвольте вхідний UDP до порту слухачє в сїтковім фільтрі машини.
Приміром, сервер слухає UDP-порт 25565. Тодї правило годне мати публічний порт 25565, цїльовий гадрес 192.168.1.100 і цїльовий порт 25565. Замість гадреса з прикладу впишіт дїйсний льокальний гадрес свого сервера.
Лишіть теперішне правило TCP для звичайних злучень Minecraft. Саме правило пересиланє TCP не носит UDP.
Глипнїт, ци єнчий ровтер альбо ваш достачальник інтернету не робит NAT ше перед вашим ровтером. Як маєте два свої ровтери, пересиланє тре наставити на обох. Як достачальник робит спільний NAT (CGNAT), спитайте го за публічний гадрес IPv4, альбо візьміт гостинґ чи тунель, що пускає вхідний UDP. Правило вашого ровтера не наставит NAT у достачальника. В порадах TP-Link за пересиланє портів описано, чого потрібен публічний WAN-гадрес.
Дозвольте вибраний 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-порт і правила фільтра по пораднику за хиби.
Провіряйте сумістність того виданє, що стягаєте. На галузи розробки вже годна бути поміч для верзий, котрої ше нема в жаднім виданю.
Для Fabric стягнїт compatibility.json з того самого виданє, що і JAR. Найдїт свою верзию Minecraft у gameVersions, а відтак глипнїт вимоги depends у відповіднім записї runtimes. Сей JSON є для довідки. До теки mods го класти не тре.
Для Forge, NeoForge і Spigot/Paper глипнїт вимоги до верзий в самім файли і на сторонї звантаженє. То, що єден ладувач дїлає, ше не свідчит за єнчого.
Raknetify2 подає найнизшу потрібну верзию Java. Minecraft альбо ладувач годен потребувати новіщої. Вибері́т таку, що сповняє всї три вимоги.
По змозї беріт те саме виданє Raknetify2 на клієнтї і на сервері ци проксї, що принимає його злученє. Перед вимішанєм видань глипнїт звістки до них. Для шифрованого злученє RakNet обоє мусять знати протоколь шифрованє з перевірков справжности. Первісний Raknetify та збірки Raknetify2, давнїщі від того протоколя, не годні так злучити сє з поновленою стороною.
Raknetify2 носит той протоколь бавки, котрого вживає сам Minecraft. Аби злучити ріжні верзиї Minecraft, тре мати сумістний перекладач протоколів.
Процес збиранє провіряє сумістність з Polymer, Krypton, PacketFixer і Fast IP Ping. Ті проби стосуют сє йно верзий і сполук, вибраних у тім процесї. Як дослїджуєте певну сполуку, глипнїт вислїди збиранє до свого виданє.
Як хиба стає сє в більшім зборі модів, глипнїт порадник за хиби. До зьвідомленє допишіт повні верзиї модів.
Звичайно канали пуделок у Raknetify2 независимі. Як єден чекає на згублені дані, єнчі йдут далї. В режимі з єдиним порєдком усї пудевка Minecraft ідут по єднім каналі. Коли пудевко пропаде, всї пізнїщі в тім самім напрямі ждут, аж єго знов вішлют. Деякі охорони від чітів потребуют власне такого порєдку. На чєс чеканє затримає сє і єнчий трафік бавки.
-
Встановіт збірку Raknetify2 з тим режимом на сервері ци проксї, що принимає RakNet, і на кождім клієнтї RakNet.
-
В робочій теці того сервера ци проксї зробіт файль
config/raknetify2-compatibility.json. Як текиconfigше нема, зробіт ї. -
Впишіт таке:
{"mode": "ordered"} -
Запустїт сервер альбо проксї наново.
Клієнти самі берут наставу зі сервера. Бавцєм не тре робити файла настав анї мінєти свого гадреса сервера RakNet.
Всї пудевка Minecraft мают по єдному надїйному впорєдкованому каналу в кождий бік, в тім числї межі пачок пуделок і переходи межи сьвітами.
Як бавцї лучат сє через Velocity ци BungeeCord, наставте режим з єдиним порєдком на тім проксї, навіт як охорона від чітів ходит на сервері бавки.
Настава лишає сє і при переходї з єдного сервера на єнчий. У тім режимі проксї пересилає питаня сервера за живе злученє правдивому клієнтови, замість самому на них відповідати.
При першім злученю 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 Edition 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 провіряє, ци клієнт оголошує, що знає гавтоматичне перенесенє. Як клієнт го знає і цїль пасує до запису, Raknetify2 вибирає наставлений UDP-порт. Єнчі клієнти та цїли без запису лишают первісний гадрес перенесенє.
Порівнянє бере назвиско госта і TCP-порт з питанє за перенесенє. Великі букви, кінцева цєтка DNS та рівноцінні форми IPv6 при тім зводят сє до єдного запису. DNS не питає сє: на два ріжні назвиска, що ведут до того самого гадреса, тре два записи. Записів з довільною замінов знаків нема.
Як цїль вживає Minecraft-ового server.properties, впишіт accepts-transfers=true і запустїт ї наново. Проксї на цїли годен мати свою наставу перенесенє. Звичайна настава Minecraft відкидає вхідні перенесеня, навіт як прєме злученє дїлає.
На цїли вже мают бути наставлені слухач RakNet, пересиланє публічного UDP і фільтр машини. Файль перенесень сервера, що висилає, вибирає йно гадрес, котрий дістане клієнт.
Як назвиско цїли оголошує оба роди гадресів, провірте і IPv4, і IPv6. Заки шукати хиби гавтоматичного перенесенє, спробуйте злучити сє з цїлев просто по RakNet.
Лишіть перевірки входу та приступа на цїли. Ся настава не надає бавцєм позволів і не заступає перевірки воблїківки на сервері.
Коли бракує поля, є незнане поле, неважний порт ци та сама цїль двічі, при запуску буде хиба настав. Найдїт ї у записї сервера, поправте JSON і запустїт наново.
Аби вимкнути гавтоматичний вибір, забері́т файль настав альбо впишіт {"destinations": []} і запустїт сервер, що висилає, наново. Його питаня за перенесенє лишат первісні гадреси.
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 protocol v2 для UDP. Raknetify2 приймає переслані гадреси клієнтів йно від виписаних джерел. Поки ся настава вімкнена, прємі злученя RakNet без таких наголовків відкидают сє. TCP-слухач лишає свої настави.
Кождому з виписаних проксї довірено подавати гадреси клієнтів. Обмежте UDP-порт сервера в його сїтковім фільтрі, аби приступ мав йно призначений проксї. Подавайте якнайвузші довірені обсяги, на котрі позволяє ваша сїтка.
Файль має містити йно trustedProxies з принайменше єдним записом. Порожний масив є хибов. При неважнім файли слухач RakNet не запустить сє.
Аби вернути прєме UDP-злученє, забері́т файль і запустїт слухач наново. Разом з тим поправте пересиланє нагорі та правила фільтра під нову дорогу.
Як по вімкненю злученя сє рвут, провірте дїйсний гадрес проксї, котрий видит сервер бавки, записаний довірений обсяг і те, ци проксї шле наголовки UDP PROXY protocol v2.
За встановленє проксї Minecraft і настави серверів бавки глипнїт Velocity а BungeeCord.
Raknetify2 годен дїлити свій серверний UDP-слухач з Simple Voice Chat на Fabric, Forge, NeoForge, Spigot і Paper.
Встановіт Simple Voice Chat на сервері і кождому клієнтови, що хоче голосової бесїди. Решту його настав найдете в пораднику Simple Voice Chat до сервера.
Файль Raknetify2 дайте в головну серверну теку config, також на Spigot/Paper. Власний файль Simple Voice Chat лишає сє в місци, поданім долї для вашої плятформи.
-
В теці сервера зробіт
config/raknetify2-voicechat.jsonз таким вмістом:{"enabled": true} -
Впишіт
port=-1в серверні настави Simple Voice Chat. На серверах з модами то єconfig/voicechat/voicechat-server.properties, на Spigot/Paper –plugins/voicechat/voicechat-server.properties. -
Лишіть
bind_addressпорожним, як пасує йно єден слухач RakNet. Як на тім UDP-портї є кілька слухачів, впишіт льокальний гадрес того, котрого хочете дїлити. -
Запустїт сервер наново і виконайте
/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 злученю бавки.
Лишіть Query і Geyser на осібних UDP-портах. Спільний сокет призначений йно для Simple Voice Chat.
На Velocity і BungeeCord голосовий проксї не дїлит сокета через ту можність. Глипнїт порадник Simple Voice Chat до проксї і дайте голосовому проксї осібний UDP-порт. З офіцияльною втичков голосового проксї публічне voice_host впишіт в голосові настави самого проксї. Втичка не бере voice_host з серверів бавки.
Для звичайного 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-порт, поправте правила фільтра ци пересиланє і запустїт сервер наново.
Провіряйте по порядку:
- На клієнтї є відповідний мод Raknetify2 до його ладувачє і верзиї Minecraft.
- На сервері ци проксї, що принимає злученє, Raknetify2 стоїт і запустив сє без хиби слухачє.
- Гадрес зачинає сє з
raknet;і має публічний UDP-порт. - Достачальник гостинґу, ровтер і сїтковий фільтр машини позволєют UDP на тім портї.
- IPv4- і IPv6-гадреси під назвиском госта ведут на потрібну машину і мают справні правила фільтра.
Успішне TCP-злученє потверджує йно дорогу TCP. Провірте пересиланє UDP і приступ IPv6 по наставах сїткового фільтра і ровтера. Як вімкнений протоколь PROXY, клієнт мусит дійти до слухачє через записаний довірений проксї.
Глипнїт, ци єнчий процес не вживає UDP-порту. Query, Geyser і єнчі UDP-служби потребуют власних портів. Для Simple Voice Chat є спільний порт.
Єнчий льокальний UDP-порт виберете в наставах слухачє прємого сервера альбо наставах Velocity і BungeeCord. Провірте, котрої верзиї потребує настава Spigot/Paper. Зміна йно публічного порту на ровтері не увільняє занєтий льокальний сокет.
Злучіт сє просто з цїлев по гадресу raknet;. Як не вдасть сє, зразу поправте слухач цїли ци дорогу сїтки.
Як прємі злученя дїлают, провірте, ци цїль принимає вхідні перенесеня. На сервері Minecraft з server.properties тре accepts-transfers=true. Прємий вхід тої настави не провіряє.
Відтак порівнайте назвиско госта і TCP-порт перенесенє з config/raknetify2-transfers.json на сервері, що висилає. Провірте, ци файль наладовано по перезапуску і ци клієнт знає гавтоматичні перенесеня RakNet. Глипнїт Гавтоматичне перенесенє.
Провірте верзиї Raknetify2 на обох кінцях злученє. Як виданє мінє шифрований протоколь, поновіт разом клієнт і сервер альбо проксї. Поки шукаєте хибу, лишіть серверні настави перевірки воблїківок.
Занотуйте, при котрій дїї є хиба, приміром при втвореню інвентаря, прийманю ресурсного пудевка, змінї сьвіта ци поєві створи. По змозї порівнайте ту саму дїю через TCP і RakNet на осібній пробній установці.
Деякі власні дані мода залежать від порєдку звичайних пуделок Minecraft. Автори модів годні заявити такі залежности через інтерфейс порєдку пуделок.
Втворіт запис у списку хиб Raknetify2 і додайте:
- Верзиї Minecraft, Java, ладувачє модів і Raknetify2 на обох боках.
- Верзиї проґрам сервера і проксї, в тім числї проксї, що пересилає UDP.
- Єнчі встановлені моди та їх верзиї.
- Що тре зробити, аби хиба повторила сє, і що мало сє стати.
- Ци тії самі дїї вдают сє через TCP.
- Дотичні витинки з записів клієнта, сервера та проксї з тої самої проби.
Заки викладати записи, забері́т жетони приступа, паролї та єнчі приватні відомости. Лишіть звістки за винятки і слїди стосу викликів, котрі потрібні до розбору хиби.
Мод годен подати Raknetify2, котрі пудевка Minecraft мают іти в однім порєдку з його власними даними. Се потрібне, як обробка даних потребує створи, чанка, інвентаря ци єнчого стану з попередних пуделок.
| Ґрупа | Дотичний трафік |
|---|---|
ui |
Меню і дїї, независимі від сьвіта |
entity |
Поєва, забранє і рух створ |
world_interaction |
Інвентарі та єнчі дїї залежні від сьвіта |
effects |
Звуки і частинки |
chunk |
Поновленє терену, блоків і сьвітла |
Кожда ґрупа зберігає надїйне дорученє в порєдку свого каналу. Пудевка з ріжних ґруп годні прийти в єнчій черзї єдно від другого. Вибері́т ґрупу, від котрої залежать дані.
В fabric.mod.json свого мода додайте постачника в точці входу raknetify:packet_channels. Постачник сповняє Consumer<BiConsumer<String, String>> з типів JDK. Він дістає реєстратор, що принимає означник власних даних і ґрупу порєдку.
Додайте запис до своїх теперішних метаданих. Замість назвиска кляси впишіт повне назвиско кляси свого постачника з пакунком:
{
"entrypoints": {
"raknetify:packet_channels": [
"com.example.mod.OrderingProvider"
]
}
}Лишіть решту свого fabric.mod.json, у тім числї наявні точки входу. Приклад показує йно частину файла метаданих.
Приміром, додаток до руху створ годен записати example:entity_path до ґрупи entity. В описї API PacketOrdering є код постачника.
Як Raknetify2 нема, Fabric не викликає тої точки входу. Постачники мают заявити означники та ґрупи при запуску, не покладаючи сє на то, жи єнчий мод вже скінчив свій запуск.
Як Raknetify2 є, моди Forge і NeoForge, а також втички до сервера ци проксї годні при запуску викликати PacketOrdering.register(identifier, group). Кляса зветь сє com.ishland.raknetify.api.PacketOrdering. Зареєструйте правила перед прийманєм злучень бавцїв. Як залежности нема, код необов'язкової злуки не має ладувати кляс Raknetify2.
Заяви дїлают для нових злучень. Давнїщі злученя лишают правила, котрі дістали при відкритю. Ту саму заяву вільно повторити. Ріжні ґрупи для єдного означника відкидают сє.
Означник власних даних має вживати важного власного простору назв. Простір minecraft застережений. На цїлу точку злученя можна подати до 128 заяв, в тім числї вбудовані правила і записи єнчих модів. Означник годен мати до 255 знаків ASCII за приписом API для назв з простором назв.
Поновлені сторони RakNet вимінюют заяви при відкритю злученє. Як сервер чи проксї не має свого правила до певних даних, годен взєти заяву другої сторони. Льокальне правило має першенство, а заяви другої сторони дїлают йно в тім злученю.
За пересилачі UDP і переслані гадреси клієнтів глипнїт Пересиланє UDP і протоколь PROXY.
Настави проксї Minecraft знайдете в Velocity а BungeeCord.