Full Cone
The public IP and port stay the same for different destinations. While that mapping is alive, any remote address can send to it.
TROUBLESHOOTING / CONNECTIONS
Behind a router? Forward the server’s UDP port and put the public address in your config. That is the most reliable starting point.
If forwarding is not possible, assisted joins can help. Whether they work depends on the network at both ends: yours and the player’s.
Set up port forwarding01 / RECOMMENDED SETUP
NAT lets several devices share one public internet address. Your router needs to know which device should receive a player’s packets. A port forward gives it that rule.
29133 goes to 192.168.1.50:19133. Allow it through the server, container and hosting firewalls too.token, endpoint and other settings.bedrock:
transport: both
webrtc-port: 19133
signaling:
mode: nxs
nxs:
advertise-addresses:
- "203.0.113.10:29133"
Replace 203.0.113.10 with your real public IP. It is a documentation address and will not work. Use a numeric IP and the external UDP port, not a hostname or your Warden address. Update the config if your public IP changes.
With transport: both, RakNet and NetherNet use separate UDP ports. Forward the port selected by webrtc-port for NetherNet. Adding an address to the config does not create the router rule.
The configured address list is the complete set of endpoints you want to expose. Geyser then skips automatic address discovery (advanced.nxs.stun-discovery). Include each reachable address you need; an IPv4 entry does not automatically add IPv6. Players still join using the Warden Signal Server address.
With two routers, forwarding must work through both. With carrier-grade NAT (CGNAT), your ISP controls another layer. A rule on your home router alone cannot open that layer.
Ask your ISP for a public IPv4 address or an inbound forward. Public IPv6 can be another option when both ends support it and the firewall allows it. CGNAT does not always mean “Symmetric NAT”: test the behaviour of the whole path.
02 / WHEN FORWARDING IS NOT POSSIBLE
Some routers allow incoming packets only after a device has sent packets out to that other address. Assisted joins tell the server about the player early, so the server can send those first packets too.
Warden passes the player’s connection details over the server’s existing outbound WebSocket.
Both send UDP connection checks. Compatible routers open a path for the replies.
Once connected, the player and server exchange gameplay over UDP.
If you have no reachable address to configure, enable assistance with:
bedrock:
transport: both
webrtc-port: 19133
signaling:
mode: nxs
nxs:
advertise-addresses: []
advanced:
nxs:
assisted-joins: true
Use a Geyser/Network build with these options. Merge them into the existing config and keep your credentials. Assistance is off by default; enabling it keeps a WebSocket open to Warden.
The current assisted offer/answer exchange has a 15-second limit. After that exchange, connection checks, encryption and game admission still need to succeed. A successful response from Warden does not prove that the player reached the game.
Warden does not provide a gameplay relay or a server-side TURN fallback. If neither end can get a packet through, assistance cannot create a working path. A failed regional test also does not switch assistance on automatically.
03 / UNDERSTAND THE RESULT
Try NAT Checker on the server’s network and the affected player’s network. Record the full result, such as “Port-Restricted Cone NAT”. NATCheck calls the four NAT types below NAT1–NAT4.
Look at two things: mapping is the public IP and port your router assigns; filtering decides who can send packets back.
The public IP and port stay the same for different destinations. While that mapping is alive, any remote address can send to it.
The mapping stays the same. You must first send to the other side’s IP address before it can send back. Its port may differ.
The mapping stays the same, but replies must come from the exact IP and port you contacted.
Sending to a different destination can give you a different public IP or port. The address found by a STUN discovery service may not be the one the other player sees.
Open Internet means no NAT translation was detected; a firewall can still block the game. Blocked means the test did not establish a usable UDP path. Check firewall rules, network restrictions and test failures.
These NAT1–NAT4 labels are not PlayStation’s Type 1–3. Xbox Open/Moderate/Strict and other console labels are summaries for those platforms, not exact mapping and filtering measurements.
04 / SERVER + PLAYER
A server behind Port-Restricted Cone NAT may work for one player and fail for another behind Symmetric NAT. A forwarded server is easier to reach even when the player has a restrictive NAT.
Read the server down the left and the player across the top. These are expected IPv4 behaviours, not a guarantee or a record of tests of every combination. UDP, live mappings and working connection checks are still required. On small screens, scroll the table sideways.
| Server ↓ / Player → | Public / Full Cone | Restricted Cone | Port-Restricted Cone | Symmetric |
|---|---|---|---|---|
| Public / forwarded | Expected | Expected | Expected | Expected |
| Full Cone | Expected | Expected | Expected | Possible¹ |
| Restricted Cone | Expected | Expected | Expected | Conditional² |
| Port-Restricted Cone | Expected | Expected | Expected | Usually fails |
| Symmetric | Possible¹ | Conditional² | Usually fails | Usually fails |
Enable assistance for a Restricted Cone, Port-Restricted Cone or Symmetric server: it needs the player’s details before sending out a check. “Public / forwarded” means the actual game endpoint accepts incoming checks and replies from the same public IP and port. Blocked gameplay UDP at either end prevents these paths.
1. Possible: the Symmetric side sends to the reachable side. If that packet arrives, the receiver can learn the actual source address and port. ICE calls this peer-reflexive discovery.
2. Conditional: Restricted Cone can accept a changed port, but only from an IP it has already contacted. The Symmetric side must keep the same public IP as the one it advertised. A change of public IP can still block the connection.
With two cone NATs, including two Port-Restricted Cone NATs, the public mappings stay the same. Both ends can send to the right address and open their filters. With a forwarded server, even a Symmetric player can start a normal outgoing connection and receive the server’s replies.
05 / CHECK THE REAL PATH
A website tests its own browser sockets. It does not test your game server’s UDP port. A Symmetric result can coexist with a working port forward; a Full Cone result does not prove the game’s firewall is open.
A reachable public IPv6 address can avoid IPv4 NAT, but both ends need IPv6 UDP and suitable firewall rules. In the current Warden policy, public IPv6 is offered only when the player’s signaling request also arrives over IPv6.
An IPv4-only player cannot use an IPv6-only server endpoint. Assistance does not translate between the two. Configure an IPv6 endpoint as [address]:port.
Your router may need NAT loopback, also called hairpinning, to reach its own public address from inside the network. A local connection using a private address is a different path. Test from outside the network too.
Give the server a reachable endpoint: ask for a public IPv4 address or forward, use compatible public IPv6, or move to hosting that allows incoming UDP.
A separately configured UDP forwarding service or VPN with inbound forwarding may also provide an endpoint. Simply enabling a VPN or assisted joins does not supply one. For deeper diagnosis, inspect packets and the selected ICE pair on the actual game socket.