Skip to content

Wiki pt br

pjscruggs edited this page Nov 11, 2026 · 2 revisions

Raknetify2 · Português (Brasil)

Idioma

Multijogador

Conexões de rede via RakNet para clientes e servidores de Minecraft.

Baixar · GitHub

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

Adicionar servidor

  1. Multijogador

  2. Adicionar servidor

  3. Endereço do servidor

    Endereço do servidor
    RakNet · UDP raknet;play.example.com:25565
    TCP play.example.com:25565
  4. Concluído

  5. Entrar no servidor

F3 · Raknetify2

F3
RakNet · UDP Ativo · MTU 1400
TCP Inativo

Velocity / BungeeCord

  1. Cliente · Raknetify2 → UDP → Velocity / BungeeCord · Raknetify2
  2. 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

Tempo esgotado

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

config/raknetify2-compatibility.json

Servidor / Velocity / BungeeCord

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

Simple Voice Chat

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

PROXY protocol v2 · UDP

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"]}

Minecraft ≥ 1.20.5 · /transfer

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

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

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

PacketOrdering

Minecraft
ui Opções
entity Esqueleto
world_interaction Inventário
effects Partículas
chunk Blocos

PacketOrdering.java

Versão incompatível!

Informar erros

Início

Raknetify2

O Raknetify2 usa RakNet sobre UDP no modo multijogador de Minecraft. O tráfego é dividido em canais, e cada canal preserva a ordem dos seus pacotes. Se um pacote se perder em um canal, os outros podem continuar a transmitir dados. Assim, o jogo pode continuar respondendo enquanto os dados perdidos são reenviados ou enquanto chunks do mundo são transferidos.

O Raknetify2 é um fork com manutenção independente do Raknetify, desenvolvido originalmente por ishland. O fork adiciona suporte a versões mais recentes de Minecraft e mantém o código de transporte, as integrações com as plataformas e os testes de compatibilidade.

Comece agora

  1. Verifique a compatibilidade com Minecraft e mods.
  2. Escolha um arquivo para download e instale-o.
  3. Conecte-se a um endereço como raknet;play.example.com.

Guias do servidor

Os autores de mods podem usar a interface de ordenação de pacotes para declarar dependências entre payloads personalizados e o tráfego do Minecraft.

Links do Projeto

O Raknetify2 utiliza a licença MIT e mantém as notas de direitos autorais originais. Sua implementação de rede é baseada no Raknetify e no netty-raknet.

Instalação

Baixe uma versão do GitHub Releases. Verifique a versão do Minecraft e os requisitos do loader 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
Servidor 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 seu arquivo JAR. Remova o arquivo original Raknetify JAR e qualquer arquivo Raknetify2 JAR mais antigo da mesma instalação antes de adicionar o novo arquivo.

As pastas do cliente pertencem à instância do Minecraft ou ao modpack que você inicia. As pastas do servidor e do proxy pertencem à instalação desse servidor ou proxy. Crie a pasta apropriada se o seu carregador ainda não a tiver criado.

Conexões diretas com o servidor

  1. Instale o mod do cliente para o seu loader.
  2. Instale o mod de servidor correspondente, ou o plugin Spigot/Paper, em um servidor compatível.
  3. Siga configuração de Firewall e roteador para permitir conexões UDP ao servidor.
  4. Reinicie o cliente e o servidor.
  5. Adicione um endereço de servidor, como raknet;play.example.com ou raknet;play.example.com:25565.

Endereços sem o prefixo raknet; utilizam o TCP.

A instalação do mod do 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.

Velocity e BungeeCord

Instale o plugin de proxy correspondente e o mod cliente. Siga Velocity e BungeeCord para as configurações de listener, redirecionamento de backend, restrições de acesso e o endereço que os jogadores devem usar.

Uma porta de ouvinte UDP separada

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
Servidor Spigot ou Servidor Paper -Draknetify.spigot.portOverride=25570 1 até 65535

Forge e NeoForge usam 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 comando Java, ou no campo de argumentos da JVM do seu host. Reinicie o servidor e permita o UDP na porta de escuta 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 do 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 da 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.

Compilações de desenvolvimento

Abra uma execução bem-sucedida de main em GitHub Actions e baixe seu arquivo 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 a partir do arquivo.

Velocity e BungeeCord

