Repository navigation
Wiki ms my
- Laman utama
- Pemasangan
- Velocity dan BungeeCord
- Konfigurasi Firewall dan Router
- Keserasian
- Mod Teratur
- Pindahan automatik
- Pemindahan UDP dan protokol PROXY
- Simple Voice Chat
- Penyelesaian Masalah
- Penyepaduan mod
- Proxy UDP
Sambungan rangkaian melalui RakNet untuk pelanggan dan pelayan Minecraft.
| Minecraft | Raknetify2 | Pelanggan / Pelayan |
|---|---|---|
| Fabric | mods/raknetify2-fabric-*.jar |
Pelanggan / Pelayan |
| Forge | mods/raknetify2-forge-*.jar |
Pelanggan / Pelayan |
| NeoForge | mods/raknetify2-neoforge-*.jar |
Pelanggan / Pelayan |
| Spigot / Paper | plugins/raknetify2-spigot-*.jar |
Pelayan |
| Velocity | plugins/raknetify2-velocity-*.jar |
Velocity |
| BungeeCord | plugins/raknetify2-bungee-*.jar |
BungeeCord |
-
Multipemain
-
Tambah Pelayan
-
Alamat Pelayan
Alamat Pelayan RakNet · UDP raknet;play.example.com:25565TCP play.example.com:25565 -
Selesai
-
Sertai Pelayan
| F3 | |
|---|---|
| RakNet · UDP | Aktif · MTU 1400 |
| TCP | Tidak aktif |
- Pelanggan · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
- Velocity / BungeeCord → TCP → Pelayan
| Nombor Port · 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 Pelayan | UDP |
|---|---|
raknet;play.example.com:25580 |
play.example.com:25580 → NAT → 192.0.2.10:25570
|
Pelayan · 192.0.2.10
|
25570/udp |
Pelayan / Velocity / BungeeCord
| JSON | |
|---|---|
| ① ② ③ | {"mode":"ordered"} |
| ① ∥ ② ∥ ③ | {"mode":"multichannel"} |
| Pelayan | 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 Pelayan | trustedProxies |
RakNet |
|---|---|---|
192.0.2.10 · PROXY v2 / UDP |
["192.0.2.10"] |
✓ |
192.0.2.11 · PROXY v2 / UDP |
["192.0.2.10"] |
✗ |
| Pelanggan → RakNet / UDP | ["192.0.2.10"] |
✗ |
config/raknetify2-proxy-protocol.json
{"trustedProxies":["192.0.2.10"]}-
Pelayan A · Fabric / Forge / NeoForge ·
config/raknetify2-transfers.json{"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]} -
Pelayan B ·
play.example.com·server.properties→accepts-transfers=true -
Pelayan A ·
/transfer play.example.com 25565 Alex→ Pelanggan (Alex) → RakNet ·play.example.com:25570
| Minecraft | |
|---|---|
ui |
Tetapan |
entity |
Kerangka |
world_interaction |
Inventori |
effects |
Partikel |
chunk |
Blok |
- Fabric ·
compatibility.json·gameVersions/runtimes/depends - Forge / NeoForge / Spigot / Paper · GitHub Releases
Raknetify2 menggunakan RakNet melalui UDP untuk permainan multiplayer Minecraft. Ia memisahkan trafik kepada saluran-saluran tertentu supaya kehilangan paket pada satu saluran tidak akan mengganggu trafik yang tidak berkaitan. Ini membolehkan interaksi berjalan dengan lancar semasa sambungan sedang pulih atau memindahkan chunk.
Raknetify2 merupakan versi yang diuruskan secara bebas daripada Raknetify, yang asalnya dibangunkan oleh ishland. Versi ini menambah sokongan untuk versi Minecraft yang lebih baru serta mengekalkan integrasi platform dan ujian keserasian.
- Periksa keserasian Minecraft dan mod.
- Pilih fail yang sesuai, muat turun dan pasang.
- Sambungkan dengan alamat seperti
raknet;play.example.com.
- Velocity dan BungeeCord
- Konfigurasi Firewall dan Router
- Pindahan automatik
- Pemindahan UDP dan Protokol PROXY
- Menggunakan port UDP bersama Simple Voice Chat
- Penyelesaian masalah dan laporan pepijat
Para pencipta mod boleh menggunakan interface pengaturan paket untuk mengisytiharkan ketergantungan antara payload khas dan trafik Minecraft.
Raknetify2 menggunakan lesen MIT dan mengekalkan notis hak cipta asal. Pelaksanaan rangkaiannya dibina berdasarkan Raknetify dan netty-raknet.
Unduh versi baru dari GitHub Releases. Semak versi Minecraft dan keperluan loader untuk versi tersebut sebelum memasangnya.
| Di mana anda sedang memasangnya | Fail | Folder |
|---|---|---|
| Klien atau pelayan Fabric | raknetify2-fabric-*.jar |
mods |
| Klien atau pelayan Forge | raknetify2-forge-*.jar |
mods |
| Klien atau pelayan NeoForge | raknetify2-neoforge-*.jar |
mods |
| Pelayan Spigot atau Paper | raknetify2-spigot-*.jar |
plugins |
| Velocity proxy | raknetify2-velocity-*.jar |
plugins |
| BungeeCord proxy | raknetify2-bungee-*.jar |
plugins |
Tutup klien atau hentikan pelayan sebelum menggantikan fail JARnya. Hapus fail Raknetify asal dan fail Raknetify2 yang lebih lama daripada instalasi yang sama sebelum menambah fail baru.
Folder klien terletak dalam salinan Minecraft atau pek mod yang anda jalankan. Gunakan folder pemasangan pelayan atau proksi untuk fail pelayan atau proksi tersebut. Jika pemuat mod belum menyediakan folder yang diperlukan, cipta folder itu.
- Install mod klien untuk loader anda.
- Install mod pelayan yang sesuai, atau plugin Spigot/Paper pada pelayan yang serasi.
- Ikuti Konfigurasi Firewall dan router untuk membenarkan sambungan UDP ke pelayan.
- Tetapkan semula klien dan pelayan.
- Tambahkan alamat pelayan seperti
raknet;play.example.comatauraknet;play.example.com:25565.
Alamat yang tidak mempunyai awalan raknet; menggunakan TCP.
Memasang mod pada klien sahaja tidak menambah sokongan RakNet pada pelayan jauh. Pengendali pelayan mesti menyediakan titik akhir RakNet. Pemain yang menyertai pelayan orang lain biasanya tidak perlu menetapkan pemajuan port masuk pada penghala mereka.
Install plugin proxy yang sesuai serta mod klien. Ikuti Velocity dan BungeeCord untuk tetapan pendengar, penghantaran backend, sekatan akses, dan alamat yang perlu digunakan oleh pemain.
Untuk pelayan Minecraft secara langsung, atur argumen Java yang sesuai di bawah ini. Pengendali proksi harus menggunakan tetapan pendengar Velocity dan BungeeCord.
| Platform | Argumen Java | Port yang diterima |
|---|---|---|
| Server Fabric, Forge, atau NeoForge | -Draknetify.fabric.portOverride=25570 |
1 hingga 65534
|
| Pelayan Spigot atau Paper | -Draknetify.spigot.portOverride=25570 |
1 hingga 65535
|
Forge dan NeoForge menggunakan kod pendengar yang dikongsi, jadi nama sifat mereka juga mengandungi fabric. Gantikan 25570 dengan port UDP yang diinginkan.
Spigot / Paper ≥ 0.1.0-beta.1.431
Tambahkan argumen sebelum -jar dalam arahan Java, atau dalam medan argumen JVM host anda. Kembali semula pelayan dan benarkan UDP pada port pendengar yang dipilih. Jika port awam juga adalah 25570, sambungkan dengan raknet;play.example.com:25570. Jika penghala menterjemahkan port tersebut, gunakan port awamnya dalam alamat klien. Port TCP kekal pada nilai semasa.
Pada Spigot/Paper, pendengar UDP mengekalkan alamat bind tempatan pendengar TCP Minecraft. Port UDP yang tidak sah atau terisi akan menghalang RakNet daripada dimulakan. Semak log permulaan untuk mencari alamat dan port UDP yang terikat. Hapuskan argumen tersebut dan cuba semula untuk kembali ke nombor port pendengar TCP.
Sebuah router atau proksi UDP juga boleh menggunakan port UDP awam yang berbeza dan menghantarnya ke pendengar yang sedia ada tanpa mengubah argumen Java pelayan.
Buka sesi main yang berjaya dalam GitHub Actions dan download arkib Artifactsnya. GitHub memerlukan akaun untuk memuat turun arkib workflow. Gunakan jadual instalasi di atas untuk memilih fail JAR daripada arkib tersebut.
Velocity dan BungeeCord berada di antara pemain dan pelayan Minecraft. Install Raknetify2 pada proksi dan pada setiap klien yang akan berhubung melalui RakNet.
Raknetify2 client --UDP--> Velocity atau BungeeCord --TCP--> backend server
Server belakang tidak memerlukan Raknetify2 untuk laluan sambungan ini. Mereka masih memerlukan mod, plugin, dan sokongan penghantaran yang diperlukan oleh rangkaian anda. Raknetify2 tidak menterjemahkan versi Minecraft atau mengubah pengesahan akaun proksi.
- Pastikan sambungan TCP biasa melalui proksi anda berfungsi dengan baik, termasuk proses pengesahan dan peralihan antara pelayan belakang.
- Hentikan proxy tersebut dan download plugin yang sesuai dari GitHub Releases.
- Letakkan
raknetify2-velocity-*-all.jaratauraknetify2-bungee-*-all.jardalam folderpluginspada proxy. Hapuskan sebarang plugin Raknetify atau Raknetify2 yang lebih lama daripada folder tersebut. - Install mod Raknetify2 yang sesuai menggunakan panduan instalasi.
- Semak tetapan pendengar di bawah, semulakan proxy, dan periksa lognya untuk mencari ralat pendengar RakNet.
- Benarkan trafik UDP awam ke proksi, dan kawal port permainan backend seperti yang diterangkan dalam Konfigurasi Firewall dan Router.
Gunakan versi Raknetify2 yang serasi pada klien dan proksi. Semak Keserasian sebelum mencampurkan versi yang berbeza.
Seting bind dalam velocity.toml memilih alamat pendengaran Minecraft dan port TCP menggunakan teknik Velocity. Raknetify2 biasanya menggunakan nombor port yang sama untuk UDP. Entri [servers] mengenal pasti pelayan belakang. Entri tersebut harus diarahkan ke alamat TCP pelayan belakang. Sila rujuk rujukan konfigurasi Velocity.
Untuk menggunakan port UDP yang berasingan, tambahkan argumen JVM ini sebelum -jar dalam arahan permulaan Velocity:
-Draknetify.velocity.portOverride=25570
Gantikan 25570 dengan port yang telah anda pilih. Ini akan mengubah port UDP RakNet, sambil mengekalkan port TCP dan alamat backend Velocity. Semak semula Velocity setelah mengubah argumen tersebut.
Konfigurasikan penghantaran pemain pada kedua-dua Velocity dan backend-belakangnya. Gunakan penghantaran moden apabila perisian backend menyokongnya, dan jaga agar penghantaran tersebut dirahsiakan. Ikuti arahan khusus backend dalam garis panduan penghantaran maklumat pemain Velocity. Pertahankan sekatan firewall backend bersama-sama dengan penghantaran tersebut.
Dalam config.yml BungeeCord, nilai host di bawah setiap entri listeners menentukan alamat pendengar Minecraft dan port TCP. Raknetify2 biasanya menambah UDP pada nombor port tersebut. Entri servers pula menyimpan alamat TCP backend. Tetapan ini diterangkan dalam panduan konfigurasi BungeeCord.
Untuk port UDP yang berasingan, tambahkan argumen JVM ini sebelum -jar dalam arahan permulaan BungeeCord:
-Draknetify.bungee.portOverride=25570
Proses override ini merangkumi keseluruhan proses proksi. Untuk konfigurasi yang menggunakan beberapa pendengar Minecraft, semak titik akhir RakNet sebenar dalam log permulaan sebelum menambah peraturan firewall. Kembali menjalankan BungeeCord setelah mengubah argumen.
Lindungi pengesahan akaun di proksi. Untuk backend Spigot, panduan penghantaran IP BungeeCord menggabungkan ip_forward: true pada proksi dengan settings.bungeecord: true pada backend. Penghantaran sahaja tidak dapat menghalang seseorang daripada menyambung terus ke backend. Larang akses backend menggunakan arah firewall.
Kedua-dua penggantian proksi menerima port dari 1 hingga 65534. Nilai yang tidak sah akan diabaikan, jadi semak port UDP yang terikat dalam log permulaan. Hapuskan argumen dan cuba semula untuk kembali ke nombor port pendengar Minecraft.
Pemain menyambung ke nama host awam dan port UDP proksi, contohnya raknet;play.example.com:25570. Apabila sebuah router menterjemahkan port, gunakan port UDP awamnya dalam alamat klien. Alamat yang tidak mempunyai awalan raknet; akan terus menggunakan pendengar TCP proksi.
Gunakan port UDP yang berasingan untuk Query, Geyser dan perkhidmatan UDP yang lain. Menukar port TCP tidak menyelesaikan konflik soket UDP.
Pada Velocity dan BungeeCord, Simple Voice Chat menggunakan pemalam proksi dan port UDP tersendiri. Ikuti panduan proksi Simple Voice Chat untuk menetapkannya.
Jika terdapat relay UDP berasingan yang berada di hadapan proxy Minecraft anda dan menghantar header protokol PROXY versi 2, konfigurasikan Raknetify2 menggunakan UDP forwarding dan protokol PROXY. Pemasangan Velocity atau BungeeCord secara sendirian tidak memerlukan konfigurasi tersebut.
Uji dari luar rangkaian tempatan anda menggunakan klien Raknetify2. Sertai melalui proksi, tukar antara pelayan belakang yang digunakan, dan pastikan identiti pemain serta kebenaran aksesnya tetap betul.
- Jika TCP melalui proksi berfungsi tetapi RakNet gagal, periksa pendengar UDP proksi, port awam, laluan IPv4 dan IPv6, serta peraturan firewall.
- Jika kedua-dua jenis sambungan gagal apabila proksi cuba menyambung ke pelayan belakang, semak alamat TCP pelayan itu, peraturan akses dan tetapan pemajuan maklumat pemain.
- Jika proksi melaporkan bahawa port UDP sedang digunakan, periksa sama ada terdapat proses Query, Geyser, proksi suara, atau proses lain yang terhubung ke port tersebut.
Untuk laporan, sertakan log proxy dan backend daripada percubaan sambungan yang sama. Sila rujuk Troubleshooting untuk maklumat versi yang perlu disertakan.
Panduan ini ditujukan untuk pengendali pelayan. Raknetify2 memerlukan laluan UDP yang berfungsi ke pelayan atau proksi yang menerima sambungan RakNet. Pembinaan lalai menggunakan nombor port yang sama seperti pendengar TCP Minecraft.
Bagi pemain yang berada dalam rangkaian tempatan yang sama, gunakan alamat tempatan server dan izinkan UDP melalui firewall hostnya. Perlu menggunakan fungsi forwarding port router apabila trafik internet perlu melintasi NAT IPv4 router anda.
Hantar laluan UDP awam ke mesin yang menjalankan pelayan Minecraft menggunakan Raknetify2. Port destinasi ialah pendengar UDP RakNet bagi pelayan tersebut. Benarkan port tersebut dalam firewall host mesin pelayan. Pertahankan laluan TCP sedia ada untuk sambungan Minecraft biasa.
Sebagai contoh, jika Raknetify2 mendengar pada UDP 25570, hantar port UDP awam ke alamat tempatan pelayan pada port 25570. Port TCP pelayan boleh kekal pada 25565. Sila rujuk penetapan pendengar pelayan langsung untuk memilih port UDP yang berbeza.
Hantar trafik UDP awam ke mesin yang menjalankan Velocity atau BungeeCord menggunakan plugin Raknetify2. Gunakan pendengar UDP RakNet pada proksi tersebut sebagai destinasi penghantaran. Pertahankan laluan TCP awam yang sedia ada pada proksi untuk sambungan Minecraft biasa.
Proxies ini menyambung ke pelayan Minecraft backend melalui TCP. Menambahkan Raknetify2 ke dalam proksies tidak memerlukan pembukaan port UDP untuk permainan bagi pemain.
| Koneksi | Akses yang dibenarkan |
|---|---|
| Pemain yang menggunakan proksi | UDP awam ke pendengar RakNet, ditambah dengan pendengar TCP awam yang sedia ada. |
| Proxies ke pelayan belakang (backend servers) | Port TCP pelayan Minecraft di belakang proksi. Hanya pelayan proksi yang ditetapkan boleh mengakses port ini. |
| Pemain terus ke port permainan backend. | Teruskan dilarang, termasuk melalui IPv6. |
Apabila proksi dan backend berjalan secara langsung pada mesin khusus yang dikawal oleh anda, pendengar backend boleh menggunakan alamat loopback dengan proksi yang dikonfigurasi untuk mencapai mereka di sana. Di antara mesin-mesin tersebut, kawal akses TCP backend ke host proksi menggunakan firewall atau rangkaian peribadi yang terisolasi. Kontainer dan host yang diuruskan perlu mempunyai sekatan yang sama untuk susunan rangkaian mereka. Sila rujuk Panduan Keselamatan Backend Velocity dan Panduan Firewall BungeeCord.
Pemindahan pemain dan sekatan firewall berfungsi bersama-sama. Akses backend secara langsung dapat mengelakkan pemeriksaan log-in oleh proksi. Untuk pemasangan plugin, tetapan pemindahan, dan penggantian port UDP, ikuti Velocity dan BungeeCord.
Port awam dan port pendengar boleh berbeza apabila penghala menterjemahkan antara keduanya.
| Menetapkan | Port yang perlu digunakan |
|---|---|
| Alamat pelayan klien | Port UDP awam |
| Peraturan penghantaran router pada port luaran | Port UDP awam |
| Peraturan penghantaran router yang berkaitan dengan port dalaman | Port UDP pendengar RakNet |
| Port tempatan firewall tuan rumah | Port UDP pendengar RakNet |
Untuk penyediaan perkhidmatan di belakang router IPv4:
- Cari alamat IPv4 setempat bagi mesin yang menerima sambungan RakNet. Gunakan tempahan alamat DHCP atau alamat statik yang sesuai supaya peraturan pemajuan terus menghala ke mesin itu.
- Tambahkan peraturan alihkan UDP untuk port awam yang akan digunakan oleh pemain.
- Tetapkan destinasi peraturan tersebut ke alamat tempatan mesin tersebut dan port UDP pendengar RakNet.
- Izinkan UDP masuk ke port pendengar pada firewall host.
Sebagai contoh, pelayan yang mendengar pada port UDP 25565 boleh menggunakan peraturan dengan port awam 25565, alamat destinasi 192.168.1.100, dan port destinasi 25565. Gantikan alamat contoh dengan alamat tempatan sebenar pelayan anda.
Pertahankan peraturan TCP untuk sambungan biasa dalam Minecraft. Peraturan alihkan TCP sahaja tidak dapat membawa UDP.
Periksa sama ada terdapat router lain atau ISP anda yang melakukan NAT sebelum trafik sampai ke router anda. Dengan adanya dua router, fungsi penghantaran mesti meliputi kedua-duanya. Jika ISP anda menggunakan NAT tahap tinggi, tanyakan sama ada ia dapat menyediakan alamat IPv4 awam atau menggunakan perkhidmatan hosting atau terowong yang menyokong UDP inbound. Peraturan penghantaran router anda tidak boleh mengkonfigurasi NAT ISP. Sila rujuk Panduan penghantaran port TP-Link untuk maklumat mengenai keperluan alamat WAN awam.
Izinkan port UDP yang dipilih melalui firewall IPv6 router dan firewall host. Sasarkan alamat IPv6 mesin yang menerima sambungan RakNet.
Periksa sama ada alamat IPv6 nama host tersebut menunjukkan ke mesin tersebut. Jika alamat IPv6nya berubah, perbetulkan rekod DNS dan sebarang peraturan firewall yang berkaitan dengan alamat tersebut.
Nama host yang mempublikasikan kedua-dua alamat IPv4 dan IPv6 perlu mempunyai laluan yang berfungsi untuk setiap alamat yang diterbitkan. Periksa kedua-dua set peraturan apabila seorang pemain dapat menyambung, manakala pemain lain tidak dapat.
Jika penghantaran IPv4 mengubah nombor port, pastikan port yang dimasukkan oleh pemain juga dapat diterima oleh pendengar IPv6. Terjemahan port IPv4 tidak mengkonfigurasi laluan IPv6.
Penyedia atau terowong mesti menyokong UDP pada titik akhir awam yang anda berikan kepada pemain. Semak pengagihan port dan peraturan firewall rangkaiannya, serta firewall perkhidmatan tersebut.
Jika sebuah proksi UDP tambahan memproses alamat klien menggunakan protokol PROXY v2, ikuti Pemprosesan UDP dan Protokol PROXY dan bataskan akses kepada pendengar UDP kepada proksi yang dipercayai.
Sambung dari luar rangkaian tempatan pelayan, menggunakan klien Raknetify2 yang telah dikemas kini, dengan alamat seperti raknet;play.example.com:25565. Gunakan port UDP awam dalam alamat ini.
Gunakan sambungan RakNet sebenar untuk mengesahkan laluan. Pencarian UDP yang tidak mendapat sebarang respons boleh melaporkan hasil yang tidak pasti, kerana perkhidmatan yang berfungsi mungkin akan menolak probe yang tidak dikenali. Dokumentasi pencarian UDP Nmap menjelaskan tingkah laku ini.
Koneksi TCP yang berjaya hanya mengesahkan laluan TCP tersebut. Jika RakNet gagal, periksa pemancar, destinasi penghantaran, port UDP, dan peraturan firewall menggunakan garis panduan penyelesaian masalah.
Semak keserasian bagi keluaran yang anda muat turun. Cabang pembangunan mungkin sudah menyokong versi yang belum disertakan dalam keluaran rasmi.
Untuk Fabric, download compatibility.json daripada versi yang sama dengan JAR tersebut. Semak versi Minecraft anda dalam gameVersions, kemudian semak entri yang berkaitan di bawah runtimes untuk keperluan dependsnya. Fail JSON ini merupakan dokumen rujukan dan tidak perlu diletakkan dalam folder mods.
Untuk Forge, NeoForge, dan Spigot/Paper, semak keperluan versi yang dinyatakan oleh artefak dan senarai pemuatannya. Sokongan pada satu pemuat tidak bermakna sokongan pada pemuat yang lain.
Keperluan Java yang dinyatakan oleh Raknetify2 merupakan keperluan minimum. Minecraft atau perisian pemuat mungkin memerlukan versi Java yang lebih baru. Pilih versi Java yang memenuhi ketiga-tiga keperluan tersebut.
Gunakan versi Raknetify2 yang sama pada klien dan pelayan, atau proksi yang menerima sambungannya jika memungkinkan. Semak nota rilis sebelum mencampurkan versi yang berbeza. Sambungan RakNet yang dienkripsi memerlukan sokongan untuk protokol enkripsi yang diautentikkan di kedua-dua hujung. Versi Raknetify dan Raknetify2 yang asal sebelum protokol tersebut diperkenalkan tidak dapat membuat sambungan enkripsi dengan rakan-rakan yang telah dikemas kini.
Raknetify2 membawa protokol permainan Minecraft yang sedia ada. Untuk menyambungkan versi Minecraft yang berbeza, perlu ada penyesuaian terjemahan protokol yang serasi.
Aliran kerja pembinaan termasuk pemeriksaan keserasian yang melibatkan Polymer, Krypton, PacketFixer, dan Fast IP Ping. Pemeriksaan tersebut meliputi versi dan kombinasi yang dipilih oleh aliran kerja tersebut. Semak hasil pembinaan yang berkaitan dengan rilis tertentu semasa menyiasat kombinasi tertentu.
Untuk masalah yang berlaku dalam modpack yang lebih besar, ikuti garis panduan penyelesaian masalah. Sertakan versi mod yang lengkap dalam laporan anda.
Biasanya, Raknetify2 membenarkan saluran paket bebas berterusan sambil satu saluran menunggu data yang hilang. Mod teratur meletakkan semua paket Minecraft pada satu saluran, jadi paket yang hilang akan menghalang semua paket lain dalam arah yang sama sehingga ia diteruskan semula. Ini memelihara susunan yang dijangka oleh beberapa perisian anti-cheat, tetapi mengorbankan keupayaan Raknetify2 untuk memastikan lalu lintas permainan yang tidak berkaitan berjalan semasa tempoh menunggu tersebut.
-
Muatkan versi Raknetify2 yang menyokong mod teratur pada pelayan atau proksi yang menerima sambungan RakNet, serta pada setiap klien RakNet.
-
Cipta
config/raknetify2-compatibility.jsondalam direktori kerja pelayan atau proksi tersebut. Cipta direktoriconfigjika belum ada. -
Tambahkan perkara berikut:
{"mode": "ordered"} -
Semak semula pelayan atau proxy.
Klien mengikuti tetapan server secara automatik. Pemain tidak perlu membuat fail konfigurasi atau mengubah alamat server RakNet mereka.
Semua paket Minecraft menggunakan saluran yang boleh dipercayai dan teratur dalam setiap arah, termasuk penghadang paket dan peralihan dunia.
Apabila pemain berhubung melalui Velocity atau BungeeCord, konfigurasikan mod tertib pada proksi tersebut, walaupun anti-cheat berjalan pada server backend.
Dasar ini tetap berkuat kuasa apabila pemain berpindah antara pelayan belakang. Dalam mod tertib, proksi memajukan permintaan keepalive daripada pelayan belakang kepada klien sebenar dan tidak menjawabnya sendiri.
Pada sambungan RakNet yang pertama, konsol melaporkan:
Raknetify2 compatibility: ordered (updated clients required, genuine acknowledgements)
Pertukaran kompatibiliti yang berjaya juga akan merekodkan nilai ordered compatibility negotiated, diikuti dengan alamat pihak yang berkaitan.
Jangan lupakan untuk memastikan sistem pemeriksaan anti-cheat sentiasa aktif, dan sahkan tetapan khusus anda.
Klien RakNet yang tidak menyokong mod teratur tidak dapat menyambung ke pelayan yang memerlukannya. Perbaiki Raknetify2 pada klien-klien tersebut, atau sambung menggunakan alamat dan port TCP biasa pelayan atau proxy tanpa awalan raknet;.
Tukar fail tersebut kepada:
{"mode": "multichannel"}Kemudian, semulakan pelayan atau proxy tersebut. Dengan menghapuskan fail tersebut, mod multichannel akan dipulihkan selepas semula pelayan.
Fail tersebut mesti mengandungi satu tetapan yang bernama mode, dengan nilai "ordered" atau "multichannel". Nilai-nilai tersebut sensitif terhadap huruf besar dan kecil.
Konfigurasi yang tidak sah atau sukar dibaca akan menolak sambungan RakNet. Perbetulkan fail tersebut dan mulakan semula prosesnya.
Jika konsol masih melaporkan multichannel, pastikan fail tersebut berada dalam direktori kerja pelayan atau proksi yang menerima sambungan RakNet, kemudian restart proses tersebut.
Server Fabric, Forge, dan NeoForge boleh memilih RakNet semasa menghantar klien yang berkemampuan ke destinasi yang telah dikonfigurasi. Ini menggunakan sokongan pemindahan asli Minecraft, yang diperkenalkan dalam Java Edition 1.20.5. Semak sama ada versi Raknetify2 anda menyokong versi dan loader Minecraft di kedua-dua hujung.
Install Raknetify2 pada pelayan pengirim dan pelayan penerima. Tujuan harus menyediakan alat pendengar RakNet yang serasi dan menerima pemindahan data Minecraft yang masuk.
Konfigurasi ini digunakan untuk pemindahan yang dihantar oleh tiga mod loader yang dinyatakan di atas. Plugin Spigot/Paper, Velocity, dan BungeeCord tidak membaca fail pemindahan ini.
Sila buat fail config/raknetify2-transfers.json di direktori pelayan penghantar.
{
"destinations": [
{
"host": "play.example.com",
"tcpPort": 25565,
"udpPort": 25570
}
]
}Gantikan nama host dan port contoh dengan nilai yang sesuai untuk destinasi anda, kemudian hidupkan semula pelayan penghantaran. Destinasi tambahan boleh dimasukkan ke dalam array yang sama.
| Medan | Maksudnya |
|---|---|
host |
Nama host atau alamat IP destinasi, tanpa awalan pengangkutan atau port. |
tcpPort |
Port destinasi dalam permintaan pemindahan asal |
udpPort |
Port RakNet awam yang digunakan oleh klien yang dipindahkan harus dihubungi. |
Nombor port TCP dan UDP boleh sama. Jika penghala menukar port UDP, gunakan port awam yang terdapat dalam fail ini. Tuliskan nombor port dalam format JSON.
Hantar pemindahan ke nama host biasa dan port TCP destinasi. Raknetify2 akan memeriksa sama ada klien menyokong sokongan pemindahan automatik. Bagi klien yang mampu dan destinasi yang sesuai, ia akan memilih port UDP yang telah dikonfigurasikan. Klien lain dan destinasi yang tidak sesuai akan terus menggunakan alamat pemindahan asal.
Padanan menggunakan nama hos dan port TCP daripada permintaan pemindahan. Huruf besar dan kecil pada nama hos, titik pada hujung nama DNS dan cara penulisan alamat IPv6 yang setara dianggap sama. Alamat tidak dicari melalui DNS ketika membuat padanan. Dua nama hos yang berlainan memerlukan entri berasingan walaupun merujuk kepada alamat yang sama. Aksara kad bebas tidak disokong.
Untuk destinasi yang menggunakan server.properties dalam Minecraft, aturkan accepts-transfers=true dan hidupkan semula perkhidmatan tersebut. Proxies destinasi mungkin mempunyai tetapan pemindahan sendiri. Minecraft secara lalai menolak pemindahan masuk, walaupun penyertaan langsung biasa berjaya.
Pendengar RakNet destinasi, penghantaran UDP awam, dan firewall host mesti telah dikonfigurasikan. Fail pemindahan pelayan pengirim memilih alamat yang dihantar kepada klien.
Periksa kedua-dua laluan IPv4 dan IPv6 bagi destinasi tersebut apabila nama hostnya memaparkan kedua-dua jenis alamat. Uji sambungan RakNet biasa ke destinasi tersebut sebelum menyiasat tingkah laku pemindahan automatik.
Lakukan pemeriksaan log-in atau kebenaran untuk destinasi yang ditentukan. Konfigurasi ini tidak memberikan akses kepada pemain, dan juga tidak menggantikan proses pengesahan server.
Medan yang hilang, medan yang tidak diketahui, port yang tidak sah, dan destinasi yang berulang menyebabkan ralat konfigurasi semasa proses inisialisasi. Gunakan log pelayan untuk mengenal pasti ralat tersebut, membetulkan JSON, dan memulakan semula.
Untuk mematikan pemilihan automatik, hapus fail konfigurasi atau gunakan {"destinations": []}, kemudian hidupkan semula pelayan penghantaran. Permintaan penghantaran akan tetap menggunakan alamat asalnya.
Proxy UDP boleh menyalurkan trafik RakNet dan mengekalkan alamat klien asal menggunakan protokol PROXY versi 2. Aktifkan ciri ini apabila proxy UDP upstream menghantar header tersebut ke pendengar anda. Aktifkan pemindahan port router biasa tidak memerlukan ciri ini.
Di pelayan atau proksi Minecraft yang menerima trafik UDP yang dihantar, buatlah fail config/raknetify2-proxy-protocol.json:
{
"trustedProxies": ["192.0.2.10"]
}Gantikan contoh dengan alamat IP sumber sebenar proksi UDP atau julat CIDR yang dikawal oleh anda. Alamat tersebut mesti sama dengan apa yang dilihat oleh penerima selepas sebarang intervensi NAT. Literal IPv4 dan IPv6 diterima. Nama host DNS ditolak. Kembalikan pelayan penerima atau proksi ke keadaan asal.
Konfigurasikan proksi penghantaran untuk menghantar header protokol PROXY v2 untuk UDP. Raknetify2 hanya menerima alamat klien yang dihantar melalui sumber yang disenaraikan. Konfigurasi ini akan menolak sambungan RakNet secara langsung tanpa header tersebut. Penerima TCP pula kekal dengan konfigurasinya yang sedia ada.
Setiap proksi dalam senarai ini dibenarkan menghantar alamat klien. Pada tembok api pelayan belakang, benarkan akses ke port UDP hanya daripada proksi yang ditetapkan. Hadkan julat alamat yang dipercayai kepada alamat yang diperlukan sahaja.
Fail tersebut mesti mengandungi hanya trustedProxies, dengan sekurang-kurangnya satu entri. Array yang kosong merupakan ralat. Fail yang tidak sah akan menghalang RakNet listener daripada dimulakan.
Untuk kembali kepada sambungan UDP secara langsung, hapus fail tersebut dan hidupkan semula listener. Atur semula tingkah laku penghantaran upstream serta peraturan firewall untuk laluan baru pada masa yang sama.
Jika sambungan gagal setelah mengaktifkan ciri ini, periksa alamat sumber sebenar proksi di bahagian belakang, julat yang dikonfigurasikan sebagai boleh dipercayai, dan sama ada proksi tersebut mengeluarkan header protokol UDP PROXY versi 2.
Untuk pemasangan proxy Minecraft dan konfigurasi backend, ikuti Velocity dan BungeeCord.
Pada Fabric, Forge, NeoForge, Spigot dan Paper, Raknetify2 dan Simple Voice Chat boleh menggunakan soket UDP yang sama untuk menerima sambungan pada pelayan.
Install Simple Voice Chat pada pelayan dan pada setiap klien yang ingin menggunakan perkhidmatan perbualan suara. Ikuti panduan penyediaan pelayan untuk konfigurasi yang lain.
Gunakan direktori config peringkat tertinggi pada pelayan untuk fail Raknetify2, termasuk pada Spigot/Paper. Fail Simple Voice Chat sendiri kekal di lokasi khusus platform di bawah.
-
Sila cipta fail
config/raknetify2-voicechat.jsondi dalam direktori pelayan dengan kandungan berikut:{"enabled": true} -
Aturkan
port=-1dalam konfigurasi pelayan Simple Voice Chat. Pada pelayan yang diubahsuai, ia terletak diconfig/voicechat/voicechat-server.properties. Pada Spigot/Paper, ia terletak diplugins/voicechat/voicechat-server.properties. -
Biarkan
bind_addresskosong jika terdapat satu pembesar suara RakNet yang sesuai. Jika pelayan mempunyai beberapa pembesar suara pada port UDP tersebut, tetapkan kepada alamat tempatan pembesar suara yang ingin dikongsi. -
Mulakan semula pelayan dan jalankan
/voicechat test <PLAYERNAME>untuk seorang pemain yang sedang bersambung.
Jika pendengar RakNet menggunakan port yang berbeza daripada Minecraft, tetapkan nilai port kepada port UDP tempatan tersebut secara eksplisit, bukannya menggunakan -1. Sebagai contoh, pendengar RakNet pada port UDP tempatan 25570 memerlukan port=25570.
Tetapkan voice_host apabila klien memerlukan alamat awam atau port yang berbeza. Untuk router yang mengalihkan UDP awam 25580 ke UDP tempatan 25570, gunakan port=25570 dan voice_host=play.example.com:25580. Alamat awam terkandung dalam voice_host. Tetapan bind_address memilih pendengar tempatan.
Raknetify2 menyediakan socket UDP yang dikongsi melalui API Simple Voice Chat. Simple Voice Chat menguruskan proses pengesahan suara dan enkripsi. Pemain boleh menggunakan perbualan suara sama ada melalui sambungan permainan TCP atau RakNet.
Pastikan Query dan Geyser menggunakan port UDP yang berasingan. Integrasi socket yang dikongsi hanya menyokong Simple Voice Chat sahaja.
Integrasi ini tidak berkongsi socket proksi suara pada Velocity atau BungeeCord. Ikuti garis panduan penyediaan proksi Simple Voice Chat dan berikan port UDP yang berasingan kepada proksi suara tersebut. Dengan plugin proksi suara rasmi, tetapkan sebarang tetapan voice_host awam dalam konfigurasi proksi suara. Plugin tersebut mengabaikan tetapan voice_host pada pelayan belakang.
Bagi terowong UDP biasa, tetapkan voice_host kepada nama hos awam dan port UDP yang memajukan trafik ke pelayan ini.
Jika log tersebut menunjukkan No RakNet listener matches the voice bind address and port, pastikan bahawa RakNet telah dimulakan dengan berjaya, dan bahawa port suara serta alamat pengikatan tersebut sepadan dengan alamat pendengar di lokasi tersebut.
Jika ia melaporkan Multiple RakNet listeners match the voice bind address, pilih alamat tempatan yang sesuai dalam bind_address dan cuba semula.
Hanya satu plugin Simple Voice Chat yang boleh menyediakan UDP socketnya. Jika peranti mula beroperasi melaporkan bahawa terdapat plugin lain yang sudah menyediakan socket, pilih integrasi socket yang ingin digunakan.
Untuk mematikan integrasi Raknetify2, atur {"enabled": false} dalam konfigurasi suaranya atau hapus fail tersebut. Berikan Simple Voice Chat port UDP yang berasingan, kemas kini firewall atau peraturan penghantaran, dan hidupkan semula pelayan.
Periksa semuanya mengikut urutan:
- Klien mempunyai mod Raknetify2 yang betul untuk versi loader dan Minecraftnya.
- Server atau proxy yang menerima sambungan tersebut telah memasang Raknetify2 dan dijalankan tanpa sebarang ralat pada peranti pendengar.
- Alamatnya bermula dengan
raknet;dan menggunakan port UDP awam. - Penyedia hosting, router, dan firewall host semuanya membenarkan UDP pada port tersebut.
- Alamat IPv4 dan IPv6 untuk nama host tersebut membawa ke host yang dimaksudkan, dan mempunyai peraturan firewall yang berfungsi.
Sambungan TCP yang berjaya hanya mengesahkan laluan TCP. Ikuti Tetapan tembok api dan penghala untuk menyemak pemajuan UDP dan akses IPv6. Jika protokol PROXY diaktifkan, klien mesti menyambung melalui proksi dipercayai yang ditetapkan.
Periksa sama ada terdapat proses lain yang menggunakan port UDP. Perkhidmatan Geyser dan perkhidmatan UDP yang lain memerlukan port tersendiri. Simple Voice Chat boleh menggunakan integrasi port bersama.
Anda boleh memilih pelayan UDP tempatan yang lain menggunakan penetapan pendengar pelayan langsung atau penetapan Velocity dan BungeeCord. Semak keperluan versi untuk tetapan Spigot/Paper. Mengubah hanya pelayan awam akan menyebabkan konflik pada socket tempatan.
Sambungkan secara langsung ke destinasi menggunakan alamat raknet;nya. Jika ia gagal, perbaiki terlebih dahulu pemancar pendengar destinasi atau laluan rangkaiannya.
Jika sambungan langsung berfungsi, periksa sama ada destinasi tersebut menerima pemindahan data. Server Minecraft yang menggunakan server.properties perlu mempunyai tetapan accepts-transfers=true. Sambungan langsung tidak menguji tetapan ini.
Kemudian bandingkan nama host dan port TCP dengan fail config/raknetify2-transfers.json di pelayan pengirim. Pastikan fail tersebut telah dimuatkan selepas restart dan bahawa klien menyokong pemindahan data secara automatik menggunakan RakNet. Lihat Pemindahan automatik.
Periksa versi Raknetify2 pada kedua-dua hujung sambungan. Perbaharui klien dan pelayan atau proksi bersama-sama apabila penerbitan mengubah protokol yang dienkripsi. Simpan tetapan pengesahan pelayan semasa menyiasat.
Tandakan tindakan yang menyebabkan kegagalan, seperti membuka inventori, menerima paket sumber, mengubah dunia, atau menghasilkan entiti. Bandingkan tindakan yang sama menggunakan TCP dan RakNet dengan menggunakan instalasi ujian yang berasingan apabila sesuai.
Beberapa payload khas bergantung pada susunan paket vanilla. Para pencipta mod boleh mengisytiharkan ketergantungan ini melalui antaramuka susunan paket.
Buka laporan di penjejak isu Raknetify2 dan sertakan maklumat berikut:
- Minecraft, Java, loader, dan versi Raknetify2 pada kedua-dua pihak.
- Versi perisian pelayan dan proksi, termasuk mana-mana proksi penghantaran UDP.
- Mod-mod yang telah dipasang dan versi-versinya.
- Langkah-langkah untuk menggenerakan masalah dan apa yang dijangka berlaku.
- Sama ada langkah-langkah yang sama berfungsi melalui TCP.
- Petikan log klien, pelayan, dan proksi yang berkaitan daripada percubaan yang sama.
Buang token akses, kata laluan dan maklumat sulit yang lain sebelum memuat naik log. Kekalkan mesej pengecualian dan surihan tindanan yang diperlukan untuk mengenal pasti punca masalah.
Raknetify2 membolehkan mods mengisytiharkan trafik Minecraft yang perlu kekal teratur menggunakan payload khas mereka. Gunakan ini apabila pengendalian payload memerlukan entiti, chunk, inventori, atau keadaan lain yang ditetapkan oleh paket sebelumnya.
| Kumpulan | Lalu lintas yang berkaitan |
|---|---|
ui |
Menu dan interaksi yang tidak bergantung pada dunia |
entity |
Kemunculan, penyingkiran dan pergerakan entiti |
world_interaction |
Inventori dan interaksi lain yang bergantung pada keadaan dunia |
effects |
Bunyi dan zarah |
chunk |
Pembaruan kawasan tanah, blok, dan pencahayaan |
Semua kumpulan mengekalkan penghantaran yang boleh dipercayai dan teratur dalam saluran mereka. Paket-paket dalam kumpulan yang berbeza boleh tiba dalam urutan yang berbeza. Pilih kumpulan yang sesuai dengan kebergantungan payloadnya.
Tambahkan penyedia di bawah entri raknetify:packet_channels dalam fail fabric.mod.json mod anda. Penyedia ini melaksanakan fungsi Consumer<BiConsumer<String, String>> menggunakan jenis-jenis JDK. Ia menerima maklumat berupa identifikasi payload khas dan kumpulan pengaturan.
Sertakan entri ini dalam metadata anda yang sedia ada, dan gantikan nama kelas dengan nama penuh penyedia anda:
{
"entrypoints": {
"raknetify:packet_channels": [
"com.example.mod.OrderingProvider"
]
}
}Kekalkan baki kandungan fabric.mod.json anda, termasuk entri-entri yang sedia ada. Ini merupakan sebahagian daripada fail metadata.
Sebagai contoh, penambahan pergerakan entiti boleh mendaftarkan example:entity_path dengan kumpulan entity. Dokumentasi PacketOrdering API mengandungi pelaksanaan penyedia tersebut.
Fabric tidak memanggil titik masuk ini apabila Raknetify2 tidak ada. Penyedia harus mengisytiharkan identifikasi dan kumpulan semasa proses inisialisasi, tanpa bergantung pada mod lain yang telah selesai proses inisialisasinya sendiri.
Mod Forge dan NeoForge, serta pelbagai plugin pelayan atau proxy, boleh memanggil PacketOrdering.register(identifier, group) semasa proses inisialisasi apabila Raknetify2 tersedia. Kelasnya ialah com.ishland.raknetify.api.PacketOrdering. Daftarkan mod tersebut sebelum menerima sambungan pemain, dan elakkan pemuatan kelas Raknetify2 jika kebergantungan tersebut tidak wujud.
Pengisytiharan tersebut berlaku untuk sambungan baru. Sambungan yang sedia ada pula kekal dengan peraturan yang diberikan semasa proses penubuhan. Pengulangan pengisytiharan yang sama dibenarkan. Kumpulan yang bercanggah untuk identifikasi yang sama akan ditolak.
Identifikasi payload mesti menggunakan nama ruang yang sah. Nama ruang minecraft telah dikhaskan. Had untuk semua titik akhir adalah 128 deklarasi, termasuk peraturan binaan dan pendaftaran dari mod lain. Identifikasi boleh mengandungi sehingga 255 aksara ASCII menggunakan sintaks identifikasi nama ruang API.
RakNet peers menukar deklarasi semasa proses penyambungan. Sebuah pelayan atau proksi boleh menggunakan deklarasi peer tersebut apabila tiada peraturan tempatan untuk payload tersebut. Peraturan tempatan lebih diutamakan, dan deklarasi peer tersebut hanya terhad kepada sambungan tersebut.
Sila rujuk UDP forwarding dan PROXY protocol untuk maklumat mengenai UDP relay dan alamat klien yang dihantar.
Untuk tetapkan proxy Minecraft, sila lihat Velocity dan BungeeCord.