Repository navigation
Wiki pt pt
- Início
- Instalação
- Velocity e BungeeCord
- Configuração de firewall e roteador
- Compatibilidade
- Modo Ordenado
- Transferências automáticas
- Reenvio de UDP e protocolo PROXY
- Simple Voice Chat
- Resolução de problemas
- Integração de mods
- UDP proxies
Ligações de rede através do RakNet para clientes e servidores de Minecraft.
| Minecraft | Raknetify2 | Cliente / Servidor |
|---|---|---|
| Fabric | mods/raknetify2-fabric-*.jar |
Cliente / Servidor |
| Forge | mods/raknetify2-forge-*.jar |
Cliente / Servidor |
| NeoForge | mods/raknetify2-neoforge-*.jar |
Cliente / Servidor |
| Spigot / Paper | plugins/raknetify2-spigot-*.jar |
Servidor |
| Velocity | plugins/raknetify2-velocity-*.jar |
Velocity |
| BungeeCord | plugins/raknetify2-bungee-*.jar |
BungeeCord |
-
Multijogador
-
Adicionar
-
Endereço do servidor
Endereço do servidor RakNet · UDP raknet;play.example.com:25565TCP play.example.com:25565 -
Concluído
-
Entrar
| F3 | |
|---|---|
| RakNet · UDP | Ativo · MTU 1400 |
| TCP | Inativo |
- Cliente · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
- Velocity / BungeeCord → TCP → Servidor
| Número da 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 |
| Endereço do servidor | UDP |
|---|---|
raknet;play.example.com:25580 |
play.example.com:25580 → NAT → 192.0.2.10:25570
|
Servidor · 192.0.2.10
|
25570/udp |
Servidor / Velocity / BungeeCord
| JSON | |
|---|---|
| ① ② ③ | {"mode":"ordered"} |
| ① ∥ ② ∥ ③ | {"mode":"multichannel"} |
| Servidor | 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
| Endereço do servidor | trustedProxies |
RakNet |
|---|---|---|
192.0.2.10 · PROXY v2 / UDP |
["192.0.2.10"] |
✓ |
192.0.2.11 · PROXY v2 / UDP |
["192.0.2.10"] |
✗ |
| Cliente → RakNet / UDP | ["192.0.2.10"] |
✗ |
config/raknetify2-proxy-protocol.json
{"trustedProxies":["192.0.2.10"]}-
Servidor A · Fabric / Forge / NeoForge ·
config/raknetify2-transfers.json{"destinations":[{"host":"play.example.com","tcpPort":25565,"udpPort":25570}]} -
Servidor B ·
play.example.com·server.properties→accepts-transfers=true -
Servidor A ·
/transfer play.example.com 25565 Alex→ Cliente (Alex) → RakNet ·play.example.com:25570
| Minecraft | |
|---|---|
ui |
Opções |
entity |
Esqueleto |
world_interaction |
Inventário |
effects |
Partículas |
chunk |
Blocos |
- Fabric ·
compatibility.json·gameVersions/runtimes/depends - Forge / NeoForge / Spigot / Paper · GitHub Releases
O Raknetify2 utiliza RakNet sobre UDP no modo multijogador de Minecraft. O tráfego é repartido por canais que preservam, cada um, a ordem dos seus pacotes. Se um pacote se perder num canal, os outros podem continuar a transmitir. Assim, o jogo pode continuar a responder enquanto os dados perdidos são reenviados ou são transferidas partes do mundo.
O Raknetify2 é uma bifurcação do Raknetify, originalmente desenvolvido por ishland, e tem manutenção independente. Acrescenta suporte para versões mais recentes de Minecraft e mantém o código de transporte, as integrações com as diferentes plataformas e os testes de compatibilidade.
- Verifique a compatibilidade com Minecraft e mods.
- Escolha um ficheiro para download e instale-o.
- Conecte-se a um endereço como
raknet;play.example.com.
- Velocity e BungeeCord
- Configuração de firewall e roteador
- Transferências automáticas
- Reenvio de UDP e protocolo PROXY
- Compartilhando um port UDP com o Simple Voice Chat
- Resolução de problemas e relatórios de bugs
Os autores de mods podem usar a interface de ordenamento de pacotes para declarar dependências entre payloads personalizados e o tráfego do Minecraft.
O Raknetify2 utiliza a licença MIT e mantém as notas de direitos autorais originais. Sua implementação de rede baseia-se no Raknetify e no netty-raknet.
Baixe uma versão do GitHub Releases. Verifique a versão do Minecraft e os requisitos de carregamento para aquela versão antes de instalar.
| Onde você está instalando | Arquivo | Pastas |
|---|---|---|
| Cliente ou servidor do Fabric | raknetify2-fabric-*.jar |
mods |
| Forge client ou server | raknetify2-forge-*.jar |
mods |
| Cliente ou servidor NeoForge | raknetify2-neoforge-*.jar |
mods |
| Spigot ou servidor Paper | raknetify2-spigot-*.jar |
plugins |
| Velocity proxy | raknetify2-velocity-*.jar |
plugins |
| BungeeCord proxy | raknetify2-bungee-*.jar |
plugins |
Feche o cliente ou pare o servidor antes de substituir o JAR. Remova o JAR original do Raknetify e qualquer JAR mais antigo do Raknetify2 da mesma instalação antes de adicionar o novo ficheiro.
As pastas do cliente pertencem à instância Minecraft ou ao modpack que você inicia. As pastas do servidor e do proxy pertencem à instalação do servidor ou do proxy. Crie a pasta apropriada se o seu carregador ainda não a tiver criado.
- Instale o mod de cliente para o seu loader.
- Instale o mod de servidor correspondente, ou o plugin Spigot/Paper, em um servidor compatível.
- Siga configuração de Firewall e roteador para permitir conexões UDP com o servidor.
- Reinicie o cliente e o servidor.
- Adicione um endereço de servidor, como
raknet;play.example.comouraknet;play.example.com:25565.
Endereços sem o prefixo raknet; utilizam TCP.
A instalação do mod de cliente sozinho não adiciona suporte a RakNet a um servidor remoto. O operador do servidor deve fornecer um ponto final de RakNet. Os jogadores que se juntam ao servidor de outra pessoa geralmente não precisam de regras de encaminhamento do roteador de entrada.
Instale o plugin de proxy correspondente e o mod cliente. Siga Velocity e BungeeCord para as configurações de listener, reencaminhamento de backend, restrições de acesso e o endereço que os jogadores devem usar.
Para um servidor Minecraft direto, defina o argumento Java apropriado abaixo. Os operadores de proxy devem usar as configurações de Velocity e BungeeCord listener.
| Plataforma | Argumento Java | Portas aceitas |
|---|---|---|
| Servidor Fabric, Forge ou NeoForge | -Draknetify.fabric.portOverride=25570 |
1 até 65534
|
| Spigot ou servidor Paper | -Draknetify.spigot.portOverride=25570 |
1 até 65535
|
Forge e NeoForge utilizam o código de listener compartilhado, portanto o nome de suas propriedades também contém fabric. Substitua 25570 pela porta UDP desejada.
Spigot / Paper ≥ 0.1.0-beta.1.431
Adicione o argumento antes de -jar na comandos Java, ou no campo de argumentos da JVM do seu host. Reinicie o servidor e permita o UDP na porta de listener escolhida. Se a porta pública também for 25570, conecte-se com raknet;play.example.com:25570. Se um roteador traduzir a porta, use sua porta pública na endereço do cliente. A porta TCP permanecerá no seu valor atual.
No Spigot/Paper, o listener UDP mantém o endereço de bind local do listener TCP de Minecraft. Um override inválido ou porta UDP ocupada impede que o RakNet seja iniciado. Verifique o log de inicialização para o endereço e porta de UDP associados. Remova o argumento e reinicie para retornar ao número de porta do listener TCP.
Um roteador ou proxy UDP também pode exibir uma porta pública UDP diferente e redirecioná-la para o listener existente, sem alterar os argumentos do servidor em Java.
Abra uma execução main bem-sucedida em GitHub Actions e baixe seu ficheiro Artifacts. O GitHub requer uma conta para baixar os artefatos do fluxo de trabalho. Use a tabela de instalação acima para escolher um JAR do ficheiro.
Velocity e BungeeCord estão localizados entre os jogadores e os servidores back-end do Minecraft. Instale Raknetify2 no proxy e em cada cliente que se conectará através de RakNet.
Cliente Raknetify2 --UDP--> Velocity ou BungeeCord --TCP--> servidor de destino
Os servidores backend não precisam do Raknetify2 para este caminho de conexão. Eles ainda precisam dos mods, plugins e suporte de encaminhamento necessários para a sua rede. O Raknetify2 não traduz as versões do Minecraft nem altera a autenticação do conta do proxy.
- Confirme que as conexões TCP comuns através do seu proxy funcionam, incluindo a autenticação e a mudança entre servidores backends.
- Desligue o proxy e faça o download do plugin correspondente em GitHub Releases.
- Coloque
raknetify2-velocity-*-all.jarouraknetify2-bungee-*-all.jarna pastapluginsdo proxy. Remova qualquer plugin Raknetify ou Raknetify2 mais antigo dessa pasta. - Instale o mod de cliente Raknetify2 apropriado usando o guia de instalação.
- Verifique as configurações de listener abaixo, reinicie o proxy e examine seu log para detectar erros no listener do RakNet.
- Permitir o tráfego público UDP para o proxy e restringir as portas de jogabilidade de back-end, conforme descrito em Configuração de Firewall e roteador.
Use versões compatíveis do Raknetify2 no cliente e no proxy. Verifique Compatibilidade antes de misturar versões.
A configuração bind no velocity.toml seleciona o endereço de escuta do Minecraft e a porta TCP do Velocity. O Raknetify2 normalmente usa o mesmo número de porta para o UDP. As entradas [servers] identificam os servidores back-end. Essas entradas devem apontar para as endereças TCP dos servidores back-end. Veja a referência de configuração do Velocity.
Para usar um porto UDP separado, adicione este argumento JVM antes de -jar na comanda de inicialização do Velocity:
-Draknetify.velocity.portOverride=25570
Substitua 25570 pelo seu porto escolhido. Isso altera o porto UDP do RakNet, mantendo o porto TCP e as endereças de backend do Velocity. Reinicie o Velocity após alterar o argumento.
Configure o encaminhamento de jogadores tanto no Velocity quanto em seus backends. Use o encaminhamento moderno quando o software de backend o suporta, e mantenha o encaminhamento secreto e privado. Siga as instruções específicas do backend no guia de encaminhamento de informações de jogador do Velocity. Mantenha as restrições do firewall de backend ativas ao mesmo tempo que o encaminhamento.
No config.yml do BungeeCord, o valor host sob cada entrada listeners identifica um endereço de escuta e porta TCP do Minecraft. O Raknetify2 normalmente adiciona UDP nesse número de porta. As entradas servers contêm endereços TCP de backend. Essas configurações são descritas no guia de configuração do BungeeCord.
Para um porto UDP separado, adicione este argumento JVM antes de -jar na comandos de inicialização do BungeeCord:
-Draknetify.bungee.portOverride=25570
A sobreposição pertence a todo o processo de proxy. Para uma configuração com vários ouvintes do Minecraft, verifique os endpoints reais do RakNet no log de inicialização antes de adicionar regras de firewall. Reinicie o BungeeCord após alterar o argumento.
Preserve a autenticação do conta no proxy. Para backends Spigot, o guia de redirecionamento de IP do BungeeCord combina ip_forward: true no proxy com settings.bungeecord: true no backend. A redirecionamento sozinho não impede que alguém se conecte diretamente a um backend. Restringir o acesso ao backend usando as instruções do firewall.
Ambos os override de proxy aceitam portas de 1 a 65534. Valores inválidos são ignorados, portanto verifique a porta UDP associada no log de inicialização. Remova o argumento e reinicie para retornar ao número da porta do listener do Minecraft.
Os jogadores se conectam ao nome de host público do proxy e à porta UDP, por exemplo raknet;play.example.com:25570. Quando um roteador traduz portas, use sua porta UDP pública na endereço do cliente. Endereços sem o prefixo raknet; continuam a usar o ouvinte TCP do proxy.
Deixe a Query, o Geyser e outros serviços UDP em portas UDP separadas. Um porto TCP diferente não resolve um conflito de soquetes UDP.
O Simple Voice Chat utiliza seu próprio plugin de proxy e porta UDP no Velocity e BungeeCord. Siga as instruções para o proxy de voz chat para essa configuração.
Se um relay UDP separado estiver localizado em frente ao seu proxy Minecraft e enviar cabeçalhos do protocolo PROXY v2, configure o Raknetify2 usando redirecionamento de UDP e protocolo PROXY. A instalação do Velocity ou do BungeeCord sozinha não requer essa configuração.
Teste a partir da sua rede local com um cliente Raknetify2. Junte-se através do proxy, alterne entre os servidores de back-end que utiliza e confirme que a identidade do jogador e as permissões permanecem corretas.
- Se o TCP através do proxy funcionar, mas o RakNet expirar, verifique o listener UDP do proxy, a porta pública, as rotas IPv4 e IPv6, e as regras de firewall.
- Se ambos os transportes falharem quando o proxy se conecta a um backend, verifique o endereço TCP do backend, as regras de acesso e a configuração de redirecionamento de jogadores.
- Se o proxy relatar um porto UDP ocupado, verifique se há um processo de Query, Geyser, um proxy de voz ou outro processo ligado a ele.
Para relatórios, inclua tanto os logs do proxy quanto os do backend da mesma tentativa de conexão. Consulte Troubleshooting para obter informações sobre a versão a ser incluída.
Este guia é destinado a operadores de servidores. O Raknetify2 precisa de uma rota UDP funcional para o servidor ou proxy que aceita conexões RakNet. A configuração padrão utiliza o mesmo número de porta que o listener TCP do Minecraft.
Para jogadores na mesma rede local, use o endereço local do servidor e permita o UDP através do firewall do host. É necessário o encaminhamento da porta do roteador quando o tráfego da internet precisa atravessar o NAT IPv4 do roteador.
Envie tráfego público UDP para a máquina que executa o servidor Minecraft com Raknetify2. A porta de destino é a listener UDP do RakNet desse servidor. Permita essa porta no firewall do host da máquina do servidor. Mantenha sua rota TCP existente para conexões comuns do Minecraft.
Por exemplo, se o Raknetify2 escuta em UDP 25570, encaminhe a porta UDP pública para o endereço local do servidor na porta 25570. A porta TCP do servidor pode permanecer em 25565. Veja configurações de ouvinte do servidor direto para escolher uma porta UDP diferente.
Envie tráfego público em UDP para a máquina que executa Velocity ou BungeeCord, utilizando o plugin de proxy Raknetify2. Use o listener UDP de RakNet do proxy como destino de encaminhamento. Mantenha a rota TCP pública existente do proxy para conexões comuns do Minecraft.
O proxy se conecta aos servidores do Minecraft via TCP. A adição do Raknetify2 ao proxy não requer a abertura de portas UDP para o jogo para os jogadores.
| Conexão | Acesso permitido |
|---|---|
| Jogadores para o proxy | UDP público para o listener do RakNet, além do listener TCP público existente. |
| Proxy para servidores back-end | Portas TCP do backend Minecraft, acessíveis apenas a partir dos hosts de proxy previstos |
| Jogadores diretamente para as portas de jogo de back-end | Mantenha bloqueado, incluindo através de IPv6. |
Quando o proxy e os backends são executados diretamente em uma máquina dedicada que você controla, os ouvintes de backends podem usar endereços de loopback com o proxy configurado para alcançá-los. Entre máquinas, restrinha o acesso TCP de backends ao proxy usando um firewall ou uma rede privada isolada. Containers e hosts gerenciados precisam de restrições equivalentes para sua estrutura de rede. Veja o guia de segurança de backends do Velocity e o guia de firewall do BungeeCord.
O encaminhamento de jogadores e as restrições do firewall funcionam em conjunto. O acesso direto ao backend pode contornar os verificações de login do proxy. Para instalação de plugins, configurações de encaminhamento e substituição de portas UDP, siga Velocity e BungeeCord.
A porta pública e a porta do listener podem diferir quando um roteador faz a tradução entre elas:
| Configuração | Porto para usar |
|---|---|
| Endereço do cliente e do servidor | Porta UDP Pública |
| Regra de encaminhamento do roteador para porta externa | Porta UDP Pública |
| Porto interno da regra de encaminhamento do roteador | Porta UDP do listener de RakNet |
| Porta local do firewall do host | Porta UDP do listener de RakNet |
Para hospedagem atrás de um roteador IPv4:
- Encontre o endereço IPv4 local da máquina que aceita conexões RakNet. Use uma reserva DHCP ou um endereço estático adequado para que a regra de encaminhamento continue a segmentar essa máquina.
- Adicione uma regra de encaminhamento UDP para a porta pública que os jogadores usarão.
- Defina o destino da regra para o endereço local daquela máquina e para a porta UDP do ouvido de RakNet.
- Permitir UDP de entrada na porta do listener no firewall do host.
Por exemplo, um servidor que escuta na porta UDP 25565 pode usar uma regra com porta pública 25565, endereço de destino 192.168.1.100 e porta de destino 25565. Substitua o endereço de exemplo pelo endereço local real do seu servidor.
Mantenha a regra TCP existente para conexões comuns do Minecraft. Uma regra de redirecionamento TCP sozinha não transmite UDP.
Verifique se outro roteador ou o seu ISP realiza NAT antes que o tráfego chegue ao seu roteador. Com dois roteadores, a reencaminhamento deve cobrir ambos. Se o seu ISP utilizar NAT de nível de operadora, pergunte se ele pode fornecer um endereço IPv4 público ou usar um serviço de hospedagem ou túnel que suporte UDP de entrada. A regra de reencaminhamento do seu roteador não pode configurar o NAT do ISP. Consulte a orientação da TP-Link sobre reencaminhamento de portas para saber sobre a exigência de endereço WAN público.
Permita a porta UDP selecionada através tanto do firewall IPv6 do roteador quanto do firewall do host. Direcione o endereço IPv6 da máquina que aceita conexões RakNet.
Verifique se o endereço IPv6 do nome de host aponta para aquela máquina. Se o seu endereço IPv6 mudar, atualize o registro DNS e todas as regras de firewall específicas para o endereço.
Um nome de host que publica tanto endereços IPv4 quanto IPv6 precisa de uma rota funcional para cada endereço anunciado. Verifique ambos os conjuntos de regras quando um jogador pode se conectar e outro não.
Se a reencaminhamento via IPv4 alterar o número da porta, assegure-se de que a porta utilizada pelos jogadores também atinja o ouvinte IPv6. A tradução da porta via IPv4 não configura a rota IPv6.
O provedor ou túnel deve suportar UDP no ponto final público que você fornece aos jogadores. Verifique as alocações de portas e as regras do firewall de rede, bem como o firewall próprio do servidor.
Se um proxy UDP adicional encaminha endereços de clientes usando o protocolo PROXY v2, siga UDP forwarding and PROXY protocol e restreia o acesso ao listener UDP receptor ao proxy confiável.
Conecte-se fora da rede local do servidor com um cliente Raknetify2 atualizado, utilizando um endereço como raknet;play.example.com:25565. Use a porta UDP pública neste endereço.
Use uma conexão real do RakNet para verificar a rota. Um escaneamento UDP que não recebe resposta pode reportar um resultado inconclusivo, pois um serviço funcionando pode descartar uma sonda desconhecida. A documentação de escaneamento UDP do Nmap explica esse comportamento.
Uma conexão TCP bem-sucedida confirma apenas a rota TCP. Se o RakNet expirar, verifique o listener, o destino de encaminhamento, a porta UDP e as regras de firewall usando o guia de solução de problemas.
Verifique a compatibilidade com a versão específica que você está baixando. A ramificação de desenvolvimento pode conter suporte que ainda não apareceu em uma versão.
Para o Fabric, baixe o compatibility.json da mesma versão do JAR. Verifique a sua versão do Minecraft em gameVersions, e depois consulte a entrada relevante em runtimes para os requisitos depends. Este ficheiro JSON é um documento de referência e não precisa estar na pasta mods.
Para Forge, NeoForge e Spigot/Paper, verifique os requisitos de versão declarados pelo artefato e pela sua lista de download. O suporte em um carregador não garante suporte em outro.
O requisito de Java declarado pelo Raknetify2 é o mínimo necessário. O Minecraft ou o loader pode exigir uma versão mais recente de runtime. Escolha uma versão de Java que atenda a todos os três requisitos.
Use a mesma versão Raknetify2 no cliente e no servidor, ou no proxy que aceita sua conexão, sempre que possível. Verifique as notas da versão antes de misturar as versões. Conexões RakNet criptografadas exigem suporte para o protocolo de criptografia autenticada em ambos os lados. As versões originais Raknetify e Raknetify2 criadas antes da introdução desse protocolo não podem estabelecer essas conexões criptografadas com peers atualizados.
Raknetify2 suporta o protocolo de jogo existente do Minecraft. A conexão de diferentes versões do Minecraft requer uma configuração de tradução de protocolo compatível.
O workflow de construção inclui verificações de compatibilidade que envolvem Polymer, Krypton, PacketFixer e Fast IP Ping. Essas verificações abrangem as versões e combinações selecionadas pelo workflow. Verifique os resultados da construção associados a uma versão específica ao investigar uma combinação particular.
Para casos de falhas em um modpack maior, siga o guia de solução de problemas. Inclua as versões completas dos mods em seu relatório.
Normalmente, o Raknetify2 permite que canais de pacotes independentes continuem a funcionar enquanto um canal espera por dados ausentes. O modo ordenado coloca todos os pacotes do Minecraft em um único canal, de modo que um pacote ausente retarda todos os pacotes subsequentes nessa direção até que seja retransmitido. Isso preserva a ordem esperada por alguns softwares anti-cheat, mas sacrifica a capacidade do Raknetify2 de manter o tráfego não relacionado ao jogo em movimento durante esse período de espera.
-
Instale uma versão do Raknetify2 que suporte o modo ordenado no servidor ou proxy que aceite conexões RakNet, e em cada cliente RakNet.
-
Crie o ficheiro
config/raknetify2-compatibility.jsonno diretório do servidor ou do proxy. Crie também o diretórioconfigse ele ainda não existir. -
Adicione o seguinte:
{"mode": "ordered"} -
Reinicie o servidor ou o proxy.
Os clientes seguem as configurações do servidor automaticamente. Os jogadores não precisam criar um ficheiro de configuração ou alterar o endereço do servidor RakNet.
Todos os pacotes de Minecraft utilizam um canal confiável e ordenado em cada direção, incluindo os delimitadores de pacotes e as transições do mundo.
Quando os jogadores se conectam através do Velocity ou BungeeCord, configure o modo ordenado nesse proxy, mesmo que o anti-cheat esteja em execução em um servidor backend.
A política aplica-se a todos os comutadores de back-end. No modo ordenado, o proxy encaminha as solicitações de keepalive do back-end para o cliente real, em vez de responder a elas localmente.
Na primeira conexão RakNet, a consola reporta:
Raknetify2 compatibility: ordered (updated clients required, genuine acknowledgements)
Uma troca de compatibilidade bem-sucedida também registra ordered compatibility negotiated, seguida pela endereço do peer.
Mantenha os verificações anti-cheat ativados e valide sua configuração específica.
Clientes RakNet que não suportam o modo ordenado não podem se conectar a um servidor que o exige. Atualize o Raknetify2 nesses clientes, ou conecte-se usando o endereço e porta TCP normais do servidor ou do proxy, sem o prefixo raknet;.
Altere o ficheiro para:
{"mode": "multichannel"}Em seguida, reinicie o servidor ou o proxy. A remoção do ficheiro também restaura o modo multicanal após a reinicialização.
O ficheiro deve conter exatamente uma configuração chamada mode, cujo valor pode ser "ordered" ou "multichannel". Os valores são sensíveis à maiúsculas e minúsculas.
Rejeite apenas as conexões RakNet que tenham configuração inválida ou ilegível. Corrija o ficheiro e reinicie o processo.
Se a consola ainda reportar multichannel, verifique se o ficheiro está no diretório de trabalho do servidor ou do proxy que aceita a conexão RakNet, e então reinicie esse processo.
Servidores Fabric, Forge e NeoForge podem selecionar RakNet ao transferir um cliente compatível para um destino configurado. Isso utiliza o suporte de transferência nativo do Minecraft, introduzido na Java Edition 1.20.5. Verifique se a sua versão Raknetify2 suporta a versão e o carregador do Minecraft em ambos os lados.
Instale o Raknetify2 no servidor e no cliente de envio. O destino deve fornecer um listener RakNet compatível e aceitar transferências de Minecraft entrantes.
Esta configuração aplica-se às transferências enviadas pelos três carregadores de mods acima. Os plugins Spigot/Paper, Velocity e BungeeCord não lêem este ficheiro de transferências.
Crie o config/raknetify2-transfers.json no diretório do servidor de envio:
{
"destinations": [
{
"host": "play.example.com",
"tcpPort": 25565,
"udpPort": 25570
}
]
}Substitua o exemplo de nome de host e portas pelos valores da sua destinação, e então reinicie o servidor de envio. Outras destinações devem ser inseridas no mesmo array.
| Campo | Significado |
|---|---|
host |
Hostname ou endereço IP do destino, sem prefixo de transporte ou porta |
tcpPort |
Porta de destino na solicitação de transferência original |
udpPort |
O porto público RakNet do cliente transferido deve entrar em contato |
Os números das portas TCP e UDP podem ser iguais. Se um roteador traduz a porta UDP, use a porta pública indicada neste ficheiro. Escreva as portas como números JSON.
Enviar transferências para o nome de host normal e porta TCP do destino. O Raknetify2 verifica se o cliente oferece suporte a transferências automáticas. Para um cliente capaz e um destino compatível, ele seleciona a porta UDP configurada. Outros clientes e destinos não compatíveis mantêm o endereço de transferência original.
O matching utiliza o nome do host e a porta TCP da solicitação de transferência. A capitalização do nome do host, o ponto final no DNS e a ortografia equivalente do IPv6 são normalizados. As buscas DNS não participam do matching, portanto, dois nomes de host diferentes que resolvam para o mesmo endereço precisam de entradas separadas. Entradas de tipo “wildcard” não são suportadas.
Para um destino que utiliza o server.properties do Minecraft, defina accepts-transfers=true e reinicie-o. Um proxy de destino pode ter suas próprias configurações de transferência. O Minecraft padrão rejeita transferências recebidas, mesmo quando uma conexão direta normal funciona.
O listener RakNet do destino, o encaminhamento público de UDP e o firewall do host devem já estar configurados. O ficheiro de transferências do servidor de envio seleciona o endereço enviado ao cliente.
Verifique as rotas IPv4 e IPv6 do destino quando o nome de host dele publica ambos os tipos de endereço. Teste uma conexão direta comum RakNet com o destino antes de investigar o comportamento de transferência automática.
Mantenha as verificações de login ou de admissão em vigor. Esta configuração não concede acesso aos jogadores nem substitui a autenticação do servidor.
Campos faltando, campos desconhecidos, portas inválidas e destinos duplicados causam um erro de configuração durante a inicialização. Use o log do servidor para identificar o erro, corrija o JSON e reinicie.
Para desativar a seleção automática, remova o ficheiro de configuração ou use {"destinations": []}, e então reinicie o servidor de envio. Suas solicitações de transferência manterão seus endereços originais.
Um proxy UDP pode redirecionar o tráfego RakNet e preservar o endereço original do cliente usando o protocolo PROXY v2. Ative esta funcionalidade quando um proxy UDP upstream envia esses cabeçalhos para o seu listener. A redefinição de porta de roteador comum não requer isso.
No servidor ou no proxy Minecraft que recebe o tráfego UDP encaminhado, crie o ficheiro config/raknetify2-proxy-protocol.json:
{
"trustedProxies": ["192.0.2.10"]
}Substitua o exemplo pela verdadeira endereço IP da proxy UDP ou por uma faixa de CIDR sob seu controle. O endereço deve corresponder ao que o listener receptor vê após qualquer NAT intermediário. São aceitos literais IPv4 e IPv6. Nomes de hosts DNS são rejeitados. Reinicie o servidor receptor ou a proxy.
Configure o proxy de encaminhamento para enviar cabeçalhos do protocolo PROXY v2 para UDP. O Raknetify2 aceita apenas endereços de clientes encaminhados das fontes listadas. Conexões diretas RakNet sem esses cabeçalhos são rejeitadas enquanto esta configuração estiver ativada. O listener TCP mantém sua configuração existente.
Cada proxy listado é considerado confiável para fornecer endereços de clientes. Restringir o acesso à porta UDP do backend em seu firewall, de modo que apenas o proxy pretendido possa alcançá-la. Mantenha os intervalos de confiança tão restritos quanto a sua rede permitir.
O ficheiro deve conter apenas trustedProxies, com pelo menos um registro. Um array vazio é um erro. Um ficheiro inválido impede que o listener do RakNet seja iniciado.
Para retornar às conexões diretas UDP, remova o ficheiro e reinicie o listener. Atualize também o comportamento de encaminhamento upstream e as regras de firewall para a nova rota.
Se as conexões falharem após ativar esta funcionalidade, verifique o endereço de origem real do proxy no backend, o intervalo de confiança configurado e se o proxy emite cabeçalhos do protocolo UDP PROXY v2.
Para a instalação de um proxy em Minecraft e a configuração de backend, siga Velocity e BungeeCord.
O Raknetify2 pode compartilhar seu listener de servidor UDP com o Simple Voice Chat em Fabric, Forge, NeoForge, Spigot e Paper.
Instale o Simple Voice Chat no servidor e em cada cliente que deseje chat por voz. Siga o guia de configuração do servidor para o resto da configuração.
Use a pasta config de nível superior do servidor para os ficheiros do Raknetify2, incluindo os do Spigot/Paper. O próprio ficheiro do Simple Voice Chat permanece na localização específica da plataforma abaixo.
-
Crie o ficheiro
config/raknetify2-voicechat.jsonno diretório do servidor com este conteúdo:{"enabled": true} -
Defina
port=-1na configuração do servidor do Simple Voice Chat. Nos servidores modificados, este valor está emconfig/voicechat/voicechat-server.properties. No Spigot/Paper, está emplugins/voicechat/voicechat-server.properties. -
Deixe
bind_addressvazio quando houver um listener RakNet correspondente. Se o servidor tiver vários listeners naquela porta UDP, defina-a como o endereço local do listener que deseja compartilhar. -
Reinicie o servidor e execute o
/voicechat test <PLAYERNAME>para um jogador conectado.
Se o ouvido do RakNet usar uma porta diferente da do Minecraft, defina o parâmetro port para essa porta UDP local, em vez de usar -1. Por exemplo, um ouvido do RakNet na porta UDP local 25570 precisa de port=25570.
Defina voice_host quando os clientes precisarem de um endereço público ou porta diferente. Para um roteador que encaminha o UDP público 25580 para o UDP local 25570, use port=25570 e voice_host=play.example.com:25580. O endereço público deve estar em voice_host. A configuração bind_address seleciona um listener local.
Raknetify2 fornece o soquete UDP compartilhado através da API do Simple Voice Chat. O Simple Voice Chat gerencia a autenticação e a criptografia de voz. Os jogadores podem usar o chat de voz com conexões de jogo TCP ou RakNet.
Mantenha a Query e o Geyser em portas UDP separadas. A integração com o socket compartilhado suporta apenas o Simple Voice Chat.
A integração não partilha um socket de proxy de voz em Velocity ou BungeeCord. Siga o guia de configuração do proxy de voz Simple Voice Chat e atribua ao proxy de voz um porto UDP próprio. Com o plugin oficial de proxy de voz, defina qualquer configuração pública voice_host na configuração de voz do proxy. Esse plugin ignora as configurações voice_host dos servidores back-end.
Para um túnel UDP genérico, defina voice_host como o nome de host público e a porta UDP que encaminha para este servidor.
Se o log indicar No RakNet listener matches the voice bind address and port, confirme que o RakNet iniciou com sucesso e que a porta de voz e o endereço de bind correspondem ao seu listener local.
Se o sistema indicar Multiple RakNet listeners match the voice bind address, escolha um endereço local específico em bind_address e reinicie o processo.
Apenas um plugin de Simple Voice Chat pode fornecer o seu soquete UDP. Se o início do serviço reportar que outro plugin já está fornecendo um soquete, escolha qual integração de soquete usar.
Para desativar a integração do Raknetify2, defina {"enabled": false} na configuração de voz do programa, ou remova esse ficheiro. Dê ao Simple Voice Chat um porto UDP separado, atualize as regras de firewall ou de encaminhamento, e reinicie o servidor.
Verifique estes em ordem:
- O cliente possui o mod Raknetify2 correto para sua versão do loader e do Minecraft.
- O servidor ou proxy que aceita a conexão tem o Raknetify2 instalado e iniciado sem erro de listener.
- O endereço começa com
raknet;e utiliza a porta pública UDP. - O provedor de hospedagem, o roteador e o firewall do host permitem o UDP naquela porta.
- Os endereços IPv4 e IPv6 do nome de host levam ao host pretendido e possuem regras de firewall funcionais.
Uma conexão TCP bem-sucedida confirma apenas a rota TCP. Siga configuração de Firewall e roteador para verificar o encaminhamento de UDP e o acesso a IPv6. Se o protocolo PROXY estiver ativado, os clientes devem chegar ao listener através de um proxy confiável configurado.
Verifique se há outro processo utilizando a porta UDP. O Geyser e outros serviços UDP precisam de suas próprias portas. O Simple Voice Chat pode usar a integração da porta compartilhada.
Você pode escolher outra porta UDP local usando as configurações de listener do servidor direto ou as configurações do Velocity e BungeeCord. Verifique os requisitos de versão para a configuração Spigot/Paper. Alterar apenas a porta pública do roteador deixa o conflito do socket local intacto.
Conecte-se diretamente ao destino usando o seu endereço raknet;. Se isso falhar, primeiro corrija o listener do destino ou a rota de rede.
Se as conexões diretas funcionarem, verifique se o destino aceita transferências de dados. Um servidor Minecraft que utiliza server.properties precisa ter accepts-transfers=true. As conexões diretas não testam esta configuração.
Em seguida, compare o nome do host de transferência e a porta TCP com o ficheiro config/raknetify2-transfers.json no servidor de envio. Confirme que o ficheiro foi carregado após um reinício e que o cliente suporta transferências automáticas pelo RakNet. Veja Transferências automáticas.
Verifique as versões do Raknetify2 em ambos os extremos da conexão. Atualize o cliente e o servidor ou o proxy juntos quando uma nova versão altera o protocolo criptografado. Preserve as configurações de autenticação do servidor durante a investigação.
Indique qual a ação que provoca o falha, como abrir um inventário, receber um pacote de recursos, mudar de mundo ou spawnar uma entidade. Compare a mesma ação através de TCP e RakNet usando uma instalação de teste separada, quando possível.
Algumas cargas úteis personalizadas dependem da ordem dos pacotes padrão. Os autores de mods podem declarar essas dependências através da interface de ordenamento de pacotes.
Abra um problema no Raknetify2 issue tracker e inclua:
- Minecraft, Java, loader e versões Raknetify2 em ambos os lados.
- Versões de software de servidor e proxy, incluindo qualquer proxy de encaminhamento de UDP.
- Outros mods instalados e suas versões.
- Passos para reproduzir o problema e o que você esperava que acontecesse.
- Se os mesmos passos funcionam através de TCP.
- Trechos relevantes de logs de clientes, servidores e proxies da mesma tentativa.
Antes de enviar os registos, retire os tokens de acesso, as palavras-passe e quaisquer outros dados privados. Conserve as mensagens de exceção e os rastreios da pilha necessários para diagnosticar o problema.
Raknetify2 permite que os mods declarem qual tráfego do Minecraft deve permanecer organizado com seus payloads personalizados. Use isso quando o tratamento de um payload exigir uma entidade, bloco, inventário ou outro estado estabelecido por pacotes anteriores.
| Grupo | Tráfego relacionado |
|---|---|
ui |
Menus e interações independentes do mundo |
entity |
Geração de entidades, remoção e movimento |
world_interaction |
Inventários e outras interações dependentes do mundo |
effects |
Sons e partículas |
chunk |
Atualizações de terreno, blocos e iluminação |
Todas as grupos mantêm uma entrega ordenada e confiável dentro do seu canal. Pacotes de grupos diferentes podem chegar em uma ordem relativa diferente. Escolha o grupo que corresponde à dependência do payload.
Adicione um provedor sob o ponto de entrada raknetify:packet_channels no fabric.mod.json do seu mod. O provedor implementa Consumer<BiConsumer<String, String>> usando tipos do JDK. Ele recebe um registrador que aceita um identificador de payload personalizado e um grupo de ordem.
Consolide este registo nos seus metadados existentes, substituindo o nome da classe pelo nome completo do seu fornecedor:
{
"entrypoints": {
"raknetify:packet_channels": [
"com.example.mod.OrderingProvider"
]
}
}Mantenha o resto do seu fabric.mod.json, incluindo os seus pontos de entrada existentes. Este é um fragmento do ficheiro de metadados.
Por exemplo, uma extensão de movimento de entidade pode registrar example:entity_path no grupo entity. A documentação da API PacketOrdering inclui a implementação do provedor.
Fabric deixa este ponto de entrada sem ser chamado quando Raknetify2 está ausente. Os fornecedores devem declarar identificadores e grupos durante a inicialização, sem depender de outro mod ter concluído sua própria inicialização.
Os mods Forge e NeoForge, bem como os plugins de servidor ou proxy, podem chamar PacketOrdering.register(identifier, group) durante a inicialização quando o Raknetify2 estiver disponível. A classe é com.ishland.raknetify.api.PacketOrdering. Registe antes de aceitar conexões de jogadores, e mantenha o código de integração opcional para não carregar as classes do Raknetify2 quando a dependência estiver ausente.
As declarações aplicam-se a novas conexões. As conexões existentes mantêm as regras que receberam no momento do estabelecimento. É permitido repetir uma declaração idêntica. Grupos conflitantes para o mesmo identificador são rejeitados.
Os identificadores de carga útil devem usar um nome de espaço personalizado válido. O nome de espaço minecraft está reservado. O limite para todo o endpoint é de 128 declarações, incluindo regras integradas e registros de outros mods. Os identificadores podem conter até 255 caracteres ASCII, utilizando a sintaxe de identificadores de nome de espaço da API.
Os peers RakNet atualizados trocam declarações durante a configuração da conexão. Um servidor ou proxy pode usar a declaração de um peer quando não tem regras locais para esse payload. As regras locais têm prioridade, e as declarações dos peers são limitadas a essa conexão.
Veja UDP forwarding e PROXY protocol para relés de UDP e endereços de clientes encaminhados.
Para a configuração do proxy do Minecraft, consulte Velocity e BungeeCord.