Hello networking community! I need a setup where I can forward my server from my private network to another network which has a public ip to forward the server itself to the internet. When a client connects to the server, traffic should get forwarded to my private network somehow. I know that's possible, but don't know how I can achive that.
Came back after a year, got some knowledge. I achieved this setup using WireGuard (+ PersistentKeepAlive) and custom iptables rules on an old laptop with barebones arch install. By masquerading, we loose the source ip when forwarding, and to preserve it we need a L2 tunnel (L2GRE).
Tailscale to connect everything. Then in the public server use a reverse proxy (nginx proxy manager or swag) and point it to the tailscale IP of the server you want out.
The above comment is right, use Tailscale or something similar. If you are interested in knowing more, search up "NAT transversal".
But my experience suggests that those solutions may introduce quite a bit of latency, which is probably not desirable when you are running a game server. If you have IPv6, take advantage of it and let the ADSL2 router connect to your forward server using IPv6.