Skip to content

Wiki id id

pjscruggs edited this page Nov 11, 2026 · 1 revision

Raknetify2 · Bahasa Indonesia (Indonesia)

Bahasa

Multipemain

Koneksi jaringan melalui RakNet untuk klien dan peladen Minecraft.

Unduh · GitHub

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

Tambah Server

  1. Multipemain

  2. Tambah Server

  3. Alamat Server

    Alamat Server
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. Selesai

  5. Gabung

F3 · Raknetify2

F3
RakNet · UDP Aktif · MTU 1400
TCP Tidak aktif

Velocity / BungeeCord

  1. Klien · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. Velocity / BungeeCord → TCP → Peladen
Nomor Porta · 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

Waktu habis

Alamat Server UDP
raknet;play.example.com:25580 play.example.com:25580 → NAT → 192.0.2.10:25570
Peladen · 192.0.2.10 25570/udp

config/raknetify2-compatibility.json

Peladen / Velocity / BungeeCord

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

Simple Voice Chat

Peladen 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

Alamat Server trustedProxies RakNet
192.0.2.10 · PROXY v2 / UDP ["192.0.2.10"] ✓
192.0.2.11 · PROXY v2 / UDP ["192.0.2.10"] ✗
Klien → RakNet / UDP ["192.0.2.10"] ✗

config/raknetify2-proxy-protocol.json

{"trustedProxies":["192.0.2.10"]}

Minecraft ≥ 1.20.5 · /transfer

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

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

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

PacketOrdering

Minecraft
ui Opsi
entity Bengkarak
world_interaction Persediaan
effects Partikel
chunk Balok

PacketOrdering.java

Versi tidak kompatibel!

Laporkan Kekutu

Beranda

Raknetify2

Raknetify2 menggunakan RakNet melalui UDP untuk mode multiplayer Minecraft. Perangkat ini memisahkan lalu lintas data ke dalam kanal-kanal tertentu, sehingga kehilangan paket pada satu kanal tidak akan mengganggu lalu lintas data lainnya. Hal ini memungkinkan interaksi tetap responsif selama koneksi sedang memperbaiki data yang hilang atau mentransfer chunk.

Raknetify2 merupakan versi fork yang dikelola secara independen dari Raknetify, yang awalnya dikembangkan oleh ishland. Versi fork ini menambahkan dukungan untuk versi Minecraft yang lebih baru serta mempertahankan transportasi, integrasi platform, dan uji kompatibilitas.

Mulai sekarang

  1. Periksa kompatibilitas Minecraft dan mod.
  2. Pilih metode unduhan dan instalkannya.
  3. Terhubung dengan alamat seperti raknet;play.example.com.

Petunjuk Server

Para pembuat mod dapat menggunakan interface pengaturan paket untuk mendeklarasikan ketergantungan antara payload khusus dan lalu lintas Minecraft.

Tautan Proyek

Raknetify2 menggunakan lisensi MIT dan tetap mempertahankan pemberitahuan hak cipta asli. Implementasi jaringannya dibangun atas dasar Raknetify dan netty-raknet.

Instalasi

Unduh versi baru dari GitHub Releases. Periksa versi Minecraft dan persyaratan loader untuk versi tersebut sebelum menginstalnya.

Di mana Anda akan menginstalnya Berkas Folder
Klien atau server Fabric raknetify2-fabric-*.jar mods
Forge client atau server raknetify2-forge-*.jar mods
Klien atau server NeoForge raknetify2-neoforge-*.jar mods
Server Spigot atau Paper raknetify2-spigot-*.jar plugins
Velocity proxy raknetify2-velocity-*.jar plugins
BungeeCord proxy raknetify2-bungee-*.jar plugins

Tutup klien atau hentikan server sebelum mengganti file JARnya. Hapus file Raknetify JAR asli dan file Raknetify2 JAR yang lebih tua dari instalasi yang sama sebelum menambahkan file baru.

Folder klien terkait dengan instance Minecraft atau modpack yang Anda gunakan. Folder server dan proxy terkait dengan instalasi server atau proxy tersebut. Buat folder yang sesuai jika loader Anda belum membuatnya.

Koneksi langsung ke server

  1. Instal mod klien untuk loader Anda.
  2. Instal mod server yang sesuai, atau plugin Spigot/Paper pada server yang kompatibel.
  3. Ikuti Konfigurasi Firewall dan router untuk mengizinkan koneksi UDP ke server.
  4. Restartkan klien dan server.
  5. Tambahkan alamat server seperti raknet;play.example.com atau raknet;play.example.com:25565.

Alamat yang tidak menggunakan prefiks raknet; menggunakan TCP.

Menginstal mod klien saja tidak akan menambahkan dukungan RakNet pada server jarak jauh. Operator server harus menyediakan endpoint RakNet. Pemain yang bergabung dengan server orang lain biasanya tidak memerlukan aturan alihkan paket masuk.

Velocity dan BungeeCord

Instal plugin proxy yang sesuai serta mod klien. Ikuti Velocity dan BungeeCord untuk pengaturan pendengar, alihkan layanan backend, pembatasan akses, dan alamat yang harus digunakan oleh pemain.

Port pendengar UDP yang terpisah

Untuk server Minecraft langsung, atur argumen Java yang sesuai di bawah ini. Operator proxy harus menggunakan pengaturan Velocity dan BungeeCord listener.

Platform Argumen Java Port yang diterima
Server Fabric, Forge, atau NeoForge -Draknetify.fabric.portOverride=25570 1 hingga 65534
Server Spigot atau Paper -Draknetify.spigot.portOverride=25570 1 hingga 65535

