Skip to content

Wiki hi in

pjscruggs edited this page Nov 11, 2026 · 1 revision

Raknetify2 · हिंदी (भारत)

भाषा

बहुखिलाड़ी

Minecraft क्लाइंट और सर्वर के लिए RakNet के ज़रिए नेटवर्क कनेक्शन।

अधःभारण · GitHub

Minecraft Raknetify2 क्लाइंट / सर्वर
Fabric mods/raknetify2-fabric-*.jar क्लाइंट / सर्वर
Forge mods/raknetify2-forge-*.jar क्लाइंट / सर्वर
NeoForge mods/raknetify2-neoforge-*.jar क्लाइंट / सर्वर
Spigot / Paper plugins/raknetify2-spigot-*.jar सर्वर
Velocity plugins/raknetify2-velocity-*.jar Velocity
BungeeCord plugins/raknetify2-bungee-*.jar BungeeCord

परिसेवक जोड़ें

  1. बहुखिलाड़ी

  2. परिसेवक जोड़ें

  3. परिसेवक का पता

    परिसेवक का पता
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. पूर्ण

  5. परिसेवक में शामिल हो जाए

F3 · Raknetify2

F3
RakNet · UDP सक्रिय · MTU 1400
TCP निष्क्रिय

Velocity / BungeeCord

  1. क्लाइंट · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. Velocity / BungeeCord → TCP → सर्वर
पोर्ट संख्या · UDP Java
Fabric / Forge / NeoForge 1–65534 -Draknetify.fabric.portOverride=25570
Spigot / Paper ≥ 0.1.0-beta.1.431 1–65535 -Draknetify.spigot.portOverride=25570
Velocity 1–65534 -Draknetify.velocity.portOverride=25570
BungeeCord 1–65534 -Draknetify.bungee.portOverride=25570

वक्त समााप्त

परिसेवक का पता UDP
raknet;play.example.com:25580 play.example.com:25580 → NAT → 192.0.2.10:25570
सर्वर · 192.0.2.10 25570/udp

config/raknetify2-compatibility.json

सर्वर / Velocity / BungeeCord

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

Simple Voice Chat

सर्वर Raknetify2 · UDP 25565 Simple Voice Chat
Fabric / Forge / NeoForge config/raknetify2-voicechat.json · {"enabled":true} config/voicechat/voicechat-server.properties · port=-1
Spigot / Paper config/raknetify2-voicechat.json · {"enabled":true} plugins/voicechat/voicechat-server.properties · port=-1

Simple Voice Chat · Velocity / BungeeCord

PROXY protocol v2 · UDP

परिसेवक का पता trustedProxies RakNet
192.0.2.10 · PROXY v2 / UDP ["192.0.2.10"] ✓
192.0.2.11 · PROXY v2 / UDP ["192.0.2.10"] ✗
क्लाइंट → RakNet / UDP ["192.0.2.10"] ✗

config/raknetify2-proxy-protocol.json

{"trustedProxies":["192.0.2.10"]}

Minecraft ≥ 1.20.5 · /transfer

  1. सर्वर A · Fabric / Forge / NeoForge · config/raknetify2-transfers.json

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

  3. सर्वर A · /transfer play.example.com 25565 Alex → क्लाइंट (Alex) → RakNet · play.example.com:25570

PacketOrdering

Minecraft
ui विकल्पों
entity कंकाल
world_interaction वस्तुसूची
effects कणों
chunk प्रखंड

PacketOrdering.java

असंगत संस्करण!

दोष को रिपोर्ट करें

होम

Raknetify2

Minecraft में मल्टीप्लेयर के लिए Raknetify2, UDP पर RakNet का इस्तेमाल करता है। यह नेटवर्क ट्रैफ़िक को अलग-अलग चैनलों में बाँटता है। हर चैनल में पैकेट अपना क्रम बनाए रखते हैं। अगर एक चैनल का पैकेट खो जाए, तो दूसरे चैनलों का डेटा फिर भी आ सकता है। इससे खोया हुआ डेटा दोबारा मँगाते समय या चंक भेजते समय भी खेल आपकी गतिविधियों का तुरंत जवाब दे सकता है।

Raknetify2, Raknetify का एक स्वतंत्र रूप से संचालित फोर्क है, जिसे मूल रूप से ishland द्वारा विकसित किया गया था। इस फोर्क में नई Minecraft संस्करणों का समर्थन शामिल है, एवं ट्रांसपोर्ट, प्लेटफॉर्म एकीकरण एवं सुसंगतता परीक्षणों का भी ध्यान रखा जाता है।

शुरुआत करें.

  1. देखें कि Minecraft और मॉड के कौन-से संस्करण साथ काम करते हैं।
  2. डाउनलोड करें और इसे इंस्टॉल करें.
  3. raknet;play.example.com जैसे पते से जुड़ें।

सर्वर निर्देश

मॉड बनाने वाले पैकेट का क्रम तय करने वाले इंटरफ़ेस से बता सकते हैं कि उनके कस्टम पेलोड और Minecraft के नेटवर्क डेटा को किस क्रम में पहुँचना चाहिए।

प्रोजेक्ट लिंक्स

Raknetify2, MIT लाइसेंस का उपयोग करता है एवं मूल कॉपीराइट सूचनाओं को बरकरार रखता है। इसका नेटवर्किंग कार्यान्वयन Raknetify एवं netty-raknet पर आधारित है।

इंस्टॉलेशन

GitHub Releases से रिलीज़ डाउनलोड करें। इंस्टॉल करने से पहले उस रिलीज़ के Minecraft संस्करण एवं लोडर आवश्यकताओं की जाँच करें।

जहाँ आप इंस्टॉल कर रहे हैं। फ़ाइल फोल्डर
Fabric क्लाइंट या सर्वर raknetify2-fabric-*.jar mods
Forge क्लाइंट या सर्वर raknetify2-forge-*.jar mods
NeoForge क्लाइंट या सर्वर raknetify2-neoforge-*.jar mods
Spigot या Paper सर्वर raknetify2-spigot-*.jar plugins
Velocity प्रॉक्सी raknetify2-velocity-*.jar plugins
BungeeCord प्रॉक्सी raknetify2-bungee-*.jar plugins

JAR को बदलने से पहले क्लाइंट को बंद करें या सर्वर को रोक दें। नई फ़ाइल जोड़ने से पहले, उसी इंस्टॉलेशन से मूल Raknetify JAR एवं कोई भी पुराना Raknetify2 JAR हटा दें।

क्लाइंट फोल्डर, उस Minecraft इंस्टेंस या मॉडपैक से संबंधित होते हैं जिसे आप लॉन्च करते हैं। सर्वर एवं प्रॉक्सी फोल्डर, उस सर्वर या प्रॉक्सी इंस्टॉलेशन से संबंधित होते हैं। यदि आपके लोडर ने अभी तक कोई फोल्डर नहीं बनाया है, तो उचित फोल्डर बनाएं।

सीधे सर्वर संबंध

  1. अपने लोडर के लिए क्लाइंट मॉड इंस्टॉल करें।
  2. संगत सर्वर पर मैचिंग सर्वर मॉड या Spigot/Paper प्लगइन इंस्टॉल करें।
  3. सर्वर तक UDP कनेक्शनों की अनुमति देने हेतु फायरवॉल और राउटर कॉन्फ़िगरेशन का पालन करें।
  4. क्लाइंट और सर्वर को पुनः शुरू करें।
  5. raknet;play.example.com या raknet;play.example.com:25565 जैसा सर्वर पता जोड़ें।

raknet; प्रीफ़ॉस्ट वाले पतों का उपयोग TCP के माध्यम से किया जाता है।

क्लाइंट मॉड को अकेले इंस्टॉल करने से दूरस्थ सर्वर में RakNet सपोर्ट नहीं जुड़ता। सर्वर ऑपरेटर को एक RakNet एंडपॉइंट प्रदान करना होगा। जो खिलाड़ी किसी अन्य सर्वर में शामिल होते हैं, उन्हें आमतौर पर इनबाउंड राउटर फॉरवर्डिंग नियमों की आवश्यकता नहीं होती।

Velocity और BungeeCord

