For those who don’t know, playit.gg is a free/cheap service for exposing self-hosted local game servers to the wider internet.
But as someone who already has access to a cheapish VPS, I’m curious if anyone knows of any self-hostable alternatives that I could just run as a container on my VPS.
I’ve been toying with using Wireguard UDP tunneling, but it’s proving to be a little bit more difficult and complicated than I was bargaining for. So if anyone knows of anything out there that does something like this, I’d be grateful!
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters CGNAT Carrier-Grade NAT DNS Domain Name Service/System ISP Internet Service Provider NAT Network Address Translation UDP User Datagram Protocol, for real-time communications VPN Virtual Private Network VPS Virtual Private Server (opposed to shared hosting)
[Thread #99 for this comm, first seen 8th Sep 2026, 20:20] [FAQ] [Full list] [Contact] [Source code]
You probably don’t want to do this. People will get salty and DDOS your server. I ran a KF2 server for like 5 years and eventually the traffic overwhelmed my connection and I had to stop.
Netbird self-host. Install it on the VPS, add the server as a client, network the appropriate ports using their services, expose the required port via TCP or UDP in the docker deployment and reverse proxy.
Pangolin would work, it’s still wireguard underneath but with a webUI to set up things and simplify it.
I think Pangolin would be massively overkill for this. It’s designed to be a CDN layer orchestrator and it’s primarily a HTTP reverse proxy. You can do it with Pangolin but it complicates things and you’d need more resources too.
All you really need on the VPS is to run a tunnel (WG or OpenVPN) and forward whatever ports the games need from the VPS public IP into the tunnel. Maybe a DDNS tool/script if the public IP is dynamic.
It looks like a VPN, just reskinned as-a-service.
If manual Wireguard is giving you trouble, try Netbird.
Use Tailscale, it’s stupid simple. it is a Wireguard wrapper anyways.
I was hoping to have servers be more public, so visible on the master server list and able to be joined by random people. (I’m a glutton for punishment I guess. lol)
I am hosting 2 public game servers with my setup. My VPS exposes only those ports and I have my DNS on the same provider. That tailnet only has those servers and the VPS. The actual server boxes block all traffic except through the tailnet. The hard part is the reverse proxy on the VPS if you have never done it before.
I think I saw that tailscale (or netbird, the open source and selfhosted version) also can reverse proxy UDP traffic.
I’ll take a look at it later today.
I’ve spent the evening playing around with Netbird/Tailscale. Appears that UDP in Netbird requires Traefik, so I’ve switched over to that (wanted to do this anyway).
Turns out that Traefik is perfectly able to do the proxying over my “stupid” wireguard setup, so I’ll be running that for now and look more into it later.
Why do you need a VPN if you’re just trying to expose game servers to the public?
The game server is probably behind a NAT. I’m standing in the same situation.
Got a small VPS with a TCP VPN to access all my devices despite location, and a comparably powerfull server behind a NAT which I would like to host UDP services on.
It needs to be said that we are talking actual VPNs here, and not “VPN-as-proxy” to spoof your location etc.
Yeah, that sort of thing.
I should say that I’m finally having some luck with using wireguard, so I’m making progress. Got a few rounds of Counter-Strike in with a friend about an hour ago!
Would that be CS 1.6? Can you get your game server to appear in the public list when you do it this way?
Yeah, CS 1.6!
I’m not sure about the master server list just yet, sorry.
Cool! I miss the CS 1.6 days when you’d have a favorite server or two where you’d play with familiar faces.
Some games have query ports for stuff like that. Maybe check for one.
Are you unable to port forward?
Can’t port forward through the CGNAT of my ISP, only my own router’s NAT.
That is, unless I buy a unique IPv4 from my ISP.
Gotcha by the balls, VPN would have the same problem unless you can host the VPN server on IPv6?
As I said, I’ve got a VPS. The VPS is not on my local net, but in a datacenter. As part of being a VPS it has a unique IPv4.
My VPN (which I currently use for TCP traffic) is hosted on the VPS, giving me access to (and from) all devices connected to my VPN regardless of whether they are behind a NAT or not.
I’ve also got a beefy server which hosts more power hungry services, though this one is behind multiple layers of NAT. I can forward and reverse-proxy TCP services from the beefy server through the VPN and out to the public net using another server with a unique IPv4 just fine.
What I (and OP) need, is to also be able to forward\reverse-proxy UDP services from a beefy NATed/firewalled server through a VPN and out to the public internet using another server which has a unique IPv4.
You could use frp to proxy specific ports to your vps. https://github.com/fatedier/frp
i usually connect two machines with tailscale and use ssh forwarding
use autossh if you want auto reconnect after ssh disconnects with broken pipe
@mrmaplebar might still be too complicated, but maybe take a look at https://github.com/fatedier/frp
You could look at pangolin as well. There’s a number of guides on YouTube. Essentially a wire guard tunnel to your VPS.