Forge dan NeoForge menggunakan kode pendengar yang sama, sehingga nama propertinya juga mengandung fabric. Gantilah 25570 dengan port UDP yang diinginkan.

Spigot / Paper ≥ 0.1.0-beta.1.431

Tambahkan argumen sebelum -jar dalam perintah Java, atau ke dalam field argumen JVM pada host Anda. Restart server dan izinkan UDP di port pendengar yang dipilih. Jika port publik juga adalah 25570, connect dengan raknet;play.example.com:25570. Jika router menerjemahkan port, gunakan port publiknya dalam alamat klien. Port TCP tetap pada nilai semula.

Pada Spigot/Paper, pendengar UDP mempertahankan alamat bind lokal dari pendengar TCP Minecraft. Port UDP yang tidak valid atau terisi akan mencegah RakNet berjalan. Periksa log startup untuk alamat dan port UDP yang terkait. Hapus argumen tersebut dan restart untuk kembali ke nomor port pendengar TCP.

Sebuah router atau proxy UDP juga dapat mengekspos port UDP publik yang berbeda dan mengirimkannya ke pendengar yang ada, tanpa mengubah argumen Java server.

Buildan pengembangan

Buka proses main yang berhasil di GitHub Actions dan unduh arsip Artifactsnya. GitHub memerlukan akun untuk mengunduh artefak workflow. Gunakan tabel instalasi di atas untuk memilih JAR dari arsip tersebut.

Velocity dan BungeeCord

Velocity dan BungeeCord berada di antara pemain dan server Minecraft backend. Instal Raknetify2 pada proxy dan pada setiap klien yang akan terhubung melalui RakNet.

Raknetify2 client --UDP--> Velocity atau BungeeCord --TCP--> server backend.

Server backend tidak memerlukan Raknetify2 untuk jalur koneksi ini. Mereka masih membutuhkan mod, plugin, dan dukungan forwarding yang diperlukan oleh jaringan Anda. Raknetify2 tidak menerjemahkan versi Minecraft atau mengubah autentikasi akun proxy.

Instal plugin proxy.

  1. Konfirmasi bahwa koneksi TCP biasa melalui proxy Anda berfungsi dengan baik, termasuk proses autentikasi dan pergantian server backend.
  2. Hentikan proxy dan unduh plugin yang sesuai dari GitHub Releases.
  3. Letakkan raknetify2-velocity-*-all.jar atau raknetify2-bungee-*-all.jar di folder plugins dari proxy. Hapus semua plugin Raknetify atau Raknetify2 yang lebih tua dari folder tersebut.
  4. Instal mod klien Raknetify2 yang sesuai menggunakan petunjuk instalasi.
  5. Periksa pengaturan pendengar di bawah ini, restart proxy, dan periksa lognya untuk menemukan kesalahan pada pendengar RakNet.
  6. Izinkan lalu lintas UDP publik ke proxy, dan batasi port permainan backend sebagaimana dijelaskan dalam Konfigurasi Firewall dan Router.

Gunakan versi Raknetify2 yang kompatibel pada klien dan proxy. Periksa Kompatibilitas sebelum mencampurkan versi yang berbeda.

Velocity

Setting bind di velocity.toml memilih alamat mendengarkan Minecraft dan port TCP milik Velocity. Raknetify2 biasanya menggunakan nomor port yang sama untuk UDP. Entri [servers] mengidentifikasi server backend. Entri tersebut harus ditujukan ke alamat TCP server backend. Lihat referensi konfigurasi Velocity di sini.

Untuk menggunakan port UDP yang terpisah, tambahkan argumen JVM ini sebelum -jar dalam perintah startup Velocity:

-Draknetify.velocity.portOverride=25570

Gantilah 25570 dengan port yang Anda pilih. Dengan demikian, port UDP RakNet akan berubah, namun port TCP dan alamat backend Velocity tetap akan tetap sama. Restart Velocity setelah mengubah argumen tersebut.

Konfigurasikan pengalihan peserta pada Velocity dan backend-nya. Gunakan mekanisme pengalihan modern ketika perangkat lunak backend mendukungnya, dan jaga pengalihan tersebut tetap rahasia. Ikuti instruksi khusus backend dalam buku panduan pengalihan informasi peserta di Velocity. Pertahankan pembatasan firewall backend sekaligus dengan pengalihan tersebut.

BungeeCord

Dalam config.yml milik BungeeCord, nilai host di bawah setiap entri listeners menunjukkan alamat dan port TCP yang digunakan oleh Minecraft. Raknetify2 biasanya menambahkan protokol UDP pada nomor port tersebut. Entri servers berisi alamat TCP backend. Pengaturan-pengaturan ini dijelaskan dalam panduan konfigurasi BungeeCord.

Untuk menggunakan port UDP yang terpisah, tambahkan argumen JVM ini sebelum -jar dalam perintah startup BungeeCord:

-Draknetify.bungee.portOverride=25570

Override tersebut merupakan bagian dari seluruh proses proxy. Untuk konfigurasi dengan beberapa listener Minecraft, periksa endpoint RakNet yang sebenarnya dalam log startup sebelum menambahkan aturan firewall. Restart BungeeCord setelah mengubah argumennya.

Lindungi autentikasi akun di proxy. Untuk backend Spigot, petunjuk alihkan IP dari BungeeCord menggabungkan ip_forward: true di proxy dengan settings.bungeecord: true di backend. Alihkan IP saja tidak akan mencegah seseorang terhubung langsung ke backend. Larang akses backend menggunakan instruksi firewall.