Velocity e BungeeCord ficam entre os jogadores e os servidores do Minecraft. Instale Raknetify2 no proxy e em cada cliente que se conectará via RakNet.

Cliente Raknetify2 --UDP--> Velocity ou BungeeCord --TCP--> servidor backend

Os servidores back-end não precisam do Raknetify2 para esse caminho de conexão. Eles ainda precisam dos mods, plugins e suporte de encaminhamento exigidos pela sua rede. O Raknetify2 não traduz as versões do Minecraft nem altera a autenticação do conta do proxy.

Instale o plugin de proxy.

  1. Confirme que as conexões TCP comuns através do seu proxy funcionam, incluindo a autenticação e a mudança entre servidores backends.
  2. Desligue o proxy e baixe o plugin correspondente no GitHub Releases.
  3. Coloque raknetify2-velocity-*-all.jar ou raknetify2-bungee-*-all.jar na pasta plugins do proxy. Remova qualquer plugin Raknetify ou Raknetify2 mais antigo dessa pasta.
  4. Instale o mod de cliente Raknetify2 apropriado usando o guia de instalação.
  5. Verifique as configurações do listener abaixo, reinicie o proxy e examine seu log para encontrar erros no listener do RakNet.
  6. Permitir o tráfego público em 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 as versões.

Velocity

A configuração bind no arquivo 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 os endereços 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 commande de inicialização do Velocity:

-Draknetify.velocity.portOverride=25570

Substitua 25570 pela porta escolhida. Isso altera a porta UDP do RakNet, mantendo a porta TCP e os endereços 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 privado e secreto. 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 do backend ativas ao mesmo tempo que o encaminhamento.

BungeeCord

No config.yml do BungeeCord, o valor host sob cada entrada listeners identifica um endereço de escuta e a porta TCP do Minecraft. O Raknetify2 normalmente adiciona o 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 comando de inicialização do BungeeCord:

-Draknetify.bungee.portOverride=25570

A sobreposição pertence ao processo completo 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 ao backend. Restreia o acesso ao backend usando as instruções do firewall.

Escolha o endereço usado pelos jogadores

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 as portas, use sua porta UDP pública no endereço do cliente. Endereços sem o prefixo raknet; continuarão 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.

Chat de voz e encaminhamento adicional de 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 na frente do 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.

Verificar a conexão

Teste a partir de fora da sua rede local com um cliente Raknetify2. Junte-se através do proxy, alterne entre os servidores de back-end que você usa e confira que a identidade do jogador e as permissões permaneçam corretas.

  • Se o TCP através do proxy funcionar, mas o RakNet expirar, verifique o ouvido 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 associado a ele.

Para relatórios, inclua tanto os logs do proxy quanto os do backend da mesma tentativa de conexão. Consulte Solução de Problemas para obter informações sobre a versão a ser incluída.

Configuração de firewall e roteador

Este guia é para 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 usa o mesmo número de porta do 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 redirecionamento da porta do roteador quando o tráfego da internet precisa atravessar o NAT IPv4 do roteador.

Escolha o destino e o porto

Servidor direto

Envie tráfego público em UDP para a máquina que executa o servidor Minecraft com Raknetify2. A porta de destino é a listener de 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 no UDP 25570, reencaminhe 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.

Velocity ou BungeeCord

Envie tráfego público em UDP para a máquina que está executando Velocity ou BungeeCord, com 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 no backend através do TCP. A adição do Raknetify2 ao proxy não requer a abertura de portas UDP para o jogo com os jogadores.

Conexão Acesso permitido
Jogadores para o proxy Uso de 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 pelos hosts de proxy pretendidos
Jogadores diretamente para as portas de jogo de back-end Mantenha bloqueado, inclusive através do 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 host do proxy usando um firewall ou uma rede privada isolada. Containers e hosts gerenciados precisam de restrições equivalentes para seu layout 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 juntos. 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.

Números de porta públicos e locais

O porto público e o porto do listener podem diferir quando um roteador faz a tradução entre eles:

Configuração Port para uso
Endereço do cliente e do servidor Porta UDP Pública
Regra de encaminhamento do roteador para porta externa Porta UDP Pública
Porta interna da regra de encaminhamento do roteador Porta UDP do listener de RakNet
Porta local do firewall do host Porta UDP do listener de RakNet

Reenvio de portas IPv4