संबंधित प्रॉक्सी प्लगइन एवं क्लाइंट मॉड को इंस्टॉल करें। लिस्टन सेटिंग्स, बैकएंड फॉरवर्डिंग, एक्सेस प्रतिबंध, एवं प्लेयर्स को उपयोग करने वाला पता जानने हेतु Velocity एवं BungeeCord का उपयोग करें।

एक अलग UDP लिस्टन पोर्ट

एक सीधे Minecraft सर्वर के लिए, नीचे उचित Java आर्गुमेंट सेट करें। प्रॉक्सी ऑपरेटरों को Velocity और BungeeCord लिस्टनर सेटिंग्स का उपयोग करना चाहिए।

प्लेटफॉर्म जावा आर्गुमेंट स्वीकृत पोर्ट्स
Fabric, Forge, या NeoForge सर्वर -Draknetify.fabric.portOverride=25570 1 से 65534 तक
Spigot या Paper सर्वर -Draknetify.spigot.portOverride=25570 1 से 65535 तक

Forge और NeoForge साझा श्रोता कोड का उपयोग करते हैं, इसलिए उनके गुण नाम में भी fabric होता है। 25570 को वांछित UDP पोर्ट से बदलें।

Spigot / Paper ≥ 0.1.0-beta.1.431

जावा कमांड में -jar से पहले आर्गुमेंट जोड़ें, या अपने होस्ट के JVM आर्गुमेंट फील्ड में जोड़ें। सर्वर को पुनः शुरू करें और चुने गए लिस्टर पोर्ट पर UDP की अनुमति दें। यदि पब्लिक पोर्ट भी 25570 है, तो raknet;play.example.com:25570 से कनेक्ट करें। यदि राउटर पोर्ट को अनुवादित करता है, तो क्लाइंट एड्रेस में उसका पब्लिक पोर्ट उपयोग करें। TCP पोर्ट अपने मौजूदा मान पर रहेगा।

Spigot/Paper पर, UDP लिस्टर Minecraft TCP लिस्टर के लोकल बाइंड एड्रेस को संरक्षित रखता है। अमान्य ओवरराइड या उपयोग में आया UDP पोर्ट RakNet को शुरू करने से रोकता है। बाउंड UDP एड्रेस और पोर्ट के लिए स्टार्टअप लॉग की जाँच करें। TCP लिस्टर के पोर्ट नंबर पर वापस जाने के लिए आर्गुमेंट हटाकर पुनः शुरू करें।

एक राउटर या UDP प्रॉक्सी, विभिन्न सार्वजनिक UDP पोर्ट प्रदान कर सकता है एवं उसे सर्वर के जावा आर्गुमेंट्स को बदले बिना मौजूदा लिस्टनर तक पहुँचा सकता है।

विकासात्मक बिल्ड्स

GitHub Actions में एक सफल main रन खोलें और उसका Artifacts आर्काइव डाउनलोड करें। GitHub को वर्कफ्लो आर्काइव डाउनलोड करने हेतु अकाउंट आवश्यक है। ऊपर दी गई इंस्टॉलेशन तालिका का उपयोग करके आर्काइव से एक JAR चुनें।

Velocity और BungeeCord

Velocity और BungeeCord खिलाड़ियों और बैकएंड Minecraft सर्वरों के बीच स्थित होते हैं। RakNet के माध्यम से कनेक्ट होने वाले प्रत्येक क्लाइंट और प्रॉक्सी पर Raknetify2 स्थापित करें।

Raknetify2 क्लाइंट --UDP--> Velocity या BungeeCord --TCP--> बैकएंड सर्वर

इस कनेक्शन पथ के लिए बैकएंड सर्वरों को Raknetify2 की आवश्यकता नहीं है। उन्हें अभी भी आपके नेटवर्क द्वारा आवश्यक मॉड, प्लगइन और फॉरवर्डिंग समर्थन की आवश्यकता है। Raknetify2 Minecraft संस्करणों का अनुवाद नहीं करता है या प्रॉक्सी की खाता प्रमाणीकरण को नहीं बदलता है।

प्रॉक्सी प्लगइन इंस्टॉल करें।

  1. सुनिश्चित करें कि आपके प्रॉक्सी के माध्यम से सामान्य TCP कनेक्शन सही ढंग से काम कर रहे हैं, जिसमें प्रमाणीकरण एवं बैकएंड सर्वरों के बीच स्विचिंग भी शामिल है।
  2. प्रॉक्सी को बंद करें और GitHub Releases से संबंधित प्लगइन डाउनलोड करें।
  3. raknetify2-velocity-*-all.jar या raknetify2-bungee-*-all.jar को प्रॉक्सी के plugins फोल्डर में रखें। उस फोल्डर से पुराने कोई भी Raknetify या Raknetify2 प्लगइन हटा दें।
  4. इंस्टॉलेशन गाइड का उपयोग करके उपयुक्त Raknetify2 क्लाइंट मॉड इंस्टॉल करें।
  5. नीचे दिए गए लिस्टन सेटिंग्स की जाँच करें, प्रॉक्सी को पुनः शुरू करें, एवं RakNet लिस्टन समस्याओं के लिए उसकी लॉग फ़ाइल देखें।
  6. प्रॉक्सी के लिए सार्वजनिक UDP ट्रैफिक की अनुमति दें, एवं फायरवॉल एवं राउटर कॉन्फ़िगरेशन में वर्णित तरीके के अनुसार बैकएंड गेमप्ले पोर्ट्स पर प्रतिबंध लगाएं।

क्लाइंट एवं प्रॉक्सी पर सुसंगत Raknetify2 संस्करणों का उपयोग करें। संस्करणों को मिलाने से पहले सुसंगतता की जाँच करें।

Velocity

velocity.toml में bind सेटिंग, Velocity के Minecraft लिस्टिंग एड्रेस एवं TCP पोर्ट को चुनती है। Raknetify2 आमतौर पर UDP के लिए एक ही पोर्ट नंबर का उपयोग करता है। [servers] प्रविष्टियाँ बैकएंड सर्वरों को पहचानती हैं. इन प्रविष्टियों को बैकएंड TCP एड्रेसों की ओर इंगित किया जाना चाहिए। Velocity की कॉन्फ़िगरेशन संदर्भ देखें।

अलग एक UDP पोर्ट का उपयोग करने हेतु, Velocity के स्टार्टअप कमांड में -jar से पहले इस JVM आर्गुमेंट को जोड़ें:

-Draknetify.velocity.portOverride=25570

25570 को अपने चुने हुए पोर्ट से बदल दें। इससे RakNet UDP पोर्ट बदल जाएगा, लेकिन Velocity का TCP पोर्ट एवं बैकएंड पते वैसे ही रहेंगे। आपके द्वारा चुने गए पोर्ट को बदलने के बाद Velocity को पुनः शुरू करें।

Velocity और उसके बैकएंड दोनों पर खिलाड़ी फॉरवर्डिंग कॉन्फ़िगर करें। जब बैकएंड सॉफ़्टवेयर इसका समर्थन करता है तो आधुनिक फॉरवर्डिंग का उपयोग करें, और इसकी फॉरवर्डिंग गुप्त को निजी रखें। Velocity के खिलाड़ी सूचना फॉरवर्डिंग गाइड में बैकएंड-विशिष्ट निर्देशों का पालन करें। फॉरवर्डिंग के साथ-साथ बैकएंड फ़ायरवॉल प्रतिबंधों को लागू रखें।

BungeeCord

BungeeCord के config.yml में, प्रत्येक listeners प्रविष्टि के नीचे host मान, एक Minecraft सुनने वाला पता एवं TCP पोर्ट को पहचानता है। Raknetify2 आमतौर पर उस पोर्ट नंबर पर UDP भी जोड़ता है। servers प्रविष्टियाँ बैकएंड TCP पतों को रखती हैं। ये सेटिंगें BungeeCord कॉन्फ़िगरेशन गाइड में वर्णित हैं।

BungeeCord के स्टार्टअप कमांड में -jar से पहले एक अलग UDP पोर्ट के लिए, निम्नलिखित JVM आर्गुमेंट जोड़ें:

-Draknetify.bungee.portOverride=25570

ओवरराइड पूरे प्रॉक्सी प्रक्रिया से संबंधित है। कई Minecraft श्रोताओं के साथ कॉन्फ़िगरेशन के लिए, फ़ायरवॉल नियम जोड़ने से पहले स्टार्टअप लॉग में वास्तविक RakNet एंडपॉइंट की जाँच करें। तर्क बदलने के बाद BungeeCord को पुनरारंभ करें।

