Hi everyone,
I’m trying to set up a central proxy server as a public entry point for my game servers running with Pterodactyl Wings. My goal is to have one or more proxy VPSs with public IPs, and route traffic over WireGuard VPN to multiple backend servers that run Wings.
My setup idea:
Each proxy VPS has a WireGuard tunnel to backend Wings servers.
The proxy has IP 10.0.0.1, and backend nodes have IPs like 10.0.0.6, 10.0.0.7, etc.
I want the proxy to forward TCP/UDP traffic (e.g., ports 25001–30000) to a specific Wings server based on port range.
For example:
Ports 25001–26000 → forward to 10.0.0.6
Ports 26001–27000 → forward to 10.0.0.7
etc.
The problem:
It quickly became a huge headache, especially when Docker on the backend interferes with source IPs (because of NAT). I don’t want to use --network host, as it breaks container isolation and limits port reuse.
I'd like to eventually run multiple Wings instances per proxy, all reachable through the proxy with real client IPs preserved if possible.
My question:
Is this setup actually doable using WireGuard and Docker (without host mode)?
Has anyone done something similar — maybe using macvlan, iptables, or Traefik with TCP/UDP?
How would you structure such a setup if you wanted to scale it to 5+ Wings nodes?
Any guidance or experience would be appreciated. Thanks!