Pilih alamat yang digunakan oleh para pemain.

Kedua penggantian proxy menerima port mulai dari 1 hingga 65534. Nilai yang tidak valid akan diabaikan, jadi verifikasi port UDP yang digunakan dalam log startup. Hapus argumen tersebut dan restart untuk kembali ke nomor port pendengar Minecraft.

Pemain terhubung ke nama host publik dan port UDP proxy, misalnya raknet;play.example.com:25570. Ketika router menerjemahkan port, gunakan port UDP publiknya dalam alamat klien. Alamat yang tidak memiliki prefiks raknet; tetap menggunakan pendengar TCP proxy.

Simpan Query, Geyser, dan layanan UDP lainnya di port UDP yang terpisah. Port TCP yang berbeda tidak akan menyelesaikan konflik socket UDP.

Chat Suara dan forwarding UDP tambahan

Simple Voice Chat menggunakan plugin proxy sendiri dan port UDP pada Velocity serta BungeeCord. Ikuti panduan proxy Voice Chat untuk pengaturannya.

Jika ada relay UDP terpisah yang berada di depan proxy Minecraft dan mengirimkan header protokol PROXY versi 2, konfigurasikan Raknetify2 menggunakan UDP forwarding dan protokol PROXY. Installasi Velocity atau BungeeCord saja tidak memerlukan konfigurasi tersebut.

Periksa koneksi

Uji dari luar jaringan lokal menggunakan klien Raknetify2. Bergabung melalui proxy, ganti antara server backend yang digunakan, dan pastikan bahwa identitas pemain serta izinnya tetap benar.

  • Jika TCP melalui proxy berfungsi tetapi RakNet mengalami timeout, periksa pendengar UDP proxy, port publik, rute IPv4 dan IPv6, serta aturan firewall.
  • Jika kedua transport gagal saat proxy berhasil terhubung ke backend, periksa alamat TCP backend, aturan akses, dan konfigurasi pemindaian pemainnya.
  • Jika proxy melaporkan bahwa port UDP sedang digunakan, periksa apakah ada proses Query, Geyser, proxy suara, atau proses lain yang terkait dengannya.

Untuk laporan, sertakan log proxy dan backend dari percobaan koneksi yang sama. Lihat Troubleshooting untuk informasi versi yang perlu disertakan.

Konfigurasi Firewall dan Router

Panduan ini ditujukan untuk operator server. Raknetify2 memerlukan rute UDP yang berfungsi ke server atau proxy yang menerima koneksi RakNet. Pengaturan default menggunakan nomor port yang sama dengan listener TCP Minecraft.

Bagi pemain yang berada di jaringan lokal yang sama, gunakan alamat lokal server dan izinkan UDP melewati firewall hostnya. Forwarding port router diperlukan ketika lalu lintas internet harus melewati NAT IPv4 router Anda.

Pilih tujuan dan port

Server langsung

Kirim lalu lintas UDP publik ke mesin yang menjalankan server Minecraft menggunakan Raknetify2. Port tujuan adalah listener UDP RakNet milik server tersebut. Beri izin pada port tersebut di firewall host mesin server. Pertahankan rute TCP yang ada untuk koneksi Minecraft biasa.

Misalnya, jika Raknetify2 mendengarkan pada UDP 25570, forward port UDP publik ke alamat lokal server pada port 25570. Port TCP server dapat tetap berada di 25565. Lihat setting pendengar server langsung untuk memilih port UDP yang berbeda.

Velocity atau BungeeCord

Kirim lalu lintas UDP publik ke mesin yang menjalankan Velocity atau BungeeCord menggunakan plugin proxy Raknetify2. Gunakan pendengar UDP RakNet dari proxy sebagai tujuan pengalihan. Pertahankan rute TCP publik yang sudah ada dari proxy untuk koneksi Minecraft biasa.

Proxynya terhubung ke server Minecraft backend melalui protokol TCP. Menambahkan Raknetify2 ke proksynya tidak memerlukan pembukaan port UDP untuk permainan bagi para pemain.

Koneksi Akses yang diizinkan
Pemain yang menggunakan proxy UDP publik ke pendengar RakNet, ditambah pendengar TCP publik yang sudah ada.
Proxy ke server backend Port TCP Minecraft backend, dapat diakses hanya dari host proxy yang ditentukan.
Pemain langsung menuju port permainan backend. Tetap diblokir, termasuk melalui IPv6.

Ketika proxy dan backend berjalan langsung di mesin khusus yang Anda kontrol, pendengar backend dapat menggunakan alamat loopback dengan proxy yang dikonfigurasi untuk mencapai mereka di sana. Di antara mesin-mesin yang berbeda, batasi akses TCP backend ke host proxy menggunakan firewall atau jaringan pribadi terisolasi. Kontainer dan host yang dikelola memerlukan pembatasan yang setara untuk tata letak jaringannya. Lihat Buku panduan keamanan backend Velocity dan Buku panduan firewall BungeeCord.

Pengaturan forwarding pemain dan pembatasan firewall bekerja sama. Akses langsung ke backend dapat mengabaikan proses verifikasi login pada proxy. Untuk instalasi plugin, pengaturan forwarding, dan penggantian port UDP, ikuti Velocity dan BungeeCord.

Nomor port publik dan lokal

Port publik dan port pendengar dapat berbeda ketika router menerjemahkan antara keduanya.