प्रॉक्सी पर खाता प्रमाणीकरण को बनाए रखें। Spigot बैकएंड के लिए, BungeeCord का IP फॉरवर्डिंग गाइड प्रॉक्सी पर ip_forward: true को बैकएंड पर settings.bungeecord: true के साथ जोड़ता है। केवल फॉरवर्डिंग से कोई व्यक्ति सीधे बैकएंड से जुड़ने से रोक नहीं सकता। फायरवॉल निर्देशों का उपयोग करके बैकएंड तक पहुँच को प्रतिबंधित करें।

प्लेयर्स द्वारा उपयोग की जाने वाली पता को चुनें।

दोनों प्रॉक्सी ओवरराइड, 1 से 65534 तक के पोर्ट स्वीकार करते हैं। अमान्य मानों को नजरअंदाज कर दिया जाता है, इसलिए स्टार्टअप लॉग में बंधे UDP पोर्ट की जाँच करें। आर्गुमेंट हटाकर फिर से शुरू करें ताकि Minecraft लिस्टनर के पोर्ट नंबर पर वापस आ सके।

खिलाड़ी प्रॉक्सी के सार्वजनिक होस्टनाम एवं UDP पोर्ट से जुड़ते हैं, उदाहरण के लिए raknet;play.example.com:25570。 जब राउटर पोर्ट्स का रूपांतरण करता है, तो क्लाइंट एड्रेस में उसका सार्वजनिक UDP पोर्ट ही उपयोग में आता है। जिन एड्रेसों में raknet; प्रीफ़िक्स नहीं है, वे प्रॉक्सी के TCP लिस्टनर का ही उपयोग करते रहते हैं।

प्रश्न छोड़ें, Geyser एवं अन्य UDP सेवाओं को अलग-अलग UDP पोर्टों पर रखें। अलग-अलग TCP पोर्ट UDP सॉकेट संघर्ष को सुलझाने में मदद नहीं करता।

वॉयस चैट और अतिरिक्त UDP फॉरवर्डिंग

Simple Voice Chat अपने स्वयं के प्रॉक्सी प्लगइन और Velocity और BungeeCord पर UDP पोर्ट का उपयोग करता है। उस सेटअप के लिए Voice Chat प्रॉक्सी मार्गदर्शन का पालन करें।

यदि आपके Minecraft प्रॉक्सी के सामने एक अलग UDP रिले मौजूद है एवं वह PROXY प्रोटोकॉल v2 हेडर भेज रहा है, तो Raknetify2 को UDP फॉरवर्डिंग एवं PROXY प्रोटोकॉल के साथ कॉन्फ़िगर करें। Velocity या BungeeCord की स्थापना करते समय ऐसी कोई कॉन्फ़िगरेशन आवश्यक नहीं है।

कनेक्शन की जाँच करें।

अपने स्थानीय नेटवर्क के बाहर Raknetify2 क्लाइंट का उपयोग करके परीक्षण करें। प्रॉक्सी के माध्यम से जुड़ें, उपयोग किए जाने वाले बैकएंड सर्वरों के बीच बदलाव करें, एवं यह सुनिश्चित करें कि प्लेयर की पहचान एवं अनुमतियाँ सही रहें।

  • यदि प्रॉक्सी के माध्यम से TCP काम कर रहा है, लेकिन RakNet टाइमआउट कर रहा है, तो प्रॉक्सी के UDP लिस्टर, सार्वजनिक पोर्ट, IPv4 एवं IPv6 रूटों, एवं फायरवॉल नियमों की जाँच करें।
  • यदि प्रॉक्सी बैकएंड से कनेक्ट होने में दोनों ट्रांसपोर्ट असफल हो जाते हैं, तो बैकएंड का TCP पता, एक्सेस नियम एवं प्लेयर फॉरवर्डिंग कॉन्फ़िगरेशन जाँचें।
  • यदि प्रॉक्सी UDP पोर्ट को व्यस्त बताता है, तो Query, Geyser, वॉयस प्रॉक्सी, या उससे जुड़ी कोई अन्य प्रक्रिया की जाँच करें।

रिपोर्टों के लिए, एक ही कनेक्शन प्रयास से प्रॉक्सी एवं बैकएंड लॉग दोनों शामिल करें। संदर्भ जानने हेतु Troubleshooting देखें।

फायरवॉल एवं राउटर कॉन्फ़िगरेशन

यह गाइड सर्वर ऑपरेटरों के लिए है। Raknetify2 के लिए सर्वर या प्रॉक्सी को RakNet कनेक्शन स्वीकार करने हेतु कार्यशील UDP रूट आवश्यक है। डिफॉल्ट सेटअप में Minecraft के TCP लिस्टर के समान पोर्ट नंबर का उपयोग किया जाता है।

उसी स्थानीय नेटवर्क पर मौजूद खिलाड़ियों के लिए, सर्वर का स्थानीय पता उपयोग करें एवं उसके होस्ट फायरवॉल के माध्यम से UDP को अनुमति दें। जब इंटरनेट ट्रैफिक को आपके राउटर के IPv4 NAT से गुजारना हो, तो राउटर पोर्ट फॉरवर्डिंग आवश्यक है।

गंतव्य और पोर्ट चुनें।

सीधा सर्वर

Raknetify2 के साथ Minecraft सर्वर चलाने वाले मशीन पर सार्वजनिक UDP ट्रैफिक भेजें। गंतव्य पोर्ट उस सर्वर का RakNet UDP लिसनर है। सर्वर मशीन के होस्ट फायरवॉल में उस पोर्ट को अनुमति दें। सामान्य Minecraft कनेक्शनों के लिए उसका मौजूदा TCP रूट बनाए रखें।

उदाहरण के लिए, यदि Raknetify2 UDP 25570 पर सुनता है, तो पब्लिक UDP पोर्ट को सर्वर के स्थानीय पते पर पोर्ट 25570 पर फॉरवर्ड करें। सर्वर का TCP पोर्ट 25565 पर रह सकता है। अलग UDP पोर्ट चुनने हेतु डायरेक्ट-सर्वर लिस्टनर सेटिंग्स देखें।

Velocity या BungeeCord

Raknetify2 प्रॉक्सी प्लगइन के साथ, Velocity या BungeeCord चलाने वाले मशीन पर सार्वजनिक UDP ट्रैफिक भेजें। प्रॉक्सी के RakNet UDP लिसनर को फॉरवर्डिंग डेस्टिनेशन के रूप में उपयोग करें। सामान्य Minecraft कनेक्शनों के लिए प्रॉक्सी का मौजूदा सार्वजनिक TCP रूट बरकरार रखें।

प्रॉक्सी बैकएंड Minecraft सर्वरों से TCP पर कनेक्ट होता है। प्रॉक्सी में Raknetify2 जोड़ना खिलाड़ियों के लिए बैकएंड गेमप्ले UDP पोर्ट खोलने की आवश्यकता नहीं रखता है।

कनेक्शन एक्सेस को अनुमति देना
प्रॉक्सी पर आने वाले खिलाड़ी। RakNet लिस्टर के लिए सार्वजनिक UDP, साथ ही मौजूदा सार्वजनिक TCP लिस्टर।
बैकएंड सर्वरों तक प्रॉक्सी बैकएंड Minecraft सर्वरों के TCP पोर्ट, जिन तक केवल तय किए गए प्रॉक्सी होस्ट पहुँच सकें
खिलाड़ी सीधे बैकएंड गेमप्ले पोर्ट्स पर जाएँ। ब्लॉक करें, IPv6 के माध्यम से भी।

जब प्रॉक्सी एवं बैकएंड सीधे आपके नियंत्रित विशेष मशीन पर चलते हैं, तो बैकएंड लिसनर लूपबैक एड्रेसों का उपयोग कर सकते हैं, जिससे प्रॉक्सी उन्हें वहाँ पहुँच सकता है। विभिन्न मशीनों के बीच, बैकएंड TCP एक्सेस को प्रॉक्सी होस्ट तक पहुँचने से रोकने हेतु फायरवॉल या अलग-थलग निजी नेटवर्क का उपयोग करें। कंटेनरों एवं प्रबंधित होस्टों के लिए भी उनके नेटवर्क लेआउट पर समान प्रतिबंध आवश्यक हैं। Velocity के बैकएंड सुरक्षा गाइड एवं BungeeCord के फायरवॉल गाइड देखें।

