I want to host a small game server for friends and myself in my home but doesn't want to open up the firewall. Any tunneling solutions supports UDP? Thnaks.
Most VPNs use UDP. So set up a wireguard, tailscale or openvpn.
But you still need to "open up the firewall". UDP still works on ports the same way as TCP. I do agree however, that exposing a VPN port is more secure than exposing a port for a game server, as you don't know about the security of that server software.
Does that require my friends install & configure Tailscale/WG/OpenVPN? I tried that route like 2~3 yrs ago with OpenVPN and it doesn't works well.
I would like to keep it as simple and easy as it can be. Aka no need extra software and config. Just fireup the game, connect, and play, as if the server is hosted on some VPS.
You can open the port(s) used by the game on the firewall (assuming you have a publicly routable IP).
You can run OpenVPN or a proprietary solution, but you'll have to open a port on the firewall, and I know from experience that they're a bitch and a half to configure.
You can run Wireguard, but you'll have to open a port on your firewall and have the other clients generate and send you their public keys.
You can run Tailscale (my preferred solution), which uses Wireguard and works without opening the firewall and without a publicly routable IP (e.g. behind CGNAT), but you'll have to install the client, have the users sign in, and then add them to your tailnet, which IMO is much easier than setting up Wireguard peers manually.
You can use Tailscale Funnel, which exposes your tailnet to the public internet, but it's in beta, has high latency, and only supports TCP, so you'll have to figure out how to smash UDP datagrams through a TCP tunnel.
You can try Ngrok (my backup in case Tailscale can't connect), which is a similar NAT traversal solution, but it only supports TCP and gives you a different IP and port every time you create a tunnel.
Twingate also exists, I guess, but I've only ever used it for SSH.
Just fireup the game, connect, and play, as if the server is hosted on some VPS.
The best you can do without clients for the users is to set up a VPS and have your server VPN into it so the VPS can expose the game port through the VPN.
Other than that there's no escaping either clients for everyone, or open ports on your router. Something somewhere has to be accepting incoming connections.
If you want any system to connect to you, you need to open a port. You don't need to do that for outgoing connections (the OS and your router will automatically open ports for the return connection). So if everybody connects to one central system, nobody needs to (explicitly) open any ports (except for the central connection point)