Repository navigation
Wiki id id
- Beranda
- Instalasi
- Velocity dan BungeeCord
- Konfigurasi Firewall dan Router
- Kesesuaian
- Mode Terurut
- Transfer otomatis
- Pembalikan UDP dan protokol PROXY
- Simple Voice Chat
- Penyelesaian Masalah
- Integrasi Mod
- Proxy UDP
Koneksi jaringan melalui RakNet untuk klien dan peladen Minecraft.
| 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 |
-
Multipemain
-
Tambah Server
-
Alamat Server
Alamat Server RakNet · UDP raknet;play.example.com:25565TCP play.example.com:25565 -
Selesai
-
Gabung
| F3 | |
|---|---|
| RakNet · UDP | Aktif · MTU 1400 |
| TCP | Tidak aktif |
- Klien · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
- 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 |
| 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 |
Peladen / Velocity / BungeeCord
| JSON | |
|---|---|
| ① ② ③ | {"mode":"ordered"} |
| ① ∥ ② ∥ ③ | {"mode":"multichannel"} |
| 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
| 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"]}-
Peladen A · Fabric / Forge / NeoForge ·
config/raknetify2-transfers.json{"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]} -
Peladen B ·
play.example.com·server.properties→accepts-transfers=true -
Peladen A ·
/transfer play.example.com 25565 Alex→ Klien (Alex) → RakNet ·play.example.com:25570
| Minecraft | |
|---|---|
ui |
Opsi |
entity |
Bengkarak |
world_interaction |
Persediaan |
effects |
Partikel |
chunk |
Balok |
- Fabric ·
compatibility.json·gameVersions/runtimes/depends - Forge / NeoForge / Spigot / Paper · GitHub Releases
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.
- Periksa kompatibilitas Minecraft dan mod.
- Pilih metode unduhan dan instalkannya.
- Terhubung dengan alamat seperti
raknet;play.example.com.
- Velocity dan BungeeCord
- Konfigurasi Firewall dan Router
- Transfer otomatis
- Pembalikan UDP dan protokol PROXY
- Membagi port UDP dengan Simple Voice Chat
- Troubleshooting dan laporan bug
Para pembuat mod dapat menggunakan interface pengaturan paket untuk mendeklarasikan ketergantungan antara payload khusus dan lalu lintas Minecraft.
Raknetify2 menggunakan lisensi MIT dan tetap mempertahankan pemberitahuan hak cipta asli. Implementasi jaringannya dibangun atas dasar Raknetify dan netty-raknet.
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.
- Instal mod klien untuk loader Anda.
- Instal mod server yang sesuai, atau plugin Spigot/Paper pada server yang kompatibel.
- Ikuti Konfigurasi Firewall dan router untuk mengizinkan koneksi UDP ke server.
- Restartkan klien dan server.
- Tambahkan alamat server seperti
raknet;play.example.comatauraknet;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.
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.
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.
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 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.
- Konfirmasi bahwa koneksi TCP biasa melalui proxy Anda berfungsi dengan baik, termasuk proses autentikasi dan pergantian server backend.
- Hentikan proxy dan unduh plugin yang sesuai dari GitHub Releases.
- Letakkan
raknetify2-velocity-*-all.jaratauraknetify2-bungee-*-all.jardi folderpluginsdari proxy. Hapus semua plugin Raknetify atau Raknetify2 yang lebih tua dari folder tersebut. - Instal mod klien Raknetify2 yang sesuai menggunakan petunjuk instalasi.
- Periksa pengaturan pendengar di bawah ini, restart proxy, dan periksa lognya untuk menemukan kesalahan pada pendengar RakNet.
- 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 |
Untuk hosting di belakang router IPv4:
- 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.
- Tambahkan aturan alihkan UDP untuk port publik yang akan digunakan oleh pemain.
- Atur tujuan aturan tersebut ke alamat lokal mesin tersebut dan port UDP bagi pendengar RakNet.
- 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.
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.
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 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.
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.
Periksa kompatibilitas dengan rilis tertentu yang Anda unduh. Cabang pengembangan dapat berisi dukungan yang belum muncul dalam rilis sebelumnya.
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.
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.
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.
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.
-
Instal versi Raknetify2 yang mendukung mode terurut pada server atau proxy yang menerima koneksi RakNet, serta pada setiap klien RakNet.
-
Buat file
config/raknetify2-compatibility.jsondi direktori yang berada relatif terhadap direktori server atau proxy tersebut. Buat juga direktoriconfigjika belum ada. -
Tambahkan bagian berikut:
{"mode": "ordered"} -
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.
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.
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 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;.
Ubah file tersebut menjadi:
{"mode": "multichannel"}Lalu, restart server atau proxy. Menghapus file tersebut juga akan mengembalikan mode multichannel setelah restart.
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.
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.
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.
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.
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.
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.
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.
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.
-
Buat file
config/raknetify2-voicechat.jsondi direktori server dengan isi berikut:{"enabled": true} -
Atur
port=-1dalam konfigurasi server Simple Voice Chat. Di server modded, lokasi konfigurasi ini adalahconfig/voicechat/voicechat-server.properties. Di Spigot/Paper, lokasinya adalahplugins/voicechat/voicechat-server.properties. -
Biarkan
bind_addresskosong 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. -
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.
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.
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.
Periksa semuanya secara berurutan:
- Klien memiliki mod Raknetify2 yang tepat untuk versi loader dan Minecraft-nya.
- Server atau proxy yang menerima koneksi telah terinstal Raknetify2 dan dijalankan tanpa kesalahan pada listener.
- Alamatnya dimulai dengan
raknet;dan menggunakan port UDP publik. - Penyedia hosting, router, dan firewall host semuanya mengizinkan UDP pada port tersebut.
- 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.
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.
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.
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.
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.
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.
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.
| 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.
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.
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.
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.