Connectivity Problem with Project Zomboid - Issues forwarding UDP ports over VPS thru Pangolin

System Information

Field Value
Operating System Linux - Debian GNU/Linux 12 on x86_64
Product AMP ‘Phobos’ v2.6.3.0 (Mainline)
Virtualization Docker
Application Project Zomboid
Module GenericModule
Running in Container Yes
Current State Ready

Problem Description

Issue

Definitely more of a VPS problem than an amp problem since Minecraft and Terraria work just fine when forwarding TCP through the VPS, but this has been giving me a bit of a headache. Wondering if you all might have an idea as to what could be going on? Thanks!

The server is still accessible through Tailscale as well as local network access, so the server itself works, it’s just the VPS setup that I’m having issues with.

Reproduction Steps

  • Start the project zomboid server.
  • Set up pangolin, add access to ports that Project Zomboid is listening to. Open ports through VPS network security list.
  • Server is being found when being searched for but does not respond.

Maybe try setting “Server Browser Announced IP” to the public IP of your VPS, so that the server browser is then using the correct IP

I also have the same issue. Trying what @Greelan said now…

Edit: It doesn’t work. Still “Server failed to respond”. I tried both my domain and the public IP. I also tried NoSteam Mode.

I asked in a couple other places too, here’s some other responses you can try that might work @Viostor .

Yeah it kinda sounds like the UDP forwarding isn’t actually passing through Pangolin right. Minecraft and Terraria survive because they’re TCP‑heavy, but Zomboid leans hard on UDP and Steam’s handshake layer.

Pangolin needs raw UDP resources explicitly declared with allow_raw_resources: true and matching Traefik entry points (for example udp-21001, udp-21002 in teh config) otherwise those packets get silently dropped or mismatched.

(For this next part, I am using Oracle for my VPS so the instructions pertain to my provider:)

IMO you should double check Oracle’s firewall too, because by default their zones don’t masquerade UDP unless you manually add --add-forward-port rules for both TCP/UDP.

Another response:

That would mean there is an issue specifically with the VPS in that case, I am not sure if I can help much without being familiar with Pangolin or the setup you are using, which I am not unfortunately.

Though I did run into an issue where the Ephemeral Range ports had to be opened for any UDP ports to work, it is possible your setup might require the same, if you said that TCP ports work fine?

Ephemeral range is 32k+ up to the maximum 65k

I wasn’t able to get either of these solutions to work but if you have any luck let me know, maybe I didn’t follow instructions right

Thank you for sharing the replies, I will try later.

This also does not work sadly, my other reply on this thread details some more steps I’ve taken to troubleshoot the problem if you wanted to take a stab at any of those. @Greelan

Hey man, I’m having the same issue.

As you stated before, Terraria works fine through Pangolin over TCP. Cool cool cool, right? I then I setup a bedrock server over 19132/UDP, used the same process as Terraria to connect to my vps with pangolin, and…. Nothing through the VPS. However, I am able to make a connection to the bedrock server over the local network.

Throughout my troubleshooting, I ended up creating another seperate bedrock server outside of AMP. This time, on a different machine but within the same net. After I created the new server, I switched the IP of the 19132/UDP resource in Pangolin to the new machine, and… boom! Connection over the VPS right away! Both the VPS IP as well as the DN. Also, my Newt container when connected to the host’s docker socket, can’t see the AMP created games. Which is strange.

This leads me to think that the culprit has something to do with how AMP handles UDP traffic or maybe a binding issue? Idk. I used portainer to get a visual look and noticed that each AMP created instance doesn’t have a published IP or ports.

So right now, my big questions are:

  1. why are TCP games working fine over Pangolin to the VPS, out of the box while I’m struggling with UDP?
  2. Why are UDP games able to connect locally but not over the VPS like Terraria?
  3. If the issue doesn’t lie with AMP, why did the exact same game work when created outside of AMP?

All of these questions would be moot if I could just take the created AMP docker container and change the network or force the ports to publish. Alas, you can’t edit a damn thing about these cursed containers. If anyone has any ideas, it would be awesome to hear from you lol.

AMP doesn’t “handle UDP traffic”. It starts the game server, and opens ports in the firewall. That’s it.

If you want to change ports and binding for your bedrock server in AMP, click on the pencil icon on the instance, and go to Network and Ports.

You don’t have to use docker with the instance. It is optional. When docker is used, by default host mode networking is used, so it behaves from a networking perspective like the server is run on the host.