Skip to content

Wiki it it

pjscruggs edited this page Nov 11, 2026 · 2 revisions

Raknetify2 · Italiano (Italia)

Lingua del gioco

Multigiocatore

Connessioni di rete tramite RakNet per i client e i server di Minecraft.

Scarica · GitHub

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

Aggiungi server

  1. Multigiocatore

  2. Aggiungi server

  3. Indirizzo del server

    Indirizzo del server
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. Fatto

  5. Entra nel server

F3 · Raknetify2

F3
RakNet · UDP Attivo · MTU 1400
TCP Inattivo

Velocity / BungeeCord

  1. Client · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. Velocity / BungeeCord → TCP → Server
Numero di 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

Connessione scaduta

Indirizzo del server UDP
raknet;play.example.com:25580 play.example.com:25580 → NAT → 192.0.2.10:25570
Server · 192.0.2.10 25570/udp

config/raknetify2-compatibility.json

Server / Velocity / BungeeCord

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

Simple Voice Chat

Server 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

Indirizzo del 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"] ✗
Client → RakNet / UDP ["192.0.2.10"] ✗

config/raknetify2-proxy-protocol.json

{"trustedProxies":["192.0.2.10"]}

Minecraft ≥ 1.20.5 · /transfer

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

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

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

PacketOrdering

Minecraft
ui Opzioni
entity Scheletro
world_interaction Inventario
effects Particelle
chunk Blocchi

PacketOrdering.java

Versione incompatibile!

Segnala errori

Home

Raknetify2

Raknetify2 usa RakNet su UDP per le partite multigiocatore di Minecraft. Il traffico viaggia su canali distinti: se si perde un pacchetto, gli altri canali possono continuare a trasmettere. Le azioni dei giocatori possono così ricevere risposta anche mentre vengono ritrasmessi dati persi o trasferiti dei chunk.

Raknetify2 è una fork mantenuta indipendentemente di Raknetify, originariamente sviluppata da ishland. Questa fork aggiunge supporto per le versioni più recenti di Minecraft e mantiene il trasporto, le integrazioni alla piattaforma e i test di compatibilità.

Iniziare

  1. Verifica la compatibilità con Minecraft e i mod.
  2. Scegliete il file da scaricare e installatelo.
  3. Connettersi con un indirizzo come raknet;play.example.com.

Guida del server

Gli autori di mod possono utilizzare l’interfaccia di ordinamento dei pacchetti per dichiarare le dipendenze tra i payload personalizzati e il traffico Minecraft.

Link del progetto

Raknetify2 utilizza la licenza MIT e conserva i notiziari di copyright originali. La sua implementazione di rete si basa su Raknetify e netty-raknet.

Installazione

Scarica una versione da GitHub Releases. Verifica la versione Minecraft e i requisiti di caricamento per quella versione prima di installarla.

Dove stai installando File Folder
Client o server di Fabric raknetify2-fabric-*.jar mods
Forge client o server raknetify2-forge-*.jar mods
Client o server NeoForge raknetify2-neoforge-*.jar mods
Server Spigot o Paper raknetify2-spigot-*.jar plugins
Velocity proxy raknetify2-velocity-*.jar plugins
Proxy BungeeCord raknetify2-bungee-*.jar plugins

Chiudere il client o fermare il server prima di sostituire il file JAR. Rimuovere il file originale Raknetify JAR e qualsiasi file Raknetify2 JAR più vecchio dalla stessa installazione prima di aggiungere il nuovo file.

Le cartelle del client appartengono all’istanza Minecraft o al modpack che si avvia. Le cartelle del server e del proxy appartengono all’installazione del server o del proxy. Creare la cartella appropriata se il loader non l’ha ancora creata.

Connessioni dirette al server

  1. Installa il mod client per il tuo loader.
  2. Installare il mod del server corrispondente, o il plugin Spigot/Paper su un server compatibile.
  3. Seguire Configurazione del firewall e del router per consentire le connessioni UDP al server.
  4. Rebootare il client e il server.
  5. Aggiungere un indirizzo del server, ad esempio raknet;play.example.com o raknet;play.example.com:25565.

Gli indirizzi che non contengono il prefisso raknet; utilizzano TCP.

L’installazione del mod client da sola non aggiunge il supporto per RakNet a un server remoto. L’operatore del server deve fornire un endpoint RakNet. I giocatori che si uniscono al server di qualcun altro di solito non hanno bisogno di regole di reindirizzamento del router in entrata.

Velocity e BungeeCord

Installare il plugin proxy corrispondente e il mod client. Seguire Velocity e BungeeCord per le impostazioni dei listener, la reindirizzazione del backend, le restrizioni di accesso e l'indirizzo da utilizzare dai giocatori.

Una porta ascolto UDP separata

Per un server Minecraft diretto, imposta il corrispondente argomento Java di seguito. Gli operatori di proxy dovrebbero utilizzare le impostazioni di ascolto di Velocity e BungeeCord.

Piattaforma Argomento Java Porti accettati
Server Fabric, Forge o NeoForge -Draknetify.fabric.portOverride=25570 1 fino a 65534
Server Spigot o Paper -Draknetify.spigot.portOverride=25570 1 fino a 65535

