Jump to content
  • Advertisement
Sign in to follow this  
Zanthos

HTTP tunnel for game clients behind proxy

This topic is 5053 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have a friend at uni behind a restrictive firewall, and he wants to play Rise of Nations(not using GameSpy matchmaking). To get past it, I've got this idea: RiseOfNations(Mate's Computer) \/ TunnelNode(Mate's Computer) \/ \/ HTTP Proxy \/ \/ TunnelNode(My Computer) \/ RiseOfNations(My Computer) The TunnelNode on his machine wouldn't have any user modifiable settings(my IP address is static). The TunnelNode on my machine would have space to enter hostname and IP to establish a link to(usually to the game being hosted on my machine). Now am I right in saying this should work? Unless the game has some stupid feature which rejects connections from the same IP address. I'm unsure to how much latency this possible solution might have, I suppose it depends on how sluggish the Proxy server is.

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by Fruny
Quote:
HTTP tunnel for game clients behind proxy


Did you mean TCP tunnelling?


I'm thinking he's meaning HTTP. If you are behind a firewall that is out of your control - work, university, library - most TCP ports ate not accessible. However, port 80 - http - is always avaliable. If you could convert the data and reroute it through 80 - then have some other program that listens through 80 to get the data, you can easily bypass the firewall. Now this is very complicated - but I know its possible. I looked into HTTP tunneling for running BitTorrent behind an uncontrolable firewall.

However there is one main problem. The only way I've seen this to work is to buy bandwith from a company that owns a program, Http Tunnel. I'm sure if you had the time, you could make your own if you had another computer and linux perhaps, but I do not know of any resources telling about this.

Share this post


Link to post
Share on other sites
Yes, I think he means "HTTP" tunneling. A good firewall+web proxy can and does actually read the data being sent - rather then just blindly allowing arbitrary TCP transmission over port 80, it parses HTTP requests (rejecting connections opened that do not send a value HTTP command) and then retransmits them, oftening adding or removing information (for example a feature of many HTTP proxies is that they can replace user agent fields and strip cookies - so no matter what web browser you use, it always appears to a web server that you are using IE on Windows XP with cookies disabled).

That means to properly tunnel through such a firewall you cannot simply open a TCP connection and start pushing through data (either TCP data that will be retransmitted to the correct port by another computer, or more complex UDP data that will be parsed and then properly relayed as individual packets). Unless incoming HTTP connections are allowed (highly unlikely) this means that all outgoing data through the proxy must be encoded into HTTP requests (the usual method is to use the post field to ensure the data is not stripped or changed). The challenge of course comes in how to make it as effecient as possible.

Of course many such tunneling programs already exist - i.e. Google search

Share this post


Link to post
Share on other sites
I've done a brief check of the keele.ac.uk proxy, and SOCKS is not enabled, so I'm stuck with using HTTP. I'm under the impression that I can use Keep-Alive for sending chunks of data without having to open a new connection to my TunnelNode app, of course, this is if the proxy supports it. If I had two connections from my mate's comp, through the tunnel, I could use one which is parading as a multi-part POST file upload, and simply put his outgoing data into that, and then using the other connection, parade as a multi-part GET response. Obviously I need to do some indepth research into HTTP tunnelling, and what the Keele Uni proxy has disabled/enabled with regards to session timeouts, keep-alive, HTTP/1.1 for multi-part support, etc. Is this sounding feasible? I'm hoping to have a test app to see how fast his proxy deals with HTTP requests, anything over 100ms total trip time and I'll probably sack this idea in... we shall see.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!