Para hospedagem atrás de um roteador IPv4:

  1. 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 ser direcionada para aquela máquina.
  2. Adicione uma regra de encaminhamento UDP para a porta pública que os jogadores usarão.
  3. Defina o destino da regra para o endereço local daquela máquina e para a porta UDP do ouvinte RakNet.
  4. Permitir o 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 a 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.

Quando o encaminhamento ainda falha

Verifique se outro roteador ou seu provedor de serviços de Internet (ISP) realiza o NAT antes que o tráfego chegue ao seu roteador. Com dois roteadores, é necessário que o encaminhamento cubra 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 o UDP de entrada. A regra de encaminhamento do seu roteador não pode configurar o NAT do ISP. Consulte as instruções de encaminhamento de portas da TP-Link para saber sobre o requisito do endereço WAN público.

Regras de firewall IPv6

Permita a porta UDP selecionada através do firewall IPv6 do roteador e 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 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 ter 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 do IPv4 alterar o número da porta, certifique-se de que a porta usada pelos jogadores também atenda ao ouvinte do IPv6. A tradução da porta do IPv4 não configura a rota do IPv6.

Provedores de hospedagem e túneis

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 do próprio servidor.

Se um proxy UDP adicional encaminha endereços de clientes usando o protocolo PROXY v2, siga Encaminhamento de UDP e protocolo PROXY e restreia o acesso ao listener de UDP receptor ao proxy confiável.

Verificar a conexão

Conecte-se fora da rede local do servidor com um cliente Raknetify2 atualizado, usando 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 o roteiro. Um scan UDP que não recebe resposta pode reportar um resultado inconclusivo, pois um serviço funcionando pode descartar uma sonda desconhecida. A documentação do scan UDP do Nmap explica esse comportamento.

Uma conexão TCP bem-sucedida confirma apenas o caminho 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.

Compatibilidade

Verifique a compatibilidade com a versão específica que você baixou. A ramificação de desenvolvimento pode conter suporte que ainda não apareceu em nenhuma versão.

Versões Minecraft e Java

Versões Minecraft e Java · English

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.

Versões cliente e servidor

Use a mesma versão Raknetify2 no cliente e no servidor ou no proxy que aceita sua conexão, se possível. Verifique as notas da versão antes de misturar as versões. Conexões RakNet criptografadas exigem suporte ao 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 carrega o protocolo de jogo existente do Minecraft. A conexão entre diferentes versões do Minecraft requer uma configuração de tradução de protocolo compatível.

Outros mods

Outros mods · English

Em caso de falha em um pacote de mods maior, siga o guia de solução de problemas. Inclua as versões completas dos mods no seu relatório.

Modo Ordenado

Modo Ordenado

Normalmente, o Raknetify2 permite que canais de pacotes independentes continuem funcionando enquanto um canal espera pelos dados faltantes. O modo ordenado coloca todos os pacotes do Minecraft em um único canal, de modo que um pacote faltante retarda todos os pacotes subsequentes nessa direção até que seja retransmitido. Isso preserva a ordem esperada por alguns softwares anti-cheat, mas abre mão da capacidade do Raknetify2 de manter o tráfego de jogos não relacionados em movimento durante esse período de espera.

Ativando o modo ordenado

  1. Instale uma versão do Raknetify2 que suporte o modo ordenado no servidor ou no proxy que aceite conexões RakNet, e em cada cliente RakNet.

  2. Crie o arquivo config/raknetify2-compatibility.json no diretório do servidor ou do proxy. Crie também o diretório config se ele ainda não existir.

  3. Adicione o seguinte:

    {"mode": "ordered"}
  4. Reinicie o servidor ou o proxy.

Os clientes seguem as configurações do servidor automaticamente. Os jogadores não precisam criar um arquivo de configuração ou alterar o endereço do servidor RakNet.

Todos os pacotes do Minecraft utilizam um canal confiável e ordenado em cada direção, incluindo os delimitadores de pacotes e as transições do mundo.

Configurações de Proxy

Quando os jogadores se conectam através do Velocity ou BungeeCord, configure o modo ordenado nesse proxy, mesmo que o anti-cheat esteja rodando 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 localmente.

Verificando as configurações

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 pelo endereço do peer.

Mantenha as verificações contra cheats ativadas e valide sua configuração específica.

Clientes mais antigos

