NetherNet Support Guide (For Free Users)

[Guide] Free Minecraft Bedrock NetherNet using Playit.gg + Warden + Geyser

Hey everyone! With Minecraft Bedrock switching from RakNet to NetherNet, I wanted to share a workaround I managed to get working on my own Minecraft server.

This setup allows Bedrock players to connect through NetherNet using a free Playit.gg UDP tunnel, without needing Playit’s premium NetherNet tunnel or opening a public TCP port. I’m using Geyser + Playit.gg + Warden, and I’ve successfully tested it with Minecraft Bedrock 26.60.

How it works

NetherNet uses two separate connections:

  • HTTPS signaling: Used to find the server and negotiate the connection.

  • UDP (WebRTC): Used for the actual Minecraft gameplay traffic.

Rather than forwarding both TCP and UDP through Playit, we can use Warden for HTTPS signaling and Playit for UDP gameplay.

The connection works like this:

Bedrock Client → Warden (HTTPS) → Playit UDP → Geyser → Java Server

Warden handles the signaling, while Playit forwards the WebRTC traffic to Geyser.

Step 1 — Create a free Playit UDP tunnel

Head to https://playit.gg/ and make sure you have a working Playit agent.

You’ll need the standalone Playit agent or another UDP-capable integration. The older official Minecraft plugin only supports TCP forwarding.

Create a new tunnel with these settings:

Setting Value
Tunnel Type UDP
Local IP 127.0.0.1
Local Port 19133
Protocol UDP

Playit will assign a public IP and port, for example:

203.0.113.10:37178

This is an example address. Use the actual IP and port Playit assigns to your tunnel.

Make sure UDP port 19133 is available to your Minecraft server. If you’re using Pterodactyl or another hosting panel, check the server’s allocations and firewall configuration.

Step 2 — Configure Geyser

Make sure you’re running an up-to-date version of Geyser that supports NetherNet.

Open:

plugins/Geyser-Spigot/config.yml

Find your existing bedrock: section and update the relevant settings:

bedrock:
  address: 0.0.0.0
  port: 19132
  clone-remote-port: false
  transport: both
  webrtc-port: 19133

  signaling:
    mode: nxs
    nxs:
      token: ''
      endpoint: https://agent.warden.cloud
      advertise-addresses:
        - "<your_playit_ip_and_port_here>"

Don’t replace your entire Geyser configuration with this example. Just merge these settings into the existing sections.

Replace <your_playit_ip_and_port_here> with your Playit tunnel’s public IP and port.

A couple of things worth noting:

  • transport: both supports RakNet and NetherNet simultaneously.

  • port: 19132 is the normal Bedrock/RakNet port.

  • webrtc-port: 19133 is the local UDP port NetherNet uses.

  • mode: nxs tells Geyser to use external signaling through Warden.

  • advertise-addresses tells players which public Playit endpoint to reach.

You can also use transport: nethernet if you only want NetherNet support. I’m using both because I wanted to keep the two transports separate.

Step 3 — Set up Warden

Visit https://panel.warden.cloud/

Warden provides the HTTPS signaling that would otherwise require a separate TCP connection.

You can initially leave token: '' empty in Geyser, as Warden supports anonymous registration although I created an account on the panel and setup my Game Server/Signal Server myself and would recommend you do the same so you can still manage it easier at a later date.

After restarting your Minecraft server, Geyser should register with Warden. If you’re using the Warden dashboard, you can manage your Game Server registration and set up a Signal Server with a public hostname.

Make sure your Game Server shows Ready for players and that your Signal Server is configured to route players to it. For example, Warden might give you a hostname like:

example.wdn.gg

This is the hostname your Bedrock players will use to connect.

Step 4 — Connect from Minecraft Bedrock

Open Minecraft Bedrock Edition and add a new server.

Setting Value
Server Name My Minecraft Server
Server Address example.wdn.gg
Port 443

Use your Warden Signal Server hostname, not the Playit IP.

When a player connects:

  1. Minecraft contacts Warden over HTTPS on port 443.

  2. Warden handles the NetherNet signaling and connection negotiation.

  3. The client establishes its WebRTC connection through your public Playit UDP tunnel.

  4. Playit forwards the traffic to Geyser on UDP port 19133.

  5. Geyser handles the connection and forwards the Minecraft gameplay to your Java server.

That’s it!

Troubleshooting

If the server won’t connect, here are a few things I’d check:

  • Geyser: Make sure you’re using a recent NetherNet-compatible build and check the console for signaling errors.

  • Playit: Confirm the UDP tunnel points to the same local port as webrtc-port.

  • Warden: Check that your Game Server is registered and your Signal Server is active.

  • Connectivity: Run Warden’s IPv4 connectivity check to see whether the advertised UDP endpoint is reachable.

  • Addresses: Ensure advertise-addresses contains the public Playit UDP endpoint, not your local server IP or Warden hostname.

Also, keep in mind that Warden only handles signaling. It doesn’t carry your Minecraft gameplay traffic. That still goes through the Playit UDP tunnel.

What about vanilla Bedrock Dedicated Servers?

This guide is specifically for servers using Geyser.

Geyser already has NetherNet and NXS support built in, including the ability to handle multiple WebRTC connections over a single UDP port.

Vanilla Bedrock Dedicated Servers don’t currently offer the same external NXS integration, so you can’t simply copy this configuration into BDS.

One possible approach is to use WaterdogPE as a NetherNet-compatible proxy in front of a vanilla Bedrock server. WaterdogPE supports Warden NXS signaling and single-port WebRTC multiplexing, although vanilla BDS backend compatibility should be tested separately. There should be a guide for WaterDog setups soon.

Final thoughts

I thought I’d share this because I spent a fair bit of time figuring out how to get NetherNet working without paying for a combined TCP/UDP tunnel. For my Geyser server, this setup has worked successfully using just a free Playit UDP tunnel and Warden’s external signaling service.

Hopefully this helps anyone else trying to keep their Bedrock servers accessible after the move to NetherNet!

1 Like