प्लेयर फॉरवर्डिंग और फायरवॉल प्रतिबंध एक साथ काम करते हैं। डायरेक्ट बैकएंड एक्सेस प्रॉक्सी के लॉगिन चेकों को पार कर सकता है। प्लगइन इंस्टॉलेशन, फॉरवर्डिंग सेटिंग्स और UDP पोर्ट ओवरराइड के लिए, Velocity और BungeeCord का अनुसरण करें।

सार्वजनिक एवं स्थानीय पोर्ट नंबर

जब राउटर उनके बीच संदेशों का अनुवाद करता है, तो पब्लिक पोर्ट एवं लिस्टनर का पोर्ट अलग-अलग हो सकता है।

सेटिंग्स उपयोग करने वाला पोर्ट
क्लाइंट-सर्वर पता सार्वजनिक UDP पोर्ट
राउटर फॉरवर्डिंग नियम का बाहरी पोर्ट सार्वजनिक UDP पोर्ट
राउटर फॉरवर्डिंग नियम का आंतरिक पोर्ट RakNet लिस्टनर का UDP पोर्ट
होस्ट फायरवॉल का स्थानीय पोर्ट RakNet लिस्टनर का UDP पोर्ट

IPv4 पोर्ट फॉरवर्डिंग

IPv4 राउटर के पीछे होस्टिंग के लिए:

  1. RakNet कनेक्शन स्वीकार करने वाले मशीन का स्थानीय IPv4 पता खोजें। DHCP रिज़र्वेशन या उपयुक्त स्थिर पता का उपयोग करें, ताकि फॉरवर्डिंग नियम लगातार उसी मशीन को लक्षित करता रहे।
  2. जिस पब्लिक पोर्ट के उपयोग प्लेयर्स करेंगे, उसके लिए UDP फॉरवर्डिंग नियम जोड़ें।
  3. नियम का गंतव्य उस मशीन के स्थानीय पते एवं RakNet लिस्टर के UDP पोर्ट पर सेट करें।
  4. होस्ट फायरवॉल में लिस्टनर पोर्ट पर इनबाउंड UDP को अनुमति दें।

उदाहरण के लिए, UDP पोर्ट 25565 पर सुनने वाला सर्वर, पब्लिक पोर्ट 25565, गंतव्य पता 192.168.1.100 एवं गंतव्य पोर्ट 25565 वाले नियम का उपयोग कर सकता है। उदाहरण पते को अपने सर्वर के वास्तविक स्थानीय पते से बदलें।

सामान्य Minecraft कनेक्शन के लिए मौजूदा TCP नियम बनाए रखें। केवल TCP फ़ॉरवर्ड करने से UDP ट्रैफ़िक आगे नहीं जाएगा।

जब फॉरवर्डिंग फिर भी विफल हो जाती है।

ट्रैफिक आपके राउटर तक पहुँचने से पहले यह जाँचें कि क्या कोई अन्य राउटर या आपका ISP NAT कर रहा है। दो राउटरों के साथ, फॉरवर्डिंग दोनों पर होनी चाहिए। यदि आपका ISP कैरियर-ग्रेड NAT का उपयोग कर रहा है, तो पूछें कि क्या वह एक पब्लिक IPv4 एड्रेस प्रदान कर सकता है, या कोई होस्टिंग सेवा/टनल उपयोग कर सकता है जो इनबाउंड UDP का समर्थन करता है। आपके राउटर की फॉरवर्डिंग नियम ISP के NAT को कॉन्फ़िगर नहीं कर सकते। पब्लिक WAN एड्रेस की आवश्यकता के लिए TP-Link की पोर्ट फॉरवर्डिंग दिशानिर्देश देखें।

IPv6 फायरवॉल नियम/नियमावली

चयनित UDP पोर्ट को राउटर के IPv6 फायरवॉल एवं होस्ट फायरवॉल दोनों के माध्यम से अनुमति दें। RakNet कनेक्शन स्वीकार करने वाले मशीन का IPv6 पता लक्षित करें।

जाँचें कि होस्टनाम के IPv6 पता उस मशीन को संकेत देता है या नहीं। यदि उसका IPv6 पता बदल जाता है, तो DNS रिकॉर्ड एवं किसी भी पते-विशिष्ट फायरवॉल नियमों को अपडेट करें।

ऐसा होस्टनेम जो IPv4 एवं IPv6 दोनों पतों को प्रकाशित करता है, को प्रत्येक प्रचारित पते के लिए एक कार्यशील रूट की आवश्यकता होती है। जब एक खिलाड़ी कनेक्ट हो सकता है लेकिन दूसरा नहीं, तो दोनों नियमों की जाँच करें।

यदि IPv4 फॉरवर्डिंग से पोर्ट नंबर बदल जाता है, तो सुनिश्चित करें कि पोर्ट प्लेयर्स भी IPv6 लिस्टन तक पहुँच सकें। IPv4 पोर्ट अनुवाद से IPv6 रूट कॉन्फ़िगर नहीं होता।

होस्टिंग प्रदाता एवं टनल्स

प्रदाता या टनल को आपके द्वारा खिलाड़ियों को दिए गए सार्वजनिक एंडपॉइंट पर UDP का समर्थन करना आवश्यक है। इसके पोर्ट आवंटन, नेटवर्क फायरवॉल नियमों, तथा सर्वर के अपने फायरवॉल की जाँच करें।

यदि कोई अतिरिक्त UDP प्रॉक्सी PROXY प्रोटोकॉल v2 का उपयोग करके क्लाइंट पतों को फॉरवर्ड करता है, तो UDP फॉरवर्डिंग एवं PROXY प्रोटोकॉल का पालन करें, एवं रिसीविंग UDP लिस्टन तक पहुँच केवल विश्वसनीय प्रॉक्सी तक ही सीमित रखें।

कनेक्शन की जाँच करें।

सर्वर के स्थानीय नेटवर्क के बाहर, अद्यतन Raknetify2 क्लाइंट का उपयोग करके, raknet;play.example.com:25565 जैसे पते का उपयोग करके कनेक्ट करें। इस पते में सार्वजनिक UDP पोर्ट का उपयोग करें।

रूट की जाँच करने हेतु वास्तविक RakNet कनेक्शन का उपयोग करें। ऐसा UDP स्कैन जिसे कोई प्रतिक्रिया न मिले, अनिश्चित परिणाम दे सकता है, क्योंकि कार्यशील सेवा अज्ञात प्रोब को खारिज कर सकती है। Nmap के UDP स्कैन दस्तावेज़ इस व्यवहार को समझाता है।

एक सफल TCP कनेक्शन केवल TCP रूट की पुष्टि करता है। यदि RakNet टाइमआउट करता है, तो ट्रबलशूटिंग गाइड का उपयोग करके लिस्टनर, फॉरवर्डिंग डेस्टिनेशन, UDP पोर्ट एवं फायरवॉल नियमों की जाँच करें।

सुसंगतता

जिस विशेष रिलीज़ को आप डाउनलोड कर रहे हैं, उसकी संगतता जाँचें। विकास बिंदु में ऐसी सुविधाएँ हो सकती हैं जो अभी तक किसी रिलीज़ में शामिल नहीं हुई हैं।

Minecraft और Java के संस्करण

Fabric के लिए उसी रिलीज़ से compatibility.json डाउनलोड करें जिससे आपने JAR लिया था। gameVersions में अपना Minecraft संस्करण देखें। फिर runtimes में संबंधित प्रविष्टि के अंतर्गत depends में दी गई ज़रूरतें जाँचें। यह JSON फ़ाइल केवल जानकारी के लिए है। इसे mods फ़ोल्डर में रखने की ज़रूरत नहीं है।

Forge, NeoForge, एवं Spigot/Paper के लिए, आर्टिफैस्ट एवं उसकी डाउनलोड लिस्ट में बताए गए संस्करण आवश्यकताओं को ध्यान में रखें। एक लोडर पर मिलने वाली सहायता, दूसरे लोडर पर भी मिलने वाली सहायता नहीं होगी।