Menetapkan Port yang digunakan
Alamat klien dan server Port UDP publik
Aturan alihkan paket dari port eksternal router Port UDP publik
Aturan alur paket router pada port internalnya Port UDP pendengar RakNet
Port lokal firewall host Port UDP pendengar RakNet

Penerusan port IPv4

Untuk hosting di belakang router IPv4:

  1. Cari alamat IPv4 lokal dari mesin yang menerima koneksi RakNet. Gunakan reservasi DHCP atau alamat statis yang sesuai agar aturan forward terus menargetkan mesin tersebut.
  2. Tambahkan aturan alihkan UDP untuk port publik yang akan digunakan oleh pemain.
  3. Atur tujuan aturan tersebut ke alamat lokal mesin tersebut dan port UDP bagi pendengar RakNet.
  4. Izinkan transmisi UDP masuk di port pendengar pada firewall host.

Sebagai contoh, server yang mendengarkan pada port UDP 25565 dapat menggunakan aturan dengan port publik 25565, alamat tujuan 192.168.1.100, dan port tujuan 25565. Gantilah alamat contoh dengan alamat lokal server Anda yang sebenarnya.

Hati-hati dengan aturan TCP untuk koneksi biasa Minecraft. Aturan forward TCP saja tidak dapat mengirimkan UDP.

Ketika proses forwarding masih gagal

Periksa apakah ada router lain atau ISP Anda yang melakukan NAT sebelum lalu lintas mencapai router Anda. Dengan adanya dua router yang Anda kontrol, proses forwarding harus mencakup keduanya. Jika ISP Anda menggunakan NAT tipe carrier-grade, tanyakan apakah mereka dapat menyediakan alamat IPv4 publik atau menggunakan layanan hosting atau tunnel yang mendukung UDP inbound. Aturan forwarding router Anda tidak dapat mengkonfigurasi NAT dari ISP. Lihat petunjuk forward port TP-Link untuk persyaratan alamat WAN publik.

Aturan firewall IPv6

Izinkan port UDP yang terpilih melewati firewall IPv6 router dan firewall host. Targetkan alamat IPv6 dari mesin yang menerima koneksi RakNet.

Periksa apakah alamat IPv6 dari nama host tersebut menunjuk ke mesin tersebut. Jika alamat IPv6nya berubah, perbarui catatan DNS dan aturan firewall yang berkaitan dengan alamat tersebut.

Nama host yang mempublikasikan adres IPv4 dan IPv6 perlu memiliki rute yang berfungsi untuk setiap adres yang dipublikasikan. Periksa kedua set aturan tersebut ketika satu pemain dapat terhubung, sementara pemain lain tidak dapat.

Jika forwarding IPv4 mengubah nomor port, pastikan bahwa port yang dimasukkan oleh pemain juga dapat diterima oleh pendengar IPv6. Translasi port IPv4 tidak mengatur rute IPv6.

Penyedia layanan hosting dan terowongan

Penyedia atau tunnel harus mendukung protokol UDP pada endpoint publik yang Anda berikan kepada pemain. Periksa alokasi portnya, aturan firewall jaringan, serta firewall server itu sendiri.

Jika proxy UDP tambahan mengirimkan alamat klien menggunakan protokol PROXY versi 2, ikuti UDP forwarding dan PROXY protocol dan batasi akses ke listener UDP penerima hanya pada proxy yang dipercaya.

Periksa koneksi

Koneksikan dari luar jaringan lokal server menggunakan klien Raknetify2 yang sudah diperbarui, dengan alamat seperti raknet;play.example.com:25565. Gunakan port UDP publik dalam alamat tersebut.

Gunakan koneksi RakNet yang nyata untuk memverifikasi rute. Pemindaian UDP yang tidak mendapatkan respons dapat melaporkan hasil yang tidak pasti, karena layanan yang berfungsi mungkin akan menolak probe yang tidak dikenal. Dokumentasi pemindaian UDP dari Nmap menjelaskan perilaku ini.

Koneksi TCP yang berhasil hanya mengonfirmasi rute TCP. Jika RakNet mencapai batas waktu, periksa listener, tujuan forwarding, port UDP, dan aturan firewall menggunakan buku panduan penyelesaian masalah.

Kesesuaian

Periksa kompatibilitas dengan rilis tertentu yang Anda unduh. Cabang pengembangan dapat berisi dukungan yang belum muncul dalam rilis sebelumnya.

Versi Minecraft dan Java

Untuk Fabric, unduh compatibility.json dari versi yang sama dengan JAR-nya. Periksa versi Minecraft Anda di gameVersions, lalu periksa entri yang relevan di bawah runtimes untuk persyaratan dependsnya. File JSON ini merupakan dokumen referensi dan tidak perlu dimasukkan ke dalam folder mods.

Untuk Forge, NeoForge, dan Spigot/Paper, periksa persyaratan versi yang dinyatakan oleh artifact dan daftar unduhannya. Dukungan pada satu loader tidak berarti dukungan pada loader lainnya.

Persyaratan Java yang diumumkan oleh Raknetify2 merupakan persyaratan minimum. Minecraft atau loader mungkin memerlukan runtime yang lebih baru. Pilih versi Java yang memenuhi ketiga persyaratan tersebut.

Versi klien dan server

Gunakan versi Raknetify2 yang sama pada klien dan server, atau proxy yang menerima koneksi tersebut, jika memungkinkan. Periksa catatan rilis sebelum mencampurkan versi yang berbeda. Koneksi RakNet yang dienkripsi memerlukan dukungan untuk protokol enkripsi terverifikasi di kedua sisi. Versi Raknetify dan Raknetify2 yang dibuat sebelum protokol tersebut diperkenalkan tidak dapat membuat koneksi enkripsi ke peer yang telah diperbarui.

