Xonotic Forums

Full Version: Xonotic server running behind UDP proxy not working
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi there,
Can Xonotic dedicated server run behind a UDP proxy?
TL;DR 
I wanna run a dedicated server within a VM and be able to connect from either my local laptop and others computers from the same LAN.
I have a VM running the gameserver within my home LAN. The VM IP is neither exposed to the LAN or public to any other laptop that is part of the same LAN.
My idea is to run a UDP proxy on my laptop that forward requests to the VM IP. It would be something like:
ANY COMPUTER<---------->192.168.0.4(MY LAN IP)<---------->UDP PROXY PORT: 7866(MY COMPUTER)<---------->192.168.64.12:7866(VM)
I managed to get some traffic flowing using socat. However the client does not start the match.
I set the client to use port 7867. The following output comes from the console (dev mode activated)
Client using port 7867
Client opened a socket on address 0.0.0.0:7867
Client opened a socket on address [0:0:0:0:0:0:0:0]:7867

When I click join (192.168.0.4:7866) the output from console is:
Trying to connect...
[::MENUQC::TRACE] CheckCategoryForEntry(./menu/xonotic/serverlist.qc:215)
Found strange mod type: quake
[::MENUQC::TRACE] CheckCategoryForEntry(./menu/xonotic/serverlist.qc:215)
Found strange mod type: quake
Connect: Waiting 10 seconds for reply
[::MENUQC::TRACE] CheckCategoryForEntry(./menu/xonotic/serverlist.qc:215)
Found strange mod type: jeff
[::MENUQC::TRACE] CheckCategoryForEntry(./menu/xonotic/serverlist.qc:215)
Found strange mod type: jeff
Connect: Failed
I am running socat using the following command:
socat -d -d UDP4-RECVFROM:7866,reuseaddr,fork UDP4-SENDTO:192.168.64.12:7866 (the output shows some traffic going on)
Whe I use the VM IP my game client can connect and everything works well. However that IP is not visible to others computers in the same LAN.
Any help is really appreciated.
Maybe the "hostfwd" option in Qemu (see: https://qemu.weilnetz.de/doc/qemu-doc.ht...rk-options) can help with that. Other VM solutions probably have similar features
(01-05-2019, 12:37 PM)Freddy Wrote: [ -> ]Maybe the "hostfwd" option in Qemu (see: https://qemu.weilnetz.de/doc/qemu-doc.ht...rk-options) can help with that. Other VM solutions probably have similar features

Thank you for answering.

I am using a different kind of hypervisor and I've found out that it will not work as I expected.

The connection between the client and the game server is established using any port number but socat is only forwarding one specific port.

I may be missing something here though. My assumption is that when the client receives the info about the match it tries a connection using a different port from the one that the gameserver was originally listening to. Consequently the same as the one I am forwarding with socat.

I believe that UDP proxy will not work.
I have a server running in a docker container without issue.
The docker container is on a Synology NAS (just pretend its a linux box) with an internal IP
I use my firewall to forward port 2600 (UDP) to the internal IP of the NAS
The docker container sits on the standard docker bridge.

Everything just works on my end.

What hypervisor are you using?

Do you have rules in either the hypervisor or your firewall allowing traffic from in to out?