Raknetify2 द्वारा घोषित जावा आवश्यकताएँ न्यूनतम हैं। Minecraft या लोडर को नए रनटाइम की आवश्यकता हो सकती है। ऐसा जावा संस्करण चुनें जो इन तीनों आवश्यकताओं को पूरा करे।

क्लाइंट एवं सर्वर संस्करण

संभव होने पर क्लाइंट एवं सर्वर या प्रॉक्सी दोनों पर Raknetify2 संस्करण का उपयोग करें। विभिन्न संस्करणों को मिलाने से पहले रिलीज़ नोट्स चेक करें। एन्क्रिप्टेड RakNet कनेक्शनों के लिए दोनों ओर प्रमाणित एन्क्रिप्शन प्रोटोकॉल का समर्थन आवश्यक है। उस प्रोटोकॉल के लागू होने से पहले बनाए गए Raknetify एवं Raknetify2 संस्करण, अपडेटेड पीयरों के साथ ऐसे एन्क्रिप्टेड कनेक्शन नहीं बना सकते।

Raknetify2, Minecraft के मौजूदा गेम प्रोटोकॉल को ले जाता है। विभिन्न Minecraft संस्करणों को कनेक्ट करने हेतु सुसंगत प्रोटोकॉल अनुवाद सेटअप की आवश्यकता होती है।

अन्य मॉड्स

बिल्ड वर्कफ्लो में पॉलिमर, क्रिप्टॉन, पैकेटफिक्सर एवं फास्ट आईपी पिंग से संबंधित संगतता जाँचें शामिल हैं। ये जाँचें वर्कफ्लो द्वारा चुने गए संस्करणों एवं संयोजनों को शामिल करती हैं। किसी विशेष संयोजन की जाँच करते समय किसी रिलीज़ से संबंधित बिल्ड परिणामों की जाँच करें।

बड़े मॉडपैक में किसी खराबी के मामले में, ट्रबलशूटिंग गाइड का अनुसरण करें। अपनी रिपोर्ट में सभी मॉड संस्करणों का उल्लेख करें।

क्रमबद्ध मोड

क्रमबद्ध मोड

आम तौर पर, Raknetify2 ऐसे स्वतंत्र पैकेट चैनलों को जारी रखने की अनुमति देता है, जबकि एक चैनल लापता डेटा का इंतजार कर रहा होता है। ऑर्डरेबल मोड में सभी Minecraft पैकेट एक ही चैनल पर आते हैं, इसलिए लापता पैकेट उस दिशा में आने वाले सभी पैकेटों को रोक देता है, जब तक कि उसे पुनः भेजा न जाए। इससे कुछ एंटी-चीट सॉफ्टवेयरों द्वारा अपेक्षित क्रम बना रहता है, लेकिन इससे Raknetify2 की क्षमता घट जाती है कि वह इस इंतजार के दौरान असंबंधित गेम ट्रैफिक को चलाए।

आदेशित मोड सक्षम करना

  1. सर्वर या प्रॉक्सी पर RakNet कनेक्शन स्वीकार करने वाले Raknetify2 बिल्ड को इंस्टॉल करें, तथा प्रत्येक RakNet क्लाइंट पर भी।

  2. उस सर्वर या प्रॉक्सी के वर्किंग डायरेक्टरी के अंतर्गत config/raknetify2-compatibility.json फ़ाइल बनाएं। यदि config डायरेक्टरी मौजूद न हो, तो उसे बनाएं।

  3. नीचे दिए गए कोड को जोड़ें:

    {"mode": "ordered"}
  4. सर्वर या प्रॉक्सी को पुनः शुरू करें।

क्लाइंट, सर्वर की सेटिंगों का आपसे स्वचालित रूप से पालन करते हैं। खिलाड़ियों को कोई कॉन्फ़िगरेशन फ़ाइल बनाने या अपने RakNet सर्वर पते को बदलने की आवश्यकता नहीं है।

सभी Minecraft पैकेट प्रत्येक दिशा में एक विश्वसनीय क्रमबद्ध चैनल का उपयोग करते हैं, जिसमें बंडल विभाजक और दुनिया परिवर्तन शामिल हैं।

प्रॉक्सी सेटअप्स

जब खिलाड़ी Velocity या BungeeCord के माध्यम से जुड़ते हैं, तो उस प्रॉक्सी पर ऑर्डरेबल मोड सेट करें, चाहे एंटी-चीट बैकएंड सर्वर पर चल रहा हो।

यह नीति सभी बैकएंड स्विचों पर लागू होती है। ऑर्डरड टाइप में, प्रॉक्सी बैकएंड कीलाइव-रिक्वेस्टों को स्थानीय रूप से उत्तर न देकर वास्तविक क्लाइंट को भेज देता है।

सेटिंगों की जाँच करना

पहले RakNet कनेक्शन पर, कंसोल से निम्नलिखित सूचना मिलती है:

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

सफल सुसंगतता विनिमय के दौरान ordered compatibility negotiated लिखा जाता है, उसके बाद साथी का पता आता है।

एंटी-चीट जाँचें सक्रिय रखें एवं अपनी विशेष सेटिंगों को सत्यापित करें।

पुराने क्लाइंट्स

जो RakNet क्लाइंट्स ऑर्डरेबल मोड का समर्थन नहीं करते, वे उस सर्वर से कनेक्ट नहीं हो सकते जिसमें यह आवश्यक है। ऐसे क्लाइंट्स पर Raknetify2 को अपडेट करें, या raknet; प्रीफ़िक्स के बिना सर्वर या प्रॉक्सी का सामान्य TCP पता एवं पोर्ट उपयोग करके कनेक्ट करें।

मल्टीचैनल मोड में वापस आना

फ़ाइल को इस प्रकार बदलें:

{"mode": "multichannel"}

फिर सर्वर या प्रॉक्सी को पुनः शुरू करें। फ़ाइल हटाने से पुनः शुरू करने के बाद मल्टीचैनल मोड भी बहाल हो जाता है।

कॉन्फ़िगरेशन समस्याएँ

फ़ाइल में ठीक एक mode नामक सेटिंग होनी चाहिए, जिसका मान "ordered" या "multichannel" होना चाहिए। इन मानों पर अक्षर-संवेदनशीलता महत्वपूर्ण है।

अमान्य या अव्यवहार्य कॉन्फ़िगरेशन के कारण RakNet कनेक्शन असफल हो जाते हैं। फ़ाइल को सही करें और प्रक्रिया को पुनः शुरू करें।

यदि कंसोल अभी भी multichannel दर्शाता है, तो सुनिश्चित करें कि फ़ाइल सर्वर या प्रॉक्सी के वर्किंग डायरेक्टरी में है, जो RakNet कनेक्शन को स्वीकार करता है, फिर उस प्रक्रिया को पुनः शुरू करें।

स्वचालित हस्तांतरण

Fabric, Forge, एवं NeoForge सर्वर, क्लाइंट को कॉन्फ़िगरेटेड गंतव्य पर भेजते समय RakNet का उपयोग कर सकते हैं। इसमें Minecraft के नेटिव ट्रांसफर सपोर्ट का उपयोग किया जाता है, जो Java Edition 1.20.5 में पेश किया गया। यह जाँचें कि आपका Raknetify2 रिलीज़, दोनों ओर Minecraft का संस्करण एवं लोडर का समर्थन करता है।

भेजने वाले सर्वर एवं क्लाइंट पर Raknetify2 इंस्टॉल करें। गंतव्य पर सुसंगत RakNet लिस्टर होना चाहिए, एवं वह आने वाले Minecraft ट्रांसफरों को स्वीकार कर सकता होना चाहिए।

यह कॉन्फ़िगरेशन उपरोक्त तीन मॉड लोडरों द्वारा भेजे गए ट्रांसफ़रों पर लागू होता है। Spigot/Paper, Velocity, एवं BungeeCord प्लगइन इस ट्रांसफ़र फ़ाइल को नहीं पढ़ते।

सेंटर को सेट करें जो संदेश भेजेगा।

भेजने वाले सर्वर की डायरेक्टरी में config/raknetify2-transfers.json फ़ाइल बनाएं।

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

उदाहरण में दिए गए होस्टनेम एवं पोर्ट्स को अपने गंतव्य के मानों से बदलें, फिर सेंटर को पुनः शुरू करें। अतिरिक्त गंतव्यों को उसी सरणी में जोड़ें।