Forge e NeoForge utilizzano lo stesso codice di ascolto condiviso, quindi i loro nomi di proprietà contengono anche fabric. Sostituire 25570 con la porta UDP desiderata.

Spigot / Paper ≥ 0.1.0-beta.1.431

Aggiungere l'argomento prima di -jar nella riga di comando Java, oppure nel campo degli argomenti della JVM del proprio host. Restartare il server e consentire l'uso di UDP sulla porta di ascolto scelta. Se la porta pubblica è anche 25570, connettersi con raknet;play.example.com:25570. Se un router traduce la porta, utilizzare la sua porta pubblica nell'indirizzo del client. La porta TCP rimane al suo valore attuale.

Su Spigot/Paper, l'ascoltatore UDP mantiene l'indirizzo di bind locale dell'ascoltatore TCP di Minecraft. Un override non valido o un port UDP occupato impedisce alla RakNet di avviarsi. Verificate il log di avvio per l'indirizzo e il port UDP associati. Rimuovete l'argomento e riavviate per tornare al numero di port dell'ascoltatore TCP.

Un router o un proxy UDP può anche esporre un diverso port pubblico UDP e inviarlo al listener esistente, senza modificare gli argomenti Java del server.

Build di sviluppo

Aprire con successo la esecuzione main in GitHub Actions e scaricare il suo archivio Artifacts. GitHub richiede un account per scaricare i file generati dal workflow. Utilizzare la tabella di installazione sopra per scegliere un JAR dall’archivio.

Velocity e BungeeCord

Velocity e BungeeCord si trovano tra i giocatori e i server backend di Minecraft. Installare Raknetify2 sul proxy e su ogni client che si connetterà tramite RakNet.

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

I server backend non hanno bisogno di Raknetify2 per questo percorso di connessione. Hanno comunque bisogno dei mod, dei plugin e del supporto per il reindirizzamento richiesti dalla tua rete. Raknetify2 non traduce le versioni di Minecraft né modifica l’autenticazione dell’account del proxy.

Installa il plugin di proxy.

  1. Confermare che le connessioni TCP ordinarie attraverso il proxy funzionano, inclusa l'autenticazione e lo scambio tra i server backend.
  2. Smetti il proxy e scarica il plugin corrispondente da GitHub Releases.
  3. Mettere raknetify2-velocity-*-all.jar o raknetify2-bungee-*-all.jar nella cartella plugins del proxy. Rimuovere qualsiasi plugin Raknetify o Raknetify2 più vecchio da quella cartella.
  4. Installare il mod client appropriato di Raknetify2 utilizzando la guida di installazione.
  5. Verifica le impostazioni del listener di seguito, riavvia il proxy e controlla il suo log per individuare eventuali errori legati al listener di RakNet.
  6. Permettere il traffico UDP pubblico verso il proxy e restringere le porte di gioco backend come descritto in Configurazione firewall e router.

Utilizzare versioni compatibili di Raknetify2 sul client e sul proxy. Verificare la Compatibilità prima di mescolare le versioni.

Velocity

La impostazione bind nel file velocity.toml seleziona l'indirizzo di ascolto di Minecraft e la porta TCP utilizzata da Velocity. Raknetify2 normalmente utilizza lo stesso numero di porta per UDP. Le entrate [servers] identificano i server backend. Queste vanno comunque puntate agli indirizzi TCP dei server backend. Per maggiori informazioni, consultare la referenza di configurazione di Velocity.

Per utilizzare un port UDP separato, aggiungere questo argomento JVM prima di -jar nella riga di avvio di Velocity:

-Draknetify.velocity.portOverride=25570

Sostituisci 25570 con la porta scelta. Questo modifica la porta UDP di RakNet, mantenendo la porta TCP e gli indirizzi backend di Velocity. Riavvia Velocity dopo aver cambiato l'argomento.

Configura il reindirizzamento dei giocatori sia su Velocity che sui suoi backend. Utilizza il reindirizzamento moderno quando il software backend lo supporta, e mantieni il reindirizzamento segreto e privato. Seguire le istruzioni specifiche del backend nel guida alla reindirizzazione delle informazioni dei giocatori di Velocity. Mantenere attive le restrizioni del firewall del backend insieme al reindirizzamento.

BungeeCord

Nel file config.yml di BungeeCord, il valore host sotto ogni voce listeners identifica l’indirizzo e la porta TCP su cui si trova Minecraft. Raknetify2 aggiunge normalmente una porta UDP su quel numero. Le voci servers contengono gli indirizzi TCP del backend. Queste impostazioni sono descritte nella guida di configurazione di BungeeCord.

Per un port UDP separato, aggiungere questo argomento JVM prima di -jar nel comando di avvio di BungeeCord:

-Draknetify.bungee.portOverride=25570

L’override appartiene a tutto il processo di proxy. Per una configurazione con più ascoltatori di Minecraft, verificate gli endpoint reali di RakNet nel log di avvio prima di aggiungere regole di firewall. Riavviare BungeeCord dopo aver modificato l’argomento.