Raknetify2 membawa protokol permainan Minecraft yang sudah ada. Untuk menghubungkan versi Minecraft yang berbeda, diperlukan pengaturan terjemahan protokol yang kompatibel.

Mod lainnya

Proses kerja pembangunan mencakup pemeriksaan kompatibilitas menggunakan Polymer, Krypton, PacketFixer, dan Fast IP Ping. Pemeriksaan tersebut mencakup versi dan kombinasi yang dipilih oleh proses kerja tersebut. Periksa hasil pembangunan yang terkait dengan rilis tertentu saat menyelidiki kombinasi tertentu.

Untuk masalah yang terjadi dalam modpack yang lebih besar, ikuti buku panduan penyelesaian masalah. Sertakan versi mod yang lengkap dalam laporan Anda.

Mode Terurut

Mode Terurut

Biasanya, Raknetify2 membiarkan saluran paket independen tetap berjalan sementara satu saluran menunggu data yang hilang. Mode terurut memasukkan semua paket Minecraft ke dalam satu saluran, sehingga paket yang hilang akan menghambat paket-paket berikutnya di arah tersebut sampai paket tersebut dikirim ulang. Hal ini menjaga urutan yang diharapkan oleh beberapa perangkat lunak anti-cheat, tetapi mengorbankan kemampuan Raknetify2 untuk membiarkan lalu lintas permainan yang tidak terkait berjalan selama proses penungguan tersebut.

Menyaktikan mode terurut

  1. Instal versi Raknetify2 yang mendukung mode terurut pada server atau proxy yang menerima koneksi RakNet, serta pada setiap klien RakNet.

  2. Buat file config/raknetify2-compatibility.json di direktori yang berada relatif terhadap direktori server atau proxy tersebut. Buat juga direktori config jika belum ada.

  3. Tambahkan bagian berikut:

    {"mode": "ordered"}
  4. Restart server atau proxy.

Klien mengikuti pengaturan server secara otomatis. Pemain tidak perlu membuat file konfigurasi atau mengubah alamat server RakNet mereka.

Semua paket Minecraft menggunakan saluran yang dapat diandalkan dan terurut dalam setiap arah, termasuk penghalang paket bundle dan transisi dunia.

Pengaturan Proxy

Ketika pemain terhubung melalui Velocity atau BungeeCord, konfigurasikan mode terurut pada proxy tersebut, meskipun anti-cheat berjalan di server backend.

Kebijakan ini berlaku di semua switch backend. Dalam mode teratur, proxy akan mengirimkan permintaan keepalive backend ke klien sebenarnya, bukan menjawabnya secara lokal.

Mengecek pengaturan

Pada koneksi RakNet pertama, konsol melaporkan:

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

Pertukaran kompatibilitas yang berhasil juga mencatat “ordered compatibility negotiated”, diikuti oleh alamat peer tersebut.

Jangan lupakan untuk menjalankan pemeriksaan anti-cheat, dan verifikasilah konfigurasi Anda.

Klien yang lebih tua

Klien RakNet yang tidak mendukung mode terurut tidak dapat terhubung ke server yang memerlukan mode tersebut. Perbarui Raknetify2 pada klien-klien tersebut, atau terhubung menggunakan alamat dan port TCP normal server atau proxy tanpa menggunakan prefiks raknet;.

Kembali ke mode multichannel

Ubah file tersebut menjadi:

{"mode": "multichannel"}

Lalu, restart server atau proxy. Menghapus file tersebut juga akan mengembalikan mode multichannel setelah restart.

Masalah konfigurasi

File tersebut harus berisi satu pengaturan yang bernama mode, dengan nilai "ordered" atau "multichannel". Nilai-nilai tersebut sensitif terhadap huruf besar dan huruf kecil.

Konfigurasi yang tidak valid atau sulit dibaca akan menolak koneksi RakNet. Perbaiki file tersebut dan ulangi prosesnya.

Jika konsol masih menampilkan multichannel, pastikan bahwa file tersebut berada di direktori kerja server atau proxy yang menerima koneksi RakNet, lalu restart proses tersebut.

Transfer otomatis

Server Fabric, Forge, dan NeoForge dapat memilih RakNet saat mengirimkan klien yang kompatibel ke tujuan yang telah dikonfigurasi. Hal ini menggunakan dukungan transfer bawaan Minecraft, yang diperkenalkan pada Java Edition 1.20.5. Pastikan bahwa versi Raknetify2 Anda mendukung versi dan loader Minecraft di kedua sisi.

Instal Raknetify2 pada server pengirim dan klien. Tujuan harus menyediakan listener RakNet yang kompatibel dan menerima transfer Minecraft yang masuk.

Konfigurasi ini berlaku untuk transfer yang dikirim oleh tiga mod loader di atas. Plugin Spigot/Paper, Velocity, dan BungeeCord tidak membaca file transfer ini.

Konfigurasikan server pengirim.

Buat file config/raknetify2-transfers.json di direktori server pengirim.

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

Gantilah nama host dan port contoh dengan nilai yang sesuai dengan destinasi Anda, lalu restart server pengiriman. Destinasi tambahan dapat dimasukkan ke dalam array yang sama.

Ladang Makna
host Nama host atau alamat IP tujuan, tanpa prefiks transport atau port.
tcpPort Port tujuan dalam permintaan transfer asli
udpPort Port RakNet publik yang digunakan oleh klien yang dikirimkan harus dihubungi.