फील्ड अर्थ/मतलब
host गंतव्य होस्टनाम या आईपी पता, ट्रांसपोर्ट प्रीफिक्स या पोर्ट के बिना
tcpPort मूल ट्रांसफर अनुरोध में उपयोग होने वाला गंतव्य पोर्ट
udpPort सार्वजनिक RakNet पोर्ट जिससे स्थानांतरित क्लाइंट को संपर्क करना चाहिए

TCP एवं UDP पोर्ट नंबर समान हो सकते हैं। यदि राउटर UDP पोर्ट का रूपांतरण करता है, तो इस फ़ाइल में दिए गए सार्वजनिक पोर्ट का उपयोग करें। पोर्टों को JSON नंबरों के रूप में लिखें।

लक्ष्य वाले सामान्य होस्टनाम एवं TCP पोर्ट पर ट्रांसफर भेजें। Raknetify2 यह जाँचता है कि क्लाइंट को स्वचालित-ट्रांसफर समर्थन है या नहीं। यदि क्लाइंट सक्षम है एवं लक्ष्य भी उपयुक्त है, तो यह कृत्रिम UDP पोर्ट का उपयोग करता है। अन्य क्लाइंटों एवं असंगत लक्ष्यों के लिए मूल ट्रांसफर पता ही रहता है।

मैचिंग ट्रांसफर अनुरोध से होस्टनेम एवं TCP पोर्ट का उपयोग करता है। होस्टनेम का लेबल, अंतिम DNS डॉट, एवं संबंधित IPv6 स्पेलिंग को सामान्यीकृत किया गया है। DNS लुकअप मैचिंग में भाग नहीं लेते, इसलिए दो अलग-अलग होस्टनेम जो एक ही पते पर पहुँचते हैं, उनके लिए अलग-अलग प्रविष्टियाँ आवश्यक हैं। वाइल्डकार्ड प्रविष्टियाँ समर्थित नहीं हैं।

गंतव्य सेटअप

उस गंतव्य के लिए, जो Minecraft के server.properties फ़ॉर्मेट का उपयोग करता है, accepts-transfers=true को सेट करें एवं उस गंतव्य को पुनः शुरू करें। किसी गंतव्य प्रॉक्सी के अपने-अपने ट्रांसफर सेटिंग हो सकती हैं। Minecraft, आम तौर पर आने वाले ट्रांसफरों को अस्वीकार कर देता है. भले ही सामान्य रूप से गंतव्य तक पहुँचने में कोई समस्या न हो।

गंतव्य का RakNet लिस्टर, सार्वजनिक UDP फॉरवर्डिंग, एवं होस्ट फायरवॉल पहले से ही कॉन्फ़िगर किया गया होना चाहिए। सेंडिंग सर्वर का ट्रांसफ़र फ़ाइल, क्लाइंट को भेजे जाने वाले पते को चुनता है।

गंतव्य के IPv4 और IPv6 दोनों मार्गों की जाँच करें जब उसका होस्टनाम दोनों पता प्रकार प्रकाशित करता है। स्वचालित स्थानांतरण व्यवहार की जाँच करने से पहले गंतव्य के साथ एक सामान्य प्रत्यक्ष RakNet कनेक्शन का परीक्षण करें।

किसी भी गंतव्य पर लॉगिन या प्रवेश जाँचें जारी रखें। यह कॉन्फ़िगरेशन खिलाड़ियों को एक्सेस देने या सर्वर प्रमाणीकरण को बदलने का अधिकार नहीं देता।

कॉन्फ़िगरेशन त्रुटियाँ एवं निष्क्रिय करना

लापता फील्ड, अज्ञात फील्ड, अमान्य पोर्ट, एवं डुप्लिकेट डिस्ट्रीब्यूशन इनिशियलाइज़ेशन के दौरान कॉन्फ़िगरेशन त्रुटि का कारण बनते हैं। त्रुटि का पता लेने हेतु सर्वर लॉग का उपयोग करें, JSON को सुधारें, एवं पुनः शुरू करें।

स्वचालित चयन को अक्षम करने हेतु, कृपया कॉन्फ़िगरेशन फ़ाइल हटा दें, या {"destinations": []} का उपयोग करें, फिर सेंटर को पुनः शुरू करें। इस प्रकार, उन ट्रांसफ़र अनुरोधों में मूल पते बरकरार रहेंगे।

UDP फॉरवर्डिंग एवं PROXY प्रोटोकॉल

UDP प्रॉक्सी, RakNet ट्रैफिक को फॉरवर्ड कर सकता है एवं PROXY प्रोटोकॉल v2 का उपयोग करके मूल क्लाइंट पता को संरक्षित रख सकता है। जब एक अपस्ट्रीम UDP प्रॉक्सी आपके लिस्टन को वे हेडर भेजता है, तब इस फीचर को सक्षम करें। सामान्य राउटर पोर्ट फॉरवर्डिंग में इसकी आवश्यकता नहीं होती।

सर्वर या Minecraft प्रॉक्सी पर, जो फॉरवर्ड किए गए UDP ट्रैफिक को प्राप्त कर रहा है, config/raknetify2-proxy-protocol.json फ़ाइल बनाएं:

{
  "trustedProxies": ["192.0.2.10"]
}

उदाहरण को UDP प्रॉक्सी का वास्तविक स्रोत आईपी पता, या आपके नियंत्रण में वाला CIDR रेंज से बदलें। यह पता, किसी भी NAT प्रक्रिया के बाद प्राप्त होने वाले पते के समान होना चाहिए। IPv4 एवं IPv6 लिटरल्स स्वीकार्य हैं. DNS होस्टनेम अस्वीकार्य हैं। प्राप्तकर्ता सर्वर या प्रॉक्सी को पुनः शुरू करें।

UDP के लिए PROXY प्रोटोकॉल v2 हेडर भेजने के लिए फॉरवर्डिंग प्रॉक्सी को कॉन्फ़िगर करें। Raknetify2 केवल सूचीबद्ध स्रोतों से फॉरवर्ड किए गए क्लाइंट पतों को स्वीकार करता है। इस कॉन्फ़िगरेशन को सक्षम करते समय उन हेडर के बिना प्रत्यक्ष RakNet कनेक्शन को अस्वीकार कर दिया जाता है। TCP श्रोता अपनी मौजूदा कॉन्फ़िगरेशन बनाए रखता है।

विश्वास और पहुँच

प्रत्येक सूचीबद्ध प्रॉक्सी को क्लाइंट पतों की आपूर्ति करने हेतु विश्वसनीय माना गया है। अपने फायरवॉल में बैकएंड UDP पोर्ट तक के एक्सेस को प्रतिबंधित करें, ताकि केवल वांछित प्रॉक्सी ही उस तक पहुँच सके। विश्वसनीय रेंज को अपने नेटवर्क की सीमाओं के अनुसार संकीर्ण रखें।

फ़ाइल में केवल trustedProxies ही होना चाहिए, एवं उसमें कम से कम एक एंट्री होनी चाहिए। खाली ऐरे होना एक त्रुटि है। अमान्य फ़ाइल के कारण RakNet लिस्टनर शुरू नहीं हो पाता।

सीधे UDP कनेक्शन पर वापस जाने के लिए, उस फ़ाइल को हटाएं और लिस्टन को पुनः शुरू करें। उसी समय नए रूट के लिए अपस्ट्रीम फॉरवर्डिंग व्यवहार एवं फ़ायरवॉल नियमों को भी अपडेट करें।

यदि इस सुविधा को सक्रिय करने के बाद कनेक्शन विफल हो जाते हैं, तो बैकएंड पर प्रॉक्सी का वास्तविक स्रोत पता, कॉन्फ़िगर किया गया विश्वसनीय रेंज, एवं यह जाँचें कि प्रॉक्सी UDP PROXY प्रोटोकॉल v2 हेडर जारी कर रहा है या नहीं।

Minecraft प्रॉक्सी इंस्टॉलेशन और बैकएंड कॉन्फ़िगरेशन के लिए, Velocity और BungeeCord का पालन करें।

Simple Voice Chat

Raknetify2, Fabric, Forge, NeoForge, Spigot एवं Paper पर, अपने सर्वर UDP लिस्टेंट को Simple Voice Chat के साथ साझा कर सकता है।