Conservare l'autenticazione dell'account sul proxy. Per i backend Spigot, la guida all'inoltro di IP di BungeeCord abbinava ip_forward: true sul proxy a settings.bungeecord: true sul backend. L'inoltro da solo non impedisce a qualcuno di connettersi direttamente a un backend. Restringere l'accesso al backend utilizzando le istruzioni per il firewall.

Scegliete l'indirizzo utilizzato dai giocatori

Entrambe le sovrapposizioni del proxy accettano porte da 1 a 65534. I valori invalidi vengono ignorati, quindi verifica la porta UDP associata nei log di avvio. Rimuovi l’argomento e riavvia per tornare al numero di porta del listener di Minecraft.

I giocatori si connettono al nome host pubblico del proxy e alla porta UDP, ad esempio raknet;play.example.com:25570. Quando un router traduce le porte, utilizzare la sua porta UDP pubblica nell’indirizzo del client. Gli indirizzi senza il prefisso raknet; continuano a utilizzare l’ascoltatore TCP del proxy.

Lascia Query, Geyser e gli altri servizi UDP su porte UDP separate. Una porta TCP diversa non risolve i conflitti di socket UDP.

Chat vocale e reindirizzamento aggiuntivo di UDP

Il Simple Voice Chat utilizza il proprio plugin proxy e la porta UDP su Velocity e BungeeCord. Per la configurazione, seguire le istruzioni per il proxy di Voice Chat.

Se un relay UDP separato si trova davanti al tuo proxy Minecraft e invia i header del protocollo PROXY v2, configura Raknetify2 utilizzando inversione di UDP e protocollo PROXY. L’installazione di Velocity o BungeeCord da sola non richiede tale configurazione.

Verifica la connessione

Testare dall’esterno della tua rete locale con un client Raknetify2. Unirti tramite il proxy, cambiare tra i server backend che utilizzi, e confermare che l’identità del giocatore e i permessi rimangano corretti.

  • Se il TCP attraverso il proxy funziona, ma RakNet esce dal timeout, verificare l'ascoltatore UDP del proxy, la porta pubblica, le rotte IPv4 e IPv6, e le regole del firewall.
  • Se entrambi i trasportatori falliscono quando il proxy si connette a un backend, verificare l’indirizzo TCP di quel backend, le regole di accesso e la configurazione di reindirizzamento dei giocatori.
  • Se il proxy riporta un port UDP occupato, verifica se c’è un processo di Query, Geyser, un proxy vocale o un altro processo collegato a esso.

Per i report, includere sia i log del proxy che quelli del backend dello stesso tentativo di connessione. Per informazioni sulla versione da includere, vedere Troubleshooting.

Configurazione del firewall e del router

Questo guida è destinato agli operatori di server. Raknetify2 richiede una rotta UDP funzionante verso il server o il proxy che accetta connessioni RakNet. La configurazione predefinita utilizza lo stesso numero di porta del listener TCP di Minecraft.

Per i giocatori sulla stessa rete locale, utilizzare l'indirizzo locale del server e consentire l'uso di UDP attraverso il firewall host. È necessario utilizzare il funzionamento inverso della porta del router quando il traffico Internet deve attraversare la NAT IPv4 del router.

Scegliere la destinazione e il port

Servizio diretto

Inviare traffico UDP pubblico alla macchina che esegue il server Minecraft utilizzando Raknetify2. La porta di destinazione è quella del listener UDP di RakNet del server. Averla aperta nel firewall host della macchina server. Mantenere la rotta TCP esistente per le connessioni normali di Minecraft.

Ad esempio, se Raknetify2 ascolta su UDP 25570, reindirizza la porta UDP pubblica sulla porta locale del server su 25570. La porta TCP del server può rimanere su 25565. Vedi impostazioni ascolto del server diretto per scegliere una porta UDP diversa.

Velocity o BungeeCord

Invia traffico UDP pubblico alla macchina che utilizza Velocity o BungeeCord, con il plugin di proxy Raknetify2. Utilizza l'ascoltatore UDP di RakNet del proxy come destinazione di reindirizzamento. Mantieni la rotta TCP pubblica esistente del proxy per le connessioni ordinarie di Minecraft.

Il proxy si connette ai server backend di Minecraft tramite TCP. L’aggiunta di Raknetify2 al proxy non richiede l’apertura di porte UDP per il gioco da parte dei giocatori.

Connessione Accesso consentito
Giocatori che utilizzano il proxy UDP pubblico verso l'ascoltatore di RakNet, più l'ascoltatore TCP pubblico esistente.
Proxy per i server backend Porte TCP dei server Minecraft di backend, raggiungibili soltanto dagli host proxy previsti
Giocatori direttamente ai porti di gioco backend Tenere bloccati, anche tramite IPv6.

Quando il proxy e i backend vengono eseguiti direttamente su una macchina dedicata che controlli, i listener dei backend possono utilizzare indirizzi loopback, con il proxy configurato per raggiungerli. Tra macchine diverse, limitare l’accesso TCP dei backend al proxy utilizzando un firewall o una rete privata isolata. I container e gli host gestiti richiedono restrizioni equivalenti per la loro struttura di rete. Vedi la guida alla sicurezza dei backend di Velocity e la guida al firewall di BungeeCord.

