I am going to try my best to explain my issue however this is my first experience with self hosting a game server behind an OpenVPN server and I'm not experienced in doing so.
Currently I am hosting a game server on a VPS (I'll call this GS VPS). I am also hosting an OpenVPN server on a separate VPS (I'll call this VPN VPS). I am using the VPN VPS as an entry point to GS VPS as the GS VPS provider has no DDOS protection and a very strict don't get DDOSed TOS, the VPN VPS has DDOS protection and is half the bandwidth of the GS VPS.
My configuration is I have an OpenVPN server hosted on VPN VPS and I am connected to that VPS with GS VPS (so GS VPS is the client and VPN VPS is the host). I am forwarding traffic incoming to the VPS VPN using an iptables NAT.
sudo iptables -t nat -A PREROUTING -p udp --dport <game server port> -j DNAT --to-destination <OpenVPN client local address>:<game server port>
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
Now to my issue. On the game server all incoming traffic registers as coming from the local IP address of the OpenVPN server tunnel. This is an issue as being able to see players IP addresses is crucial in moderating. So my question: is there any way to hide a game server behind a proxy however at the same time preserve the IP addresses of connecting clients on the game server?
I've tried to lookup a solution online however I am not getting any hits. Is this possible with OpenVPN or any other proxy software? I am using Ubuntu Server 20.04.