सर्वर पर एवं वॉयस चैट चाहने वाले प्रत्येक क्लाइंट पर Simple Voice Chat इंस्टॉल करें। बाकी कॉन्फ़िगरेशन के लिए इसकी सर्वर सेटअप गाइड का पालन करें।

Raknetify2 के फ़ाइलों के लिए सर्वर के शीर्ष-स्तरीय config डायरेक्टरी का उपयोग करें, जिसमें Spigot/Paper भी शामिल है। Simple Voice Chat की अपनी फ़ाइल प्लेटफॉर्म-विशिष्ट स्थान पर ही रहती है।

गेमप्ले पोर्ट साझा करें।

  1. सर्वर डायरेक्टरी में config/raknetify2-voicechat.json नामक फ़ाइल इस सामग्री के साथ बनाएं:

    {"enabled": true}
  2. Simple Voice Chat की सर्वर कॉन्फ़िगरेशन में port=-1 सेट करें। मॉड वाले सर्वरों पर, यह config/voicechat/voicechat-server.properties है। Spigot/Paper पर, यह plugins/voicechat/voicechat-server.properties है।

  3. यदि कोई RakNet लिस्टर मौजूद है, तो bind_address को खाली छोड़ दें। यदि सर्वर में उस UDP पोर्ट पर कई लिस्टर हैं, तो उसे उस लिस्टर के स्थानीय पते पर सेट करें।

  4. सर्वर को पुनः शुरू करें और कनेक्टेड खिलाड़ी के लिए /voicechat test <PLAYERNAME> चलाएं।

यदि RakNet लिस्टर Minecraft से अलग पोर्ट का उपयोग कर रहा है, तो -1 का उपयोग करने के बजाय port को उस स्थानीय UDP पोर्ट पर स्पष्ट रूप से सेट करें। उदाहरण के लिए, स्थानीय UDP पोर्ट 25570 पर RakNet लिस्टर के लिए port=25570 आवश्यक है।

जब क्लाइंटों को अलग सार्वजनिक पता या पोर्ट की आवश्यकता हो, तो voice_host सेट करें। यदि राउटर सार्वजनिक UDP 25580 को स्थानीय UDP 25570 तक फॉरवर्ड कर रहा है, तो port=25570 एवं voice_host=play.example.com:25580 का उपयोग करें। सार्वजनिक पता voice_host में ही होना चाहिए। bind_address सेटिंग स्थानीय लिस्टर को चुनती है।

Raknetify2, Simple Voice Chat की API के माध्यम से साझा UDP सॉकेट प्रदान करता है। Simple Voice Chat, वॉयस प्रमाणीकरण एवं एन्क्रिप्शन का प्रबंधन करता है। खिलाड़ी TCP या RakNet गेमप्ले कनेक्शन के साथ वॉयस चैट का उपयोग कर सकते हैं।

अन्य UDP सेवाएँ और प्रॉक्सी

Query और Geyser को अलग-अलग UDP पोर्ट पर रखें। साझा सॉकेट एकीकरण केवल Simple Voice Chat का समर्थन करता है।

यह एकीकरण Velocity या BungeeCord पर कोई वॉयस-प्रॉक्सी सॉकेट नहीं साझा करता। Simple Voice Chat की प्रॉक्सी सेटअप गाइड का पालन करें और वॉयस प्रॉक्सी को अपना अलग UDP पोर्ट दें। आधिकारिक वॉयस प्रॉक्सी प्लगइन का उपयोग करके, प्रॉक्सी की वॉयस कॉन्फ़िगरेशन में कोई भी सार्वजनिक voice_host सेटिंग सेट करें। वह प्लगइन बैकएंड सर्वरों की voice_host सेटिंगों को नजरअंदाज करता है।

एक सामान्य UDP टनल के लिए, voice_host को उस सार्वजनिक होस्टनाम एवं UDP पोर्ट के रूप में सेट करें, जो इस सर्वर तक संदेश भेजता है।

शेयरिंग को बंद करें या सॉकेट संघर्ष को हल करें।

यदि लॉग में No RakNet listener matches the voice bind address and port दर्शाया गया है, तो यह सुनिश्चित करें कि RakNet सफलतापूर्वक शुरू हुआ है, एवं वॉइस पोर्ट एवं बाइंडिंग एड्रेस, स्थानीय लिस्टनर के अनुरूप हैं।

यदि यह Multiple RakNet listeners match the voice bind address का रिपोर्ट कर रहा है, तो bind_address में से कोई एक विशिष्ट लोकल एड्रेस चुनें एवं फिर से प्रक्रिया शुरू करें।

केवल एक ही Simple Voice Chat प्लगइन अपना UDP सॉकेट प्रदान कर सकता है। यदि स्टार्टअप में रिपोर्ट हो कि कोई अन्य प्लगइन पहले से ही सॉकेट प्रदान कर रहा है, तो किस सॉकेट इंटीग्रेशन का उपयोग करना है इसका चयन करें।

Raknetify2 के एकीकरण को अक्षम करने हेतु, उसकी वॉयस कॉन्फ़िगरेशन में {"enabled": false} सेट करें या उस फ़ाइल को हटा दें। Simple Voice Chat को अलग UDP पोर्ट दें, उसकी फ़ायरवॉल या फॉरवर्डिंग नियमों को अपडेट करें, और सर्वर को पुनः शुरू करें।

समस्या निवारण

TCP काम करता है, लेकिन RakNet टाइमआउट कर देता है।

इन्हें क्रम में जाँचें:

  1. क्लाइंट के पास उसके लोडर और Minecraft संस्करण के लिए सही Raknetify2 मॉड है।
  2. जिस सर्वर या प्रॉक्सी में कनेक्शन स्वीकार किया जा रहा है, उसमें Raknetify2 इंस्टॉल है एवं यह बिना किसी लिस्टनर त्रुटि के चालू है।
  3. पता raknet; से शुरू होता है और यह सार्वजनिक UDP पोर्ट का उपयोग करता है।
  4. होस्टिंग प्रदाता, राउटर एवं होस्ट फायरवॉल सभी उस पोर्ट पर UDP की अनुमति देते हैं।
  5. होस्टनाम के IPv4 एवं IPv6 पते वांछित होस्ट पर पहुँचते हैं, एवं उनके फ़ायरवॉल नियम भी सही हैं।

एक सफल TCP कनेक्शन केवल TCP रूट की पुष्टि करता है। UDP फॉरवर्डिंग एवं IPv6 एक्सेस की जाँच करने हेतु फायरवॉल एवं राउटर कॉन्फ़िगरेशन का पालन करें। यदि PROXY प्रोटोकॉल सक्षम है, तो क्लाइंट को कॉन्फ़िगर किए गए ट्रस्टेड प्रॉक्सी के माध्यम से लिस्टन तक पहुँचना आवश्यक है।

पता पहले से ही उपयोग में है।

UDP पोर्ट का उपयोग करके दूसरी प्रक्रिया की जाँच करें। Geyser एवं अन्य UDP सेवाओं को अपने-अपने पोर्टों की आवश्यकता होती है। Simple Voice Chat साझा-पोर्ट इंटीग्रेशन का उपयोग कर सकता है।

आप सीधे सर्वर श्रोता सेटिंग्स या Velocity और BungeeCord सेटिंग्स का उपयोग करके कोई अन्य स्थानीय UDP पोर्ट चुन सकते हैं। Spigot/Paper सेटिंग के लिए संस्करण आवश्यकता की जाँच करें। केवल एक राउटर का सार्वजनिक पोर्ट बदलने से स्थानीय सॉकेट संघर्ष बना रहता है।

जुड़ना तो संभव है, लेकिन ट्रांसफर विफल हो जाता है।

उस गंतव्य को उसके raknet; पते का उपयोग करके सीधे जोड़ें। यदि यह विफल हो जाता है, तो पहले गंतव्य के लिस्टर या नेटवर्क रूट को ठीक करें।

यदि प्रत्यक्ष कनेक्शन काम करता है, तो जाँचें कि गंतव्य प्रवेशीय ट्रांसफरों को स्वीकार करता है या नहीं। server.properties का उपयोग करने वाले Minecraft सर्वर के लिए accepts-transfers=true होना आवश्यक है। प्रत्यक्ष जॉइनिंग में इस सेटिंग का परीक्षण नहीं किया जाता।

