Skip to content

Conexiones y puertos ​

Los clientes de Bedrock 1.26.60 (la versión que admite VanillaMine 5.48) solo entran por NetherNet, el transporte WebRTC de las versiones nuevas de Bedrock. VanillaMine lo sirve junto a RakNet, en el mismo puerto, con un pequeño programa auxiliar (pm-nethernet) que va dentro del phar y se arranca solo.

Puertos que hay que abrir ​

PuertoProtocoloPara qué
server-port (19132)TCPSeñalización de NetherNet (HTTP o HTTPS).
server-port (19132)UDPDatos de juego de NetherNet, RakNet y Query.
80 o 443TCPSolo con certificados HTTPS de Let's Encrypt, mientras se emite o renueva un certificado.

El error más común es abrir solo UDP: el servidor arranca, sale en la lista y nadie puede entrar. Con nethernet-udp-port en server.properties los datos de juego de NetherNet van a un puerto UDP propio: ábrelo también.

Los paneles de hosting (Pterodactyl y otros) suelen asignar el puerto para UDP y TCP a la vez; si van por separado, revisa el firewall del host.

El aviso de confianza ​

Por HTTP normal, la primera vez que un jugador entra, el cliente le pide una sola vez que confíe en el servidor y recuerda su clave (nethernet_identity.pem, creada en el primer arranque). Haz copia de ese archivo y cópialo a todos los servidores de una red para que a los jugadores solo se les pregunte una vez. network.nethernet.domain es el nombre que sale en el aviso.

Jugadores de iOS: HTTPS ​

Los clientes de iOS solo prueban HTTPS para la señalización de NetherNet y rechazan certificados autofirmados (bugs de Mojang BDS-23108 y BDS-23125; Bedrock Dedicated Server tiene el mismo problema). Sin HTTPS, los jugadores de iPhone y iPad no pueden entrar. Los de Windows y Android entran sin él.

Lo más fácil es un certificado gratuito de Let's Encrypt, que el servidor obtiene y renueva solo:

yaml
# pocketmine.yml
network:
  nethernet:
    https:
      acme-domains: "play.ejemplo.com"   # lo que los jugadores escriben en la lista de servidores (sirve una IP pública)
      acme-email: "tu@ejemplo.com"       # opcional: avisos de caducidad
  • El nombre tiene que apuntar a este servidor, y los jugadores tienen que entrar con ese nombre (o esa IP).
  • Let's Encrypt comprueba el nombre conectándose al puerto 80 o 443 del servidor: uno de los dos tiene que estar abierto y libre mientras se emite o renueva un certificado (el servidor solo escucha en él en ese momento). Si tu router los redirige a otros puertos, configura acme-http-port / acme-tls-port.
  • Una dirección IP recibe un certificado de corta duración, que se renueva cada pocos días.

También puedes usar tu propio certificado (https.certificate y https.private-key, archivos PEM, que se recargan cuando cambian). Con un certificado válido tampoco sale el aviso de confianza.

Detrás de NAT ​

Al cliente se le da la dirección que escribió en la lista de servidores, así que casi ningún servidor necesita nada más. Si los jugadores entran por una dirección que el servidor no ve (algunas configuraciones de NAT), pon las IP públicas en network.nethernet.advertise-addresses.

Transferencias entre servidores ​

/transferserver y Player::transfer() mandan al jugador a otra dirección. Desde 1.26.60 el cliente solo puede entrar por NetherNet, así que el destino tiene que aceptar NetherNet en ese puerto (TCP y UDP): VanillaMine 5.48 o posterior, o Bedrock Dedicated Server con transport=nethernet. Con servidores PocketMine-MP antiguos y proxies solo RakNet la transferencia falla en el cliente, y los jugadores de iOS también necesitan HTTPS en el destino.

Para una red de servidores, VanillaGate mantiene al jugador conectado y lo mueve entre servidores sin transferencia del cliente.

Ancho de banda y CPU ​

  • network.compression-level (por defecto 1 desde 5.46) comprime en la mitad de tiempo que el nivel 6, con chunks un 10-12 % más grandes. Los pocketmine.yml existentes conservan el nivel que tenían.
  • network.compression-thread comprime en un hilo propio. Está desactivado por defecto: activado, los jugadores notaban un pequeño retraso en sus acciones.

Si los jugadores no pueden entrar ​

  1. "No se puede conectar" en todos los dispositivos: el server-port TCP no está abierto (solo el UDP).
  2. Solo fallan iPhone/iPad: no hay HTTPS, o entran con un nombre que el certificado no cubre.
  3. Los jugadores con otra versión de Bedrock no pueden entrar: VanillaMine 5.48 solo acepta Bedrock 1.26.60 (1.26.52 necesita VanillaMine 5.47). "Transporte no compatible" en el cliente significa que NetherNet está desactivado (enable-nethernet).
  4. Mira nethernet.log en la carpeta del servidor (network.nethernet.log-level: debug para más detalle).

VanillaMine es un fork de PocketMine-MP. Sin relación con el equipo de PMMP ni con Mojang.