Nginx + SoftEther on a VPS. Is this the right way to do things?

I have a spare PC I want to turn into a dedicated gaming server (Debian). Let’s say for this example I run Factorio, Terraria, and 7 Days to Die simultaneously for no more than 32 users total. You can assume the gaming server itself is capable of running the games.

I want friends of friends to be able to join, but I don’t want to just give out my IP randomly. I plan to run Nginx as a reverse proxy on a cheap VPS (1024MB RAM, 20GB NVME Storage, 1000GB data transfer, Ubuntu or Debian).

My home doesn’t have a static IP, so my current plan is to use SoftEther to either:

  1. Run SoftEther Server with their free built-in DDNS on my gaming server and SoftEther Client on the VPS.
  2. Run SoftEther Server on the VPS and SoftEther Client on the gaming server.

(I am leaning towards option 2)

Alternatively, I could subscribe to a DDNS service and set that up directly on my home modem router, but that would incur additional cost.

Then I will point the Reverse Proxy to the gaming server’s VPN IP.

My only experience is managing an on-premises Windows Server SoftEther VPN (set up by someone else), so everything else is new territory for me (even Debian), and I want to ask a few questions before proceeding.

Will the VPS specs I provided be sufficient?
Do you think I will encounter any issues with SoftEther and Debian (the website recommends Ubuntu, but SoftEther has Debian packages)?
If so, are there alternatives to SoftEther for solving the non-static home IP problem?
If SoftEther is the best option, do you see any issues hosting the server on the VPS instead of on the gaming server?
Are there any other obvious issues or pitfalls in my setup or things I should watch out for?

I would also host the VPN server on the VPS. The specs should be fine. I don’t know SoftEther; WireGuard could be an alternative. I don’t know how well the stream module in Nginx handles gaming server traffic, but you could also try forwarding traffic with iptables rules.

If you’re using a VPN to connect to the VPS, you might not need dynamic DNS at all.

Configure the VPN on your gateway firewall/router to connect to the VPS IP and you’re good. If you don’t want to reveal the VPS IP, you can set up a DNS record that resolves to it… Simply ping or nslookup the domain, and you’ll get the VPS IP.

SoftEther is an excellent choice for old LAN gaming because it allows you to create private Layer 2 networks easily. Its ability to bridge networks and create virtual hubs makes it very flexible.

Other tunneling options like GRE, EoIP, and VXLAN could also work depending on your environment. EoIP is good for MikroTik users, while VXLAN scales better for larger networks.

WireGuard is my preferred VPN tunnel, but since it operates at Layer 3, it may not support games relying on broadcast or multicast unless encapsulated inside something like GRETAP.

For a simpler out-of-the-box Layer 2 solution, ZeroTier is worth considering. It’s easy to set up on different platforms and works well for LAN gaming.

Mesh VPN — with one-time access options.