Nomor port TCP dan UDP dapat sama. Jika router mengubah nomor port UDP, gunakan port publik yang tercantum dalam file ini. Tuliskan nomor port dalam format JSON.

Kirim transfer ke nama host biasa dan port TCP tujuan. Raknetify2 memeriksa apakah klien mendukung transfer otomatis. Untuk klien yang mampu dan tujuan yang sesuai, ia akan memilih port UDP yang dikonfigurasi. Klien lain dan tujuan yang tidak sesuai akan tetap menggunakan alamat transfer asli.

Matching menggunakan nama host dan port TCP dari permintaan transfer. Nama host dikonversi menjadi huruf kapital, titik DNS di akhir nama host, dan ejaan IPv6 yang sesuai diterapkan. Proses pencarian DNS tidak terlibat dalam proses matching, sehingga dua nama host yang berakhir pada alamat yang sama memerlukan entri terpisah. Entri berbentuk wildcard tidak didukung.

Pengaturan Destinasi

Untuk tujuan yang menggunakan server.properties Minecraft, atur accepts-transfers=true dan restartnya. Proxyn tujuan tersebut mungkin memiliki pengaturan transfer sendiri. Minecraft secara default menolak transfer masuk, meskipun proses bergabung langsung normal berhasil.

Penerima RakNet di tujuan, forward UDP publik, dan firewall host harus sudah dikonfigurasi. File transfer server pengirim memilih alamat yang dikirim ke klien.

Periksa kedua rute IPv4 dan IPv6 dari tujuan tersebut ketika nama hostnya menampilkan kedua jenis alamat tersebut. Uji koneksi RakNet langsung biasa ke tujuan sebelum menyelidiki perilaku transfer otomatisnya.

Lakukan pemeriksaan login atau verifikasi akses di semua tujuan. Konfigurasi ini tidak memberikan akses kepada pemain, maupun menggantikan proses autentikasi server.

Kesalahan konfigurasi dan penghentian

Field yang hilang, field yang tidak diketahui, port yang tidak valid, dan tujuan yang berulang menyebabkan kesalahan konfigurasi saat proses inisialisasi. Gunakan log server untuk mengidentifikasi kesalahan, memperbaiki file JSON, dan memulai ulang proses tersebut.

Untuk membatalkan pemilihan otomatis, hapus file konfigurasi atau gunakan {"destinations": []}, lalu restart server pengiriman. Permintaan transfernya akan tetap menggunakan alamat asli.

Pembalikan UDP dan protokol PROXY

Proxy UDP dapat memproses lalu lintas RakNet dan mempertahankan alamat klien asli menggunakan protokol PROXY versi 2. Aktifkan fitur ini ketika proxy UDP upstream mengirim header-hheader tersebut ke listener Anda. Forwarding port router biasa tidak memerlukannya.

Di server atau proxy Minecraft yang menerima lalu lintas UDP yang di-forward, buat file config/raknetify2-proxy-protocol.json:

{
  "trustedProxies": ["192.0.2.10"]
}

Gantilah alamat IP asli dari proxy UDP tersebut dengan alamat IP yang sebenarnya atau rentang CIDR yang Anda kendalikan. Alamat tersebut harus sesuai dengan apa yang dilihat oleh server penerima setelah proses NAT berlangsung. Bisa digunakan alamat IPv4 atau IPv6. Nama host melalui DNS tidak diterima. Restartkan server penerima atau proxy tersebut.

Konfigurasikan proxy pengalihan untuk mengirimkan header protokol PROXY versi 2 untuk UDP. Raknetify2 hanya menerima alamat klien yang dikirim melalui sumber-sumber yang tercantum. Koneksi RakNet langsung tanpa header tersebut akan ditolak saat konfigurasi ini diaktifkan. Listener TCP tetap mempertahankan konfigurasinya yang lama.

Kepercayaan dan akses

Setiap proksi dalam daftar dapat melaporkan alamat klien. Atur firewall pada server tujuan agar hanya proksi yang ditentukan yang dapat mengakses port UDP server tersebut. Batasi rentang alamat tepercaya hanya pada alamat yang diperlukan jaringan Anda.

File tersebut harus hanya berisi trustedProxies, dengan setidaknya satu entri. Array kosong merupakan kesalahan. File yang tidak valid akan mencegah RakNet listener untuk dimulai.

Untuk kembali ke koneksi langsung menggunakan UDP, hapus file tersebut dan restart listener. Perbarui perilaku alihkan data upstream serta aturan firewall untuk rute baru tersebut pada saat yang sama.

Jika koneksi gagal setelah fitur ini diaktifkan, periksa alamat sumber proxy yang sebenarnya di backend, rentang yang dianggap dapat dipercaya, dan apakah proxy mengeluarkan header protokol UDP PROXY versi 2.

Untuk instalasi proxy Minecraft dan konfigurasi backend, ikuti Velocity dan BungeeCord.

Simple Voice Chat

Raknetify2 dapat berbagi pendengar server UDP-nya dengan Simple Voice Chat pada Fabric, Forge, NeoForge, Spigot, dan Paper.

Instal Simple Voice Chat pada server dan pada setiap klien yang ingin menggunakan chat suara. Ikuti petunjuk pengaturan server untuk konfigurasi selanjutnya.

Gunakan direktori config tingkat atas server untuk file Raknetify2, termasuk pada Spigot/Paper. File Simple Voice Chat sendiri tetap berada di lokasi khusus platform di bawah ini.