Il rilevamento dei giocatori e le restrizioni del firewall funzionano insieme. L’accesso diretto al backend può eludere i controlli di login del proxy. Per l’installazione dei plugin, le impostazioni di rilevamento dei giocatori e la modifica delle porte UDP, seguire Velocity e BungeeCord.

Numeri di porta pubblici e locali

Il port pubblico e il port del listener possono differire quando un router li traduce tra loro:

Impostazioni Porto da utilizzare
Indirizzo client-server Porta UDP pubblica
Regola di trasferimento del router per il port esterno Porta UDP pubblica
Porto interno delle regole di inoltro del router Porta UDP del listener di RakNet
Porta locale del firewall dell'host Porta UDP del listener di RakNet

Inoltro dei port IPv4

Per l’hosting dietro un router IPv4:

  1. Trova l'indirizzo IPv4 locale della macchina che accetta le connessioni RakNet. Utilizza una riserva DHCP o un indirizzo statico appropriato in modo che la regola di reindirizzamento continui a mirare su quella macchina.
  2. Aggiungere una regola di inoltro UDP per la porta pubblica utilizzata dai giocatori.
  3. Imposta il destinatario della regola sull'indirizzo locale di quella macchina e sul port UDP del ascoltatore RakNet.
  4. Permettere l'invio di dati UDP in entrata sul port del listener nel firewall del host.

Ad esempio, un server che ascolta sulla porta UDP 25565 può utilizzare una regola con la porta pubblica 25565, indirizzo di destinazione 192.168.1.100 e porta di destinazione 25565. Sostituisci l’indirizzo di esempio con l’indirizzo locale effettivo del tuo server.

Rimanere con la regola TCP per le connessioni normali di Minecraft. Una regola di reindirizzamento TCP da sola non trasporta UDP.

Quando la reindirizzazione continua a fallire

Verifica se un altro router o il tuo ISP esegue la NAT prima che il traffico raggiunga il tuo router. Con due router da controllare, il trasferimento deve coprire entrambi. Se il tuo ISP utilizza una NAT di livello operativo, chiedi se può fornire un indirizzo IPv4 pubblico o utilizzare un servizio di hosting o un tunnel che supporta il UDP in entrata. La regola di trasferimento del tuo router non può configurare la NAT dell'ISP. Per informazioni sul requisito dell'indirizzo WAN pubblico, consulta le indicazioni di TP-Link sul trasferimento dei port.

Regole del firewall IPv6

Permettere la passaggio del port UDP selezionato sia attraverso il firewall IPv6 del router che quello del host. Indicare l'indirizzo IPv6 della macchina che accetta le connessioni RakNet.

Verificare che l'indirizzo IPv6 del nome di host indichi effettivamente quella macchina. Se l'indirizzo IPv6 cambia, aggiornare il record DNS e eventuali regole di firewall specifiche per quell'indirizzo.

Un nome host che pubblica sia gli indirizzi IPv4 che IPv6 necessita di una rotta funzionante per ciascun indirizzo pubblicato. Verificare entrambi i set di regole quando un giocatore può connettersi e un altro no.

Se il rilevamento IPv4 cambia il numero della porta, assicurarsi che anche la porta inviata dai giocatori raggiunga l'ascoltatore IPv6. Una traduzione della porta IPv4 non configura la rotta IPv6.

Fornitori di hosting e tunnel

Il fornitore o il tunnel deve supportare UDP sul punto di accesso pubblico che si fornisce ai giocatori. Verificare le assegnazioni di porte e le regole del firewall di rete, così come il firewall del server stesso.

Se un proxy UDP aggiuntivo reindirizza gli indirizzi dei client utilizzando il protocollo PROXY v2, seguire UDP forwarding and PROXY protocol e limitare l’accesso al listener UDP ricevente al proxy di fiducia.

Verifica la connessione

Connettersi dall’esterno della rete locale del server con un client Raknetify2 aggiornato, utilizzando un indirizzo come raknet;play.example.com:25565. Utilizzare la porta UDP pubblica indicata in questo indirizzo.

Utilizzare una connessione reale di RakNet per verificare la rotta. Un’analisi UDP che non riceve risposta può fornire un risultato incerto, poiché un servizio funzionante potrebbe ignorare una sonda sconosciuta. La documentazione sull’analisi UDP di Nmap spiega questo comportamento.

Una connessione TCP riuscita conferma soltanto la rotta TCP. Se RakNet esce di tempo, verificare il listener, la destinazione di reindirizzamento, la porta UDP e le regole di firewall utilizzando la guida di risoluzione dei problemi.

Compatibilità

Verifica la compatibilità con la versione specifica che stai scaricando. La branch di sviluppo potrebbe contenere funzionalità che non sono ancora state introdotte in una versione ufficiale.

Versioni Minecraft e Java

Versioni Minecraft e Java · English

Il requisito di Java dichiarato da Raknetify2 è il minimo richiesto. Minecraft o il loader potrebbero richiedere un runtime più recente. Si deve scegliere una versione di Java che soddisfi tutti e tre i requisiti.

Versioni client e server

