Tunnel: A simple UDP/TCP tunnel application

Tunnel is a simple UDP-over-TCP application written in Java, and is designed so that people behind a firewall can connect through a TCP connection to play Quake and other UDP-based games.

TESTING OF NEW TUNNEL!

I have released an alpha of a new better TCP+UDP SOCKS-compatible tunnel, see here for downloads/instructions.

Download

(All downloads include source code)
Download tunnel.zip (360KB)
Download tunnel.tar.gz (340KB)
Download tunnel.tar.bz2 (341KB)

System layout

[Quake3] <--udp--> [Tunnel Client] <--/ tcp /--> (TUNNEL SERVER) <--/ udp /--> [Q3Server]

See How it works for more details.

Usage notes:

1) Download java if you don't already have it.
   (check by typing "java -version" from a command prompt)

You can get it from http://java.sun.com/j2se/1.4.1/download.html
(Download and install the JRE for your platform)


2) Find your hosts file, either /etc/hosts or
   c:\winnt\system32\drivers\etc\hosts

3) Open the file in wordpad, and add the following lines:
       127.0.0.1       q3a1.evenbalance.com
       127.0.0.1       q3a2.evenbalance.com
       127.0.0.1       pbq3a.idsoftware.com
       127.0.0.1       master1.evenbalance.com
       127.0.0.1       master2.evenbalance.com
       127.0.0.1       master3.evenbalance.com
       127.0.0.1       master4.evenbalance.com
       127.0.0.1       namereg.evenbalance.com
       127.0.0.1       authorize.quake3arena.com

4) Open client.txt, and set up your tunnel client.
   (You'll need to point it to a tunnel server even if you
    change nothing else, and probably set a game server)

5) Double click run.bat, or use the following command lines.

For windows:
java -classpath build;lib/log4j-1.2.7.jar -Dlog4j.configuration=file:./log4j.properties com.mrq3.tunnel.Client

For unix-based:
java -classpath build:lib/log4j-1.2.7.jar -Dlog4j.configuration=file:./log4j.properties com.mrq3.tunnel.Client


6) You can now connect to localhost:27960, or whatever port
   you've forwarded to the game server IP.

With Q3 you'll probably get CLIENT_UNKNOWN_TO_AUTH problems... not sure why. The
best way of solving this is setting:
  \timescale 10
...and once the counter reaches 30 or so...
  \reconnect
...until you're on the server :)

Christopher Pearson
Last modified Friday, 20-Feb-2004 21:55:46 GMT