Bagikan port permainan ini.

  1. Buat file config/raknetify2-voicechat.json di direktori server dengan isi berikut:

    {"enabled": true}
  2. Atur port=-1 dalam konfigurasi server Simple Voice Chat. Di server modded, lokasi konfigurasi ini adalah config/voicechat/voicechat-server.properties. Di Spigot/Paper, lokasinya adalah plugins/voicechat/voicechat-server.properties.

  3. Biarkan bind_address kosong jika ada satu listener RakNet yang cocok. Jika server memiliki beberapa listener pada port UDP tersebut, aturlah menjadi alamat lokal dari listener yang ingin Anda bagikan.

  4. Restart server, lalu jalankan /voicechat test <PLAYERNAME> untuk pemain yang sedang terhubung.

Jika pendengar RakNet menggunakan port yang berbeda dari Minecraft, aturlah nilai port menjadi port UDP lokal tersebut secara eksplisit, bukan menggunakan -1. Sebagai contoh, pendengar RakNet pada port UDP lokal 25570 perlu memiliki nilai port=25570.

Atur voice_host jika klien membutuhkan alamat publik atau port yang berbeda. Untuk router yang mengirimkan UDP publik 25580 ke UDP lokal 25570, gunakan port=25570 dan voice_host=play.example.com:25580. Alamat publik tersebut harus tercantum dalam voice_host. Pengaturan bind_address digunakan untuk memilih listener lokal.

Raknetify2 menyediakan socket UDP yang dapat digunakan bersama melalui API Simple Voice Chat. Simple Voice Chat mengelola proses autentikasi dan enkripsi suara. Pemain dapat menggunakan chat suara dengan koneksi gameplay yang menggunakan TCP atau RakNet.

Layanan UDP lainnya dan proxy

Gunakan port UDP yang terpisah untuk Query dan Geyser. Integrasi socket bersama hanya mendukung Simple Voice Chat saja.

Integrasi ini tidak menggunakan socket proxy suara pada Velocity atau BungeeCord. Ikuti petunjuk pengaturan proxy Simple Voice Chat dan berikan port UDP khusus untuk proxy suara tersebut. Dengan plugin proxy suara resmi, atur pengaturan voice_host publik apa pun dalam konfigurasi proxy suara. Plugin tersebut mengabaikan pengaturan voice_host dari server backend.

Untuk tunnel UDP umum, atur voice_host menjadi nama host publik dan port UDP yang digunakan untuk mengirimkan data ke server ini.

Hapus fitur berbagi atau atasi konflik socket.

Jika laporan log menunjukkan No RakNet listener matches the voice bind address and port, pastikan bahwa RakNet berhasil dijalankan dengan baik, dan bahwa port suara serta alamat bind sesuai dengan alamat pendengar lokalnya.

Jika hasilnya menunjukkan Multiple RakNet listeners match the voice bind address, pilih alamat lokal yang sesuai dalam bind_address, lalu ulangi prosesnya.

Hanya plugin Simple Voice Chat yang dapat menyediakan socket UDP-nya. Jika proses startup melaporkan bahwa ada plugin lain yang sudah menyediakan socket, pilih integrasi socket mana yang akan digunakan.

Untuk membatalkan integrasi Raknetify2, atur {"enabled": false} dalam konfigurasi suaranya atau hapus file tersebut. Berikan Simple Voice Chat port UDP yang terpisah, perbarui aturan firewall atau forwarding-nya, lalu restart server.

Penyelesaian Masalah

TCP berfungsi, tetapi RakNet mengalami timeout.

Periksa semuanya secara berurutan:

  1. Klien memiliki mod Raknetify2 yang tepat untuk versi loader dan Minecraft-nya.
  2. Server atau proxy yang menerima koneksi telah terinstal Raknetify2 dan dijalankan tanpa kesalahan pada listener.
  3. Alamatnya dimulai dengan raknet; dan menggunakan port UDP publik.
  4. Penyedia hosting, router, dan firewall host semuanya mengizinkan UDP pada port tersebut.
  5. Alamat IPv4 dan IPv6 dari nama host tersebut mengarah ke host yang dimaksud, dan memiliki aturan firewall yang berfungsi.

Koneksi TCP yang berhasil hanya mengonfirmasi rute TCP tersebut. Ikuti Konfigurasi Firewall dan router untuk memeriksa pengalihan UDP dan akses IPv6. Jika protokol PROXY diaktifkan, klien harus mencapai listener melalui proxy yang dikonfigurasi sebagai trusted proxy.

Alamat sudah digunakan oleh lainnya.

Periksa apakah ada proses lain yang menggunakan port UDP. Geyser dan layanan UDP lainnya memerlukan port tersendiri. Simple Voice Chat dapat menggunakan integrasi port bersama.

Anda dapat memilih port UDP lokal lain menggunakan setting pendengar server langsung atau setting Velocity dan BungeeCord. Periksa persyaratan versi untuk pengaturan Spigot/Paper. Mengubah hanya port publik router akan menyebabkan konflik socket lokal tetap ada.

Pendaftaran berhasil, tetapi transfer gagal.

Koneksikan diri secara langsung ke tujuan menggunakan alamat raknet;nya. Jika hal tersebut gagal, perbaiki dulu listener tujuan atau rute jaringannya.

Jika koneksi langsung berfungsi, periksa apakah tujuan menerima transfer masuk. Server Minecraft yang menggunakan server.properties perlu memiliki pengaturan accepts-transfers=true. Koneksi langsung tidak menguji pengaturan ini.

Lalu bandingkan nama host transfer dan port TCP dengan config/raknetify2-transfers.json di server pengirim. Pastikan file tersebut telah terbuka setelah restart dan bahwa klien mendukung transfer RakNet otomatis. Lihat Transfer otomatis.