Utilizzare la stessa versione Raknetify2 sia sul client che sul server o sul proxy che accetta la sua connessione, se possibile. Verificare le note di rilascio prima di mescolare le versioni. Le connessioni RakNet cifrate richiedono il supporto per il protocollo di cifratura autenticata in entrambe le parti. Le versioni originali di Raknetify e Raknetify2 precedenti all’introduzione di quel protocollo non possono stabilire queste connessioni cifrate con peer aggiornati.

Raknetify2 supporta il protocollo di gioco esistente di Minecraft. Per connettere diverse versioni di Minecraft è necessario configurare una traduzione del protocollo compatibile.

Altri mod

Altri mod · English

Per eventuali problemi legati a un modpack più grande, seguire la guida di risoluzione dei problemi. Includere le versioni complete dei mod nel proprio rapporto.

Modalità ordinata

Modalità ordinata

Normalmente, Raknetify2 permette che i canali di pacchetto indipendenti continuino a funzionare mentre uno di essi attende i dati mancanti. Il modello ordinato collega tutti i pacchetti Minecraft in un unico canale, quindi un pacchetto mancante blocca tutti i pacchetti successivi in quella direzione fino a quando non viene ristabilito. Questo preserva l’ordine previsto da alcuni software anti-cheat, ma toglie a Raknetify2 la possibilità di mantenere in movimento il traffico non correlato durante l’attesa.

Attivare il modo ordinato

  1. Installare una build di Raknetify2 che supporti il modo ordinato sul server o sul proxy che accetta connessioni RakNet, e su ogni client RakNet.

  2. Creare il file config/raknetify2-compatibility.json relativo al direttorio di lavoro del server o del proxy. Creare la cartella config se non esiste ancora.

  3. Aggiungere il seguente testo:

    {"mode": "ordered"}
  4. Reinizia il server o il proxy.

I client seguono automaticamente le impostazioni del server. I giocatori non devono creare un file di configurazione o modificare l’indirizzo del loro server RakNet.

Tutti i pacchetti di Minecraft utilizzano un canale affidabile e ordinato in ogni direzione, inclusi i delimitatori dei pacchetti e le transizioni del mondo.

Configurazioni del proxy

Quando i giocatori si connettono tramite Velocity o BungeeCord, è necessario configurare il modo ordinato su quel proxy, anche se l’anti-cheat viene eseguito su un server backend.

La politica si applica a tutti gli switch backend. Nel modo ordinato, il proxy invia le richieste di mantenimento del client al client reale, invece di rispondere localmente.

Verificare le impostazioni

Nella prima connessione RakNet, la console riporta:

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

Un successivo scambio di compatibilità registra anche “ordered compatibility negotiated”, seguito dall’indirizzo del peer.

Tenere attive le verifiche anti-cheat e validare la propria configurazione specifica.

Clienti più vecchi

I client RakNet che non supportano il modo ordinato non possono connettersi a un server che lo richiede. Aggiornare Raknetify2 su quei client, oppure connettersi utilizzando l’indirizzo e la porta TCP normali del server o del proxy senza il prefisso raknet;.

Tornando al modo multicanale

Modificare il file in:

{"mode": "multichannel"}

Poi riavviare il server o il proxy. La rimozione del file ripristina anche il modello multicanale dopo il riavvio.

Problemi di configurazione

Il file deve contenere una sola impostazione, mode, con valore "ordered" o "multichannel". Le maiuscole e le minuscole sono significative.

Reclama le connessioni RakNet quelle configurazioni inviate che sono invalidhe o illeggibili. Correggi il file e riavvia il processo.

Se la console continua a riportare multichannel, verificare che il file si trovi nel direttorio di lavoro del server o del proxy che accetta la connessione RakNet, quindi riavviare quel processo.

Trasferimenti automatici

I server di Fabric, Forge e NeoForge possono selezionare RakNet quando trasferiscono un client compatibile a una destinazione configurata. Questo utilizza il supporto di trasferimento nativo di Minecraft, introdotto in Java Edition 1.20.5. Verificate che la vostra versione Raknetify2 supporti la versione e il loader di Minecraft in entrambe le direzioni.

Installare Raknetify2 sul server e sul client di invio. Il destinatario deve disporre di un listener compatibile RakNet e accettare le trasferimenti di Minecraft in entrata.

Questa configurazione si applica alle trasferimenti inviati dai tre mod loaders sopra menzionati. I plugin Spigot/Paper, Velocity e BungeeCord non leggono questo file di trasferimenti.

Configurare il server di invio

Creare il file config/raknetify2-transfers.json nella directory del server di invio:

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

Sostituire l’host nome e i port del modello con i valori del proprio server di destinazione, quindi riavviare il server di invio. Gli altri server di destinazione devono essere inseriti nello stesso array.

Campo Significato
host Hostname o indirizzo IP del destinatario, senza prefisso di trasporto o porta.
tcpPort Porta di destinazione nella richiesta di trasferimento originale
udpPort Il client trasferito deve contattare il port pubblico RakNet.

I numeri di porta TCP e UDP possono essere uguali. Se un router traduce la porta UDP, utilizzare la porta pubblica indicata in questo file. Indicare le porte come numeri JSON.