Clientes RakNet que não suportam o modo ordenado não podem se conectar a um servidor que exige isso. 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;.

Retornando ao modo multicanal

Altere o arquivo para:

{"mode": "multichannel"}

Em seguida, reinicie o servidor ou o proxy. A remoção do arquivo também restaura o modo multicanal após a reinicialização.

Problemas de configuração

O arquivo 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.

Rejeita conexões RakNet se a configuração for inválida ou ilegível. Corrija o arquivo e reinicie o processo.

Se a consola ainda indicar multichannel, verifique se o arquivo está no diretório de trabalho do servidor ou do proxy que aceita a conexão RakNet, e então reinicie esse processo.

Transferências automáticas

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 sua versão Raknetify2 suporta a versão e o carregador do Minecraft em ambos os lados.

Instale o Raknetify2 no servidor de envio e no cliente. O destino deve fornecer um listener compatível com RakNet e aceitar as transferências de Minecraft que chegam.

Esta configuração aplica-se às transferências enviadas pelos três carregadores de mods mencionados acima. Os plugins Spigot/Paper, Velocity e BungeeCord não lêem este arquivo de transferências.

Configure o servidor de envio

Crie o arquivo 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 do seu destino, e então reinicie o servidor de envio. Outros destinos devem ser adicionados no mesmo array.

Campo Significado
host Endereço do host ou endereço IP, sem prefixo de transporte ou porta
tcpPort Porta de destino na solicitação de transferência original
udpPort O cliente transferido deve entrar em contato com a porta pública RakNet.

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 arquivo. 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ência automática. 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.

Configuração do destino

Para um destino que use os 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 do RakNet no destino, o encaminhamento público de UDP e o firewall do host devem estar já configurados. O arquivo 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 todas 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.

Erros de configuração e desativação

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 arquivo de configuração ou use o {"destinations": []}. Em seguida, reinicie o servidor de envio. As solicitações de transferência continuarão com seus endereços originais.

Reenvio de UDP e protocolo PROXY

Um proxy UDP pode redirecionar o tráfego do 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 do Minecraft que recebe o tráfego UDP encaminhado, crie o arquivo config/raknetify2-proxy-protocol.json:

{
  "trustedProxies": ["192.0.2.10"]
}

Substitua o exemplo pela verdadeira endereço IP do proxy UDP ou por um intervalo de CIDR que você controle. O endereço deve corresponder ao que o listener receptor vê após qualquer interação com o NAT. São aceitos os literais IPv4 e IPv6. Nomes de hosts DNS são rejeitados. Reinicie o servidor receptor ou o 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 do RakNet sem esses cabeçalhos são rejeitadas enquanto esta configuração estiver ativada. O ouvinte TCP mantém sua configuração existente.

Confiança e acesso

Cada proxy listado é 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 acessá-la. Mantenha os intervalos de confiança tão restritos quanto a sua rede permitir.

O arquivo deve conter apenas trustedProxies, com pelo menos um registro. Um array vazio é um erro. Um arquivo inválido impede que o listener do RakNet seja iniciado.

Para retornar às conexões diretas via UDP, remova o arquivo e reinicie o listener. Atualize também o comportamento de encaminhamento upstream e as regras do firewall para a nova rota.

Se as conexões falharem após ativar esta funcionalidade, verifique o endereço real da fonte 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 do proxy do Minecraft e a configuração do backend, siga Velocity e BungeeCord.

Simple Voice Chat

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 deseja chat por voz. Siga o guia de configuração do servidor para o resto das configurações.

Use a pasta config de nível superior do servidor para os arquivos do Raknetify2, incluindo os do Spigot/Paper. O próprio arquivo do Simple Voice Chat permanece na localização específica da plataforma abaixo.

Compartilhe a versão do jogo.

  1. Crie o arquivo config/raknetify2-voicechat.json no diretório do servidor com este conteúdo:

    {"enabled": true}
  2. Defina port=-1 na configuração do servidor do Simple Voice Chat. Nos servidores modificados, isso está em config/voicechat/voicechat-server.properties. No Spigot/Paper, está em plugins/voicechat/voicechat-server.properties.

  3. Deixe bind_address vazio quando houver um listener RakNet correspondente. Se o servidor tiver vários listeners naquela porta UDP, defina-a para o endereço local do listener que deseja compartilhar.

  4. 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.

O 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.