Kesalahan dalam proses enkripsi atau protokol

Periksa versi Raknetify2 di kedua ujung koneksi. Perbarui klien dan server atau proxy secara bersamaan ketika rilis baru mengubah protokol enkripsi. Pertahankan pengaturan autentikasi server selama proses investigasi berlangsung.

Kegagalan spesifik mod

Catat tindakan apa yang menyebabkan kegagalan, seperti membuka inventaris, menerima paket sumber daya, mengubah dunia, atau menciptakan entitas. Bandingkan tindakan yang sama menggunakan TCP dan RakNet dengan menggunakan instalasi uji yang terpisah jika memungkinkan.

Beberapa payload khusus bergantung pada urutan paket vanilla. Para pembuat mod dapat mendeklarasikan ketergantungan ini melalui interface pengaturan urutan paket.

Laporkan bug

Buka masalah di Raknetify2 issue tracker dan tambahkan:

  • Minecraft, versi Java, loader, dan Raknetify2 di kedua sisi.
  • Versi perangkat lunak server dan proxy, termasuk proxy yang melakukan forward UDP.
  • Mod-mod yang terinstal lainnya dan versinya.
  • Langkah-langkah untuk menggeneraliskan masalah dan apa yang diharapkan terjadi.
  • Apakah langkah-langkah yang sama berlaku untuk TCP.
  • Kutipan log klien, server, dan proxy yang relevan dari upaya yang sama.

Hapus token akses, kata sandi, dan informasi pribadi lainnya sebelum mengunggah log. Pertahankan pesan pengecualian dan jejak tumpukan yang diperlukan untuk mendiagnosis masalah.

Integrasi Mod

Raknetify2 memungkinkan mod untuk menentukan lalu lintas Minecraft yang harus tetap teratur dengan payload kustom mereka. Gunakan ini ketika penanganan payload memerlukan entitas, chunk, inventaris, atau keadaan lain yang ditetapkan oleh paket sebelumnya.

Mengatur kelompok

Grup Lalu lintas terkait
ui Menu dan interaksi yang tidak terkait dengan dunia
entity Proses spawn, penghapusan, dan pergerakan entitas
world_interaction Inventaris dan interaksi lain yang bergantung pada dunia
effects Suara dan partikel
chunk Pembaruan terrain, blok, dan pencahayaan

Semua grup mempertahankan proses pengiriman yang teratur dan dapat diandalkan dalam saluran mereka. Paket-paket di berbagai grup dapat tiba dalam urutan yang berbeda. Pilih grup yang sesuai dengan ketergantungan payloadnya.

Opsi integrasi Fabric

Tambahkan provider di bawah entri raknetify:packet_channels dalam file fabric.mod.json mod Anda. Provider ini mengimplementasikan tipe Consumer<BiConsumer<String, String>> menggunakan tipe JDK. Ia menerima register yang menerima identifikasi payload khusus dan grup peringkat.

Gabungkan entri ini ke metadata yang sudah ada Anda, dan gantilah nama kelas dengan nama lengkap penyedia layanan Anda.

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

Pertahankan seluruh isi file fabric.mod.json, termasuk entri-entri yang sudah ada. Ini merupakan fragmen dari file metadata.

Sebagai contoh, ekstensi pergerakan entitas dapat mendaftarkan example:entity_path ke grup entity. Dokumentasi PacketOrdering API mencakup implementasi penyedia tersebut.

Fabric tidak memanggil titik masuk ini ketika Raknetify2 tidak ada. Penyedia layanan harus mendeklarasikan identifikasi dan grup selama proses inisialisasi, tanpa bergantung pada mod lain yang telah selesai melakukan inisialisasinya sendiri.

Perilaku pendaftaran

Mod Forge dan NeoForge, serta plugin server atau proxy, dapat memanggil PacketOrdering.register(identifier, group) selama proses inisialisasi ketika Raknetify2 tersedia. Kelasnya adalah com.ishland.raknetify.api.PacketOrdering. Daftarkan mod tersebut sebelum menerima koneksi pemain, dan hindari pemutaran kode integrasi opsional dari Raknetify2 ketika dependensi tersebut tidak tersedia.

Deklarasi berlaku untuk koneksi baru. Koneksi yang sudah ada tetap mempertahankan aturan yang diterimanya saat proses konfigurasi. Mengulangi deklarasi yang sama diperbolehkan. Kelompok yang bertentangan untuk identifikasi yang sama akan ditolak.

Identifikasi payload harus menggunakan namespace kustom yang valid. Namespace minecraft telah disediakan untuk penggunaan tertentu. Batas total identifikasi untuk setiap endpoint adalah 128, termasuk aturan bawaan dan registrasi dari mod lain. Identifikasi dapat berisi hingga 255 karakter ASCII, menggunakan sintaks identifikasi namespace yang disediakan oleh API.

Pada saat proses koneksi, peer RakNet yang terbaru akan bertukar deklarasi. Sebuah server atau proxy dapat menggunakan deklarasi dari peer tersebut jika tidak memiliki aturan lokal untuk payload tersebut. Aturan lokal lebih diutamakan, dan deklarasi dari peer tetap berlaku hanya untuk koneksi tersebut.

Proxy UDP

Lihat UDP forwarding dan PROXY protocol untuk informasi mengenai relay UDP dan alamat klien yang di-forward.

Untuk pengaturan proxy Minecraft, lihat Velocity dan BungeeCord.

English (US)

Clone this wiki locally