Inviare le trasferimenti all'host nome ordinario e alla porta TCP del destinatario. Raknetify2 verifica se il client supporta il trasferimento automatico. Per un client in grado e un destinatario corrispondente, seleziona la porta UDP configurata. Altri client e destinazioni non corrispondenti mantengono l'indirizzo di trasferimento originale.

Il matching utilizza il nome host e la porta TCP forniti nella richiesta di trasferimento. Il nome host viene capitalizzato, l’ultimo punto DNS viene mantenuto, e la scrittura IPv6 viene corretta. Le ricerche DNS non partecipano al processo di matching, quindi due nomi host diversi che risolvono allo stesso indirizzo richiedono entrate separate. Le entrate con caratteri wildcard non sono supportate.

Configurazione dei destinazioni

Per una destinazione che utilizza il file server.properties di Minecraft, imposta accepts-transfers=true e riavvia il server. Il proxy della destinazione potrebbe avere le proprie impostazioni di trasferimento. Per impostazione predefinita, Minecraft rifiuta i trasferimenti in arrivo, anche quando la connessione diretta funziona normalmente.

Il listener RakNet del destinatario, il trasferimento pubblico tramite UDP e il firewall dell’host devono essere già configurati. Il file di trasferimento del server mittente seleziona l’indirizzo da inviare al client.

Verificare sia le route IPv4 che quelle IPv6 del destinatario quando il suo host nome pubblica entrambi i tipi di indirizzo. Testare una normale connessione diretta RakNet con il destinatario prima di indagare sul comportamento di trasferimento automatico.

Mantenere attive tutte le verifiche di accesso o autorizzazione. Questa configurazione non concede ai giocatori l’accesso né sostituisce la autenticazione del server.

Errori di configurazione e disattivazione

Campi mancanti, campi sconosciuti, porte invazive e destinazioni duplicate causano un errore di configurazione durante l’inizializzazione. Utilizzare il log del server per identificare l’errore, correggere il JSON e riavviare il server.

Per disattivare la selezione automatica, rimuovere il file di configurazione o utilizzare {"destinations": []}, quindi riavviare il server di invio. Le sue richieste di trasferimento manterranno i loro indirizzi originali.

Inoltro di UDP e protocollo PROXY

Un proxy UDP può inoltrare il traffico RakNet e mantenere l’indirizzo originale del client utilizzando il protocollo PROXY v2. Attiva questa funzione quando un proxy UDP upstream invia tali intestazioni al tuo listener. La normale funzione di inoltro del port del router non richiede tale opzione.

Sul server o sul proxy Minecraft che riceve il traffico UDP inoltrato, creare config/raknetify2-proxy-protocol.json:

{
  "trustedProxies": ["192.0.2.10"]
}

Sostituire l'esempio con l'indirizzo IP originale del proxy UDP o con un intervallo CIDR che controlli. L'indirizzo deve corrispondere a quello che vede il listener ricevente dopo eventuali interventi di NAT. Sono accettati i valori IPv4 e IPv6. Vengono rifiutati i nomi di host DNS. Restartare il server ricevente o il proxy.

Configura il proxy di inoltro affinché invii le intestazioni del protocollo PROXY v2 su UDP. Raknetify2 accetta gli indirizzi dei client inoltrati solo dalle sorgenti elencate. Quando questa configurazione è attiva, le connessioni RakNet dirette prive di queste intestazioni vengono rifiutate. Il listener TCP conserva la configurazione esistente.

Fiducia e accesso

Ciascun proxy nell’elenco è autorizzato a dichiarare gli indirizzi dei client. Sul firewall del backend, limita l’accesso alla porta UDP al solo proxy previsto. Restringi gli intervalli di indirizzi attendibili al minimo necessario per la tua rete.

Il file deve contenere soltanto trustedProxies, con almeno un elemento. Un array vuoto è un errore. Un file non valido impedisce all'ascoltatore RakNet di avviarsi.

Per tornare alle connessioni dirette via UDP, eliminare il file e riavviare il listener. Aggiornare contemporaneamente il comportamento di inoltro upstream e le regole del firewall per la nuova rotta.

Se le connessioni falliscono dopo l’attivazione di questa funzionalità, verificare l’indirizzo di origine effettivo del proxy al backend, il range di indirizzi considerati affidabili, e se il proxy emette i header del protocollo UDP PROXY v2.

Per l’installazione del proxy di Minecraft e la configurazione backend, seguire Velocity e BungeeCord.

Simple Voice Chat

Raknetify2 può condividere il proprio ascoltatore UDP del server con Simple Voice Chat su Fabric, Forge, NeoForge, Spigot e Paper.

Installare Simple Voice Chat sul server e su ogni client che desidera la chat vocale. Per il resto della configurazione, seguire la guida di configurazione del server.

Utilizzare la directory config di livello superiore del server per i file di Raknetify2, incluso su Spigot/Paper. Il file di Simple Voice Chat rimane nella posizione specifica della piattaforma.