Outros serviços e proxies UDP

Mantenha a Query e o Geyser em portas UDP separadas. A integração do soquete compartilhado suporta apenas o Simple Voice Chat.

A integração não compartilha um socket de proxy de voz no Velocity ou BungeeCord. Siga o guia de configuração do proxy de voz do Simple Voice Chat e dê ao proxy de voz sua própria porta UDP. 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.

Desativar o compartilhamento ou resolver um conflito de soquete

Se o log indicar No RakNet listener matches the voice bind address and port, confirme que o RakNet foi iniciado com sucesso e que o porto 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 Simple Voice Chat pode fornecer seu soquete UDP. Se o início do serviço reportar que outro plugin já está fornecendo um soquete, escolha qual integração com o soquete será utilizada.

Para desativar a integração do Raknetify2, defina {"enabled": false} na configuração de voz do programa, ou remova esse arquivo. Dê a Simple Voice Chat um porto UDP separado, atualize suas regras de firewall ou de encaminhamento, e reinicie o servidor.

Solução de problemas

TCP funciona, mas RakNet excede o tempo limite.

Verifique estes em ordem:

  1. O cliente possui o mod Raknetify2 correto para sua versão do loader e do Minecraft.
  2. O servidor ou proxy que aceita a conexão tem o Raknetify2 instalado e iniciado sem erro de listener.
  3. O endereço começa com raknet; e utiliza a porta pública UDP.
  4. O provedor de hospedagem, o roteador e o firewall do host permitem o UDP naquela porta.
  5. 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 do Firewall e do 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.

Endereço já em uso

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 do 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.

A conexão funciona, mas as transferências falham.

Conecte-se diretamente ao destino usando 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 usa server.properties precisa ter accepts-transfers=true. As conexões diretas não testam essa configuração.

Em seguida, compare o nome do host de transferência e a porta TCP com o arquivo config/raknetify2-transfers.json no servidor de envio. Confirme que o arquivo foi carregado após um reinício e que o cliente suporta transferências automáticas pelo RakNet. Veja Transferências automáticas.

Erros de criptografia ou protocolo

Verifique as versões do Raknetify2 em ambos os lados 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.

Falhas específicas do mod

Registre qual ação que causa o falha, como abrir um inventário, receber um pacote de recursos, alterar mundos ou spawnar uma entidade. Compare a mesma ação pelo TCP e pelo RakNet usando uma instalação de teste separada, quando possível.

Alguns payloads personalizados dependem da ordem dos pacotes padrão. Os desenvolvedores de mods podem declarar essas dependências através da interface de ordenação de pacotes.

Relate um erro

Abra um problema no rastreiro de problemas do Raknetify2 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 reencaminhamento 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 dos logs do cliente, do servidor e do proxy da mesma tentativa.

Antes de enviar os logs, remova tokens de acesso, senhas e outras informações privadas. Preserve as mensagens de exceção e os rastros de pilha necessários para diagnosticar o problema.

Integração do Mod

O 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.

Ordenando grupos

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. Os pacotes de grupos diferentes podem chegar em uma ordem relativa diferente. Escolha o grupo que corresponde à dependência do payload.

Integração opcional com Fabric

Adicione um provedor no ponto de entrada raknetify:packet_channels no arquivo 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 registro nos seus metadados existentes, substituindo o nome da classe pelo nome completo do seu provedor:

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

Mantenha o resto do seu fabric.mod.json, incluindo seus pontos de entrada existentes. Este é um fragmento do arquivo 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 não inicia este ponto de entrada 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.

Comportamento de Registro

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 evite que o código de integração opcional carregue 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 durante a configuração. É permitido repetir uma declaração idêntica. Grupos conflitantes para o mesmo identificador são rejeitados.

Os identificadores de carga útil devem usar um espaço de nomes personalizado válido. O espaço de nomes minecraft está reservado. O limite para todos os endpoints é 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 do espaço de nomes da API.

Os peers do RakNet atualizam as 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 aquele payload. As regras locais têm prioridade, e as declarações dos peers são limitadas àquela conexão.

Proxies UDP

Veja Reenvio de UDP e protocolo PROXY para informações sobre relés de UDP e endereços de clientes reencaminhados.

Para a configuração do proxy do Minecraft, consulte Velocity e BungeeCord.

English (US)

Clone this wiki locally