फिर, भेजने वाले सर्वर पर config/raknetify2-transfers.json फ़ाइल में ट्रांसफर होस्टनेम एवं TCP पोर्ट की तुलना करें। यह सुनिश्चित करें कि फ़ाइल पुनः शुरू होने के बाद लोड हुई है, एवं क्लाइंट स्वचालित RakNet ट्रांसफर का समर्थन करता है। स्वचालित ट्रांसफर देखें।

एनक्रिप्शन या प्रोटोकॉल संबंधी त्रुटियाँ

कनेक्शन के दोनों छोरों पर Raknetify2 के संस्करणों की जाँच करें। जब कोई नया संस्करण ईमेल-सुरक्षित प्रोटोकॉल में परिवर्तन करता है, तो क्लाइंट, सर्वर या प्रॉक्सी को एक साथ अपडेट करें। जाँच करते समय सर्वर की प्रमाणीकरण सेटिंग्स को संरक्षित रखें।

मॉडल-विशिष्ट विफलताएँ

यह रिकॉर्ड करें कि कौन-सी क्रिया विफलता का कारण बनती है, जैसे इन्वेंट्री खोलना, रिसोर्स पैक प्राप्त करना, वर्ल्ड बदलना, या एंटीटी का उत्पन्न होना। जब संभव हो, तो TCP और RakNet के उपयोग से इसी क्रिया की तुलना एक अलग टेस्ट इंस्टॉलेशन के द्वारा करें।

कुछ कस्टम पेलोड, वैनिला पैकेटों के क्रम पर निर्भर होते हैं। मॉड आर्टिस्ट पैकेट ऑर्डर इंटरफ़ेस के माध्यम से इन निर्भरताओं को घोषित कर सकते हैं।

बग रिपोर्ट करें

Raknetify2 इश्यू ट्रैकर में एक इश्यू खोलें और निम्नलिखित जानकारी शामिल करें:

  • दोनों सिरों पर Minecraft, Java, लोडर और Raknetify2 संस्करण।
  • सर्वर एवं प्रॉक्सी सॉफ्टवेयर के संस्करण, जिसमें कोई भी UDP फॉरवर्डिंग प्रॉक्सी शामिल है।
  • अन्य स्थापित मॉड्स एवं उनके संस्करण।
  • समस्या उत्पन्न करने के चरण एवं आपकी अपेक्षाएँ।
  • क्या वही चरण TCP पर भी काम करते हैं?
  • उसी प्रयास से प्राप्त संबंधित क्लाइंट, सर्वर एवं प्रॉक्सी लॉग अंश।

लॉग अपलोड करने से पहले एक्सेस टोकन, पासवर्ड एवं अन्य निजी जानकारियों को हटा दें। समस्या का निदान करने हेतु आवश्यक अपवाद संदेशों एवं स्टैक ट्रेसों को संरक्षित रखें।

मॉड इंटीग्रेशन

Raknetify2, मॉड्स को यह निर्धारित करने की सुविधा देता है कि Minecraft ट्रैफिक को उनके कस्टम पेलोडों के अनुसार ही व्यवस्थित रूप से प्रसारित किया जाना चाहिए। इसका उपयोग तब किया जाता है, जब किसी पेलोड को प्रसारित करने हेतु पहले आए पैकेटों द्वारा निर्धारित एंटीटी, चैक, इन्वेंटरी या अन्य स्थितियों की आवश्यकता होती है।

ग्रुपों का आदेशन

समूह बनाएं संबंधित ट्रैफिक
ui विश्व-स्वतंत्र मेनू एवं अंतरक्रियाएँ
entity एंटिटी का उत्पादन, हटाना, एवं गति
world_interaction इन्वेंट्री एवं अन्य विश्व-निर्भर अंतरक्रियाएँ
effects ध्वनियाँ एवं कण
chunk टेरेन, ब्लॉक एवं लाइटिंग संबंधी अपडेट।

सभी समूह अपने चैनल के भीतर विश्वसनीय एवं व्यवस्थित वितरण बनाए रखते हैं। विभिन्न समूहों में मौजूद पैकेट अलग-अलग क्रम में पहुँच सकते हैं। पैकेट की आवश्यकताओं के अनुसार सही समूह चुनें।

वैकल्पिक Fabric एकीकरण

अपने मॉड के fabric.mod.json में raknetify:packet_channels एंट्रीपॉइंट के नीचे एक प्रोवाइडर जोड़ें। यह प्रोवाइडर JDK प्रकारों का उपयोग करके Consumer<BiConsumer<String, String>> को लागू करता है। यह एक रजिस्ट्रार को प्राप्त करता है, जो एक कस्टम पेलोड आइडेंटिफायर एवं ऑर्डरिंग ग्रुप को स्वीकार करता है।

इस एंट्री को अपने मौजूदा मेटाडेटा में जोड़ें, एवं क्लास नाम को अपने प्रोवाइडर के पूर्ण योग्य नाम से बदल दें।

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

अपने fabric.mod.json का बाकी हिस्सा, जिसमें मौजूदा एंट्रीपॉइंट्स भी शामिल हैं, बरकरार रखें। यह मेटाडेटा फ़ाइल का एक हिस्सा है।

उदाहरण के लिए, कोई एंटिटी मूवमेंट एक्सटेंशन example:entity_path को entity ग्रुप के साथ रजिस्टर कर सकता है। PacketOrdering API दस्तावेज़ीकरण में प्रोवाइडर की कार्यप्रणाली दी गई है।

जब Raknetify2 अनुपस्थित होता है, तो Fabric इस प्रवेश बिंदु को बिना किसी कार्रवाई के छोड़ देता है। प्रदाताओं को इनिशियलाइज़ेशन के दौरान आइडेंटिफायर्स एवं ग्रुपों का घोषणा करना आवश्यक है, बिना इस बात पर भरोसा किए कि कोई अन्य मॉड अपनी इनिशियलाइज़ेशन प्रक्रिया पूरी कर चुका है।

पंजीकरण व्यवहार

Forge एवं NeoForge मॉड्स, तथा सर्वर/प्रॉक्सी प्लगइन, Raknetify2 उपलब्ध होने पर इनिशियलाइज़ेशन के दौरान PacketOrdering.register(identifier, group) को कॉल कर सकते हैं। यह क्लास com.ishland.raknetify.api.PacketOrdering है। प्लेयरों के कनेक्शन स्वीकार करने से पहले इस क्लास को रजिस्टर करें, ताकि जब डिपेंडेंसी उपलब्ध न हो, तब भी Raknetify2 संबंधी कोड लोड न हो।

घोषणाएँ नए कनेक्शनों पर लागू होती हैं। मौजूदा कनेक्शन, स्थापना के समय प्राप्त नियमों का पालन करते हैं। एक ही घोषणा को दोहराने की अनुमति है। एक ही आइडेंटिफायर के लिए विरोधाभासी ग्रुपों को अस्वीकार कर दिया जाता है।

पेलोड आइडेंटिफायरों को वैध कस्टम नेमस्पेस का उपयोग करना होगा। minecraft नेमस्पेस आरक्षित है। एंडपॉइंट-व्यापी सीमा 128 घोषणाएँ हैं, जिसमें अंतर्निहित नियम एवं अन्य मॉड्स से हुए पंजीकरण भी शामिल हैं। आइडेंटिफायरों में API के नेमस्पेसेड आइडेंटिफायर सिंटैक्स का उपयोग करके 255 ASCII अक्षर हो सकते हैं।

कनेक्शन सेटअप के दौरान RakNet पीयर घोषणाओं को अद्यतन किया गया। एक सर्वर या प्रॉक्सी एक पीयर की घोषणा का उपयोग कर सकता है जब उसके पास उस पेलोड के लिए कोई स्थानीय नियम न हो। स्थानीय नियम प्राथमिकता लेते हैं, और एक पीयर की घोषणा उस कनेक्शन तक ही सीमित रहती है।

UDP प्रॉक्सी

UDP रिले एवं फॉरवर्ड क्लाइंट पतों के लिए UDP फॉरवर्डिंग एवं PROXY प्रोटोकॉल देखें।

Minecraft प्रॉक्सी सेटअप के लिए, Velocity और BungeeCord देखें।

English (US)

Clone this wiki locally