Condividi la versione per il gioco.

  1. Creare il file config/raknetify2-voicechat.json nel directory del server con questo contenuto:

    {"enabled": true}
  2. Impostare port=-1 nella configurazione del server di Simple Voice Chat. Su server modificati, questo file si trova in config/voicechat/voicechat-server.properties. Su Spigot/Paper, è plugins/voicechat/voicechat-server.properties.

  3. Lascia vuoto bind_address quando esiste un ascoltatore RakNet corrispondente. Se il server ha più ascoltatori su quel port UDP, imposta il valore sull’indirizzo locale dell’ascoltatore che vuoi condividere.

  4. Riavvia il server ed esegui /voicechat test <PLAYERNAME> per un giocatore connesso.

Se l'ascoltatore di RakNet utilizza una porta diversa da quella di Minecraft, imposta il parametro port sulla porta UDP locale, invece di utilizzare -1. Ad esempio, un ascoltatore di RakNet sulla porta UDP locale 25570 deve avere port=25570.

Impostare voice_host quando i client necessitano di un indirizzo pubblico o di una porta diversa. Per un router che invia il UDP pubblico 25580 al UDP locale 25570, utilizzare port=25570 e voice_host=play.example.com:25580. L’indirizzo pubblico deve essere incluso in voice_host. La impostazione bind_address seleziona il listener locale.

Raknetify2 fornisce il socket UDP condiviso tramite l’API di Simple Voice Chat. Simple Voice Chat gestisce l’autenticazione vocale e la crittografia. I giocatori possono utilizzare la chat vocale sia con connessioni di gioco TCP che con RakNet.

Altri servizi e proxy UDP

Conservare Query e Geyser su porte UDP separate. L’integrazione del socket condiviso supporta soltanto Simple Voice Chat.

L’integrazione non condivide un socket per il proxy vocale su Velocity o BungeeCord. Seguire la guida di configurazione del proxy vocale di Simple Voice Chat e assegnare al proxy vocale un proprio port UDP. Con il plugin vocale ufficiale, impostare qualsiasi valore pubblico voice_host nella configurazione del proxy vocale. Quel plugin ignora le impostazioni voice_host dei server backend.

Per un tunnel UDP generico, imposta voice_host sul nome host pubblico e sul port UDP che invia dati a questo server.

Disattiva la condivisione o risolvi un conflitto di socket.

Se il log riporta “No RakNet listener matches the voice bind address and port”, confermare che RakNet è stato avviato con successo e che la porta vocale e l’indirizzo di connessione corrispondono al suo ascoltatore locale.

Se viene segnalato “Multiple RakNet listeners match the voice bind address”, selezionare un’indirizzo locale specifico in bind_address e riavviare il server.

Solo un plugin Simple Voice Chat può fornire il proprio socket UDP. Se l’avvio del server riporta che un altro plugin già fornisce un socket, è necessario scegliere quale integrazione del socket utilizzare.

Per disattivare l’integrazione di Raknetify2, imposta {"enabled": false} nel suo file di configurazione vocale oppure elimina il file. Assegna a Simple Voice Chat una porta UDP separata, aggiorna le regole del firewall o di inoltro e riavvia il server.

Risoluzione dei problemi

TCP funziona, ma RakNet esce di tempo.

Controllarli in ordine:

  1. Il client dispone del corretto mod Raknetify2 per la sua versione di loader e Minecraft.
  2. Il server o il proxy che accetta la connessione ha installato Raknetify2 e è stato avviato senza errori di listener.
  3. L’indirizzo inizia con raknet; e utilizza la porta UDP pubblica.
  4. Il provider di hosting, il router e il firewall dell’host consentono tutti l’uso di UDP su quel port.
  5. Gli indirizzi IPv4 e IPv6 del nome host conducono al host desiderato e presentano regole di firewall funzionanti.

Una connessione TCP riuscita conferma soltanto la rotta TCP. Seguire La configurazione del firewall e del router per verificare il reindirizzamento di UDP e l’accesso a IPv6. Se il protocollo PROXY è attivo, i client devono raggiungere il listener attraverso un proxy di fiducia configurato.

Indirizzo già in uso

Verifica se c'è un altro processo che utilizza la porta UDP. Geyser e altri servizi UDP necessitano di porte separate. Simple Voice Chat può utilizzare l'integrazione porta-condivisa.

È possibile scegliere un altro port UDP locale utilizzando le impostazioni ascoltatore del server diretto o le impostazioni Velocity e BungeeCord. Verificare i requisiti di versione per l'impostazione Spigot/Paper. Modificare solo il port pubblico del router lascia il socket locale in conflitto.

La connessione funziona, ma la trasferimento non avviene.

Connettersi direttamente al destinatario utilizzando il suo indirizzo raknet;. Se ciò non funziona, prima bisogna correggere il listener del destinatario o la rotta di rete.

Se le connessioni dirette funzionano, verificare se la destinazione accetta trasferimenti in entrata. Un server Minecraft che utilizza server.properties deve avere accepts-transfers=true. Le connessioni dirette non testano questa impostazione.

Quindi confronta il nome host di trasferimento e la porta TCP con config/raknetify2-transfers.json sul server di invio. Conferma che il file è stato caricato dopo un riavvio e che il client supporta i trasferimenti RakNet automatici. Vedi Trasferimenti automatici.

