FAForever / client

FAF Python Client
GNU General Public License v3.0
73 stars 88 forks source link

Clients on local network are forced through proxy #588

Open Atraii opened 7 years ago

Atraii commented 7 years ago

I experienced clients on my local network being rerouted through the in-game proxy if ports are not forwarded. If ports are correctly forwarded, no connection is established.

This can be reproduced by having two clients on the same LAN with appropriate ports forwarded (192.168.1.x1 has port 6112 forwarded while 192.168.1.x2 has 6114 forwarded). Have 192.168.1.1x host a game that 192.168.1.x2 attempts to connect to. Make sure that the client has been restarted.

If the ports are not correctly forwarded, (e.g. both clients are attempting to use 6112 and neither is forwarded) the game simply chooses a proxy to connect the two. This results in poor connection latency (300+ ms) and regular disconnects in game.

I expected the client to automatically use local connections when available. If 192.168.1.1x gets a connection request from 192.168.1.2x, it should attempt to use local connections first. Using the local network instead of bouncing off of an external server would improve network performance.

In short, the client currently ignores local network connections and requires a proxy for two or more players on the same network to play together.

duk3luk3 commented 7 years ago

This is a known problem and will be fixed by the rework of the connection architecture that is currently in progress.

Atraii commented 7 years ago

Is there an open issue I can reference as a duplicate to close this?

Or should I leave this open?

duk3luk3 commented 7 years ago

This can stay open.

muellni commented 7 years ago

Here's the current ICE-enabled branch: https://github.com/FAForever/client/commits/feature/ice-adapter I post links to current builds here: https://github.com/FAForever/client/issues/592 Note that the test server needs to run the ICE enabled branch https://github.com/muellni/server/tree/feature/%23233-ice-support so ping me if you want to test this and its not connecting.