Errori di crittografia o di protocollo

Verificare le versioni di Raknetify2 sia alla parte destra che a quella sinistra della connessione. Aggiornare il client e il server o il proxy insieme quando una nuova versione modifica il protocollo criptato. Conservare le impostazioni di autenticazione del server durante le verifiche.

Errori specifici del mod

Indicare quale azione provoca il fallimento, come l'apertura dell'inventario, la ricezione di un pacchetto di risorse, il cambio di mondo o la creazione di un'entità. Confrontare la stessa azione tramite TCP e RakNet utilizzando una installazione di prova separata, quando possibile.

Alcuni payload personalizzati dipendono dall’ordine dei pacchetti standard. Gli autori dei mod possono dichiarare queste dipendenze attraverso l’interfaccia per l’ordine dei pacchetti (packet ordering interface).

Segnala un bug

Aprire un problema nel tracker di problemi di Raknetify2 e includere:

  • Minecraft, Java, loader e versioni Raknetify2 da entrambe le parti.
  • Versioni di software server e proxy, compresi eventuali proxy per la reindirizzazione di UDP.
  • Altri mod installati e le loro versioni.
  • Passaggi per riprodurre il problema e ciò che si sperava che accadesse.
  • Anche se gli stessi passaggi funzionano tramite TCP.
  • Estratti di log relativi al client, al server e al proxy dello stesso tentativo.

Eliminare i token di accesso, le password e altre informazioni private prima di caricare i log. Conservare i messaggi di eccezione e i tracciati di stack necessari per diagnosticare il problema.

Integrazione del mod

Raknetify2 permette ai modder di dichiarare quale traffico Minecraft deve rimanere ordinato utilizzando i loro payload personalizzati. Questo viene utilizzato quando l’elaborazione di un payload richiede un’entità, un blocco, un inventario o un altro stato stabilito da pacchetti precedenti.

Ordine dei gruppi

Gruppo Trasporto correlato
ui Menu e interazioni indipendenti dal mondo
entity Generazione, rimozione e movimento delle entità
world_interaction Invocazioni e altre interazioni dipendenti dal mondo
effects Suoni e particelle
chunk Aggiornamenti di terreno, blocchi e illuminazione

Tutti i gruppi mantengono un ritardo di consegna ordinato all’interno del proprio canale. I pacchetti appartenenti a gruppi diversi possono arrivare in un ordine relativo diverso. È necessario scegliere il gruppo che corrisponde alle dipendenze del payload.

Opcionale integrazione con Fabric

Aggiungere un provider sotto l'entrypoint raknetify:packet_channels nel file fabric.mod.json del tuo mod. Il provider implementa Consumer<BiConsumer<String, String>> utilizzando tipi JDK. Riceve un registro che accetta un identificatore di payload personalizzato e un gruppo di ordinamento.

Unisci questa entrata ai tuoi metadati esistenti, sostituendo il nome della classe con il nome completo del tuo provider:

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

Rimuovere il resto del file fabric.mod.json, compresi i suoi record di accesso esistenti. Questo è un frammento del file dei metadati.

Ad esempio, un’estensione per il movimento di entità può registrare example:entity_path nel gruppo entity. La documentazione dell’API PacketOrdering include l’implementazione del provider.

Fabric lascia questo punto di accesso non invocato quando Raknetify2 è assente. I fornitori dovrebbero dichiarare gli identificatori e i gruppi durante l’inizializzazione, senza affidarsi al fatto che un altro mod abbia completato la propria inizializzazione.

Comportamento di registrazione

I mod Forge e NeoForge, nonché i plugin per server o proxy, possono chiamare PacketOrdering.register(identifier, group) durante l’inizializzazione quando Raknetify2 è disponibile. La classe è com.ishland.raknetify.api.PacketOrdering. Registrare prima di accettare le connessioni dei giocatori, e evitare che il codice di integrazione opzionale carichi le classi di Raknetify2 quando la dipendenza è assente.

Le dichiarazioni si applicano alle nuove connessioni. Le connessioni già aperte mantengono le regole ricevute all’avvio. È possibile ripetere una dichiarazione identica. Se per lo stesso identificatore si indicano gruppi in conflitto, la dichiarazione viene rifiutata.

Gli identificatori del payload devono utilizzare un namespace personalizzato valido. Il namespace minecraft è riservato. Il limite totale per l’endpoint è di 128 dichiarazioni, inclusi i regolamenti integrati e i registrazioni provenienti da altri mod. Gli identificatori possono contenere fino a 255 caratteri ASCII, utilizzando la sintassi di identificazione del namespace fornita dall’API.

I peer RakNet aggiornati scambiano dichiarazioni durante la configurazione della connessione. Un server o un proxy può utilizzare la dichiarazione di un peer quando non ha regole locali per quel payload. Le regole locali hanno priorità, e le dichiarazioni dei peer rimangono valide solo per quella connessione.

Proxy UDP

Vedi Riflessione di UDP e protocollo PROXY per i relay di UDP e le indirizzi dei client reindirizzati.

Per la configurazione del proxy in Minecraft, vedere Velocity e BungeeCord.

English (US)

Clone this wiki locally