Note:
This entry is mostly for my benefit, so I don't have to figure this out again in a year or whenever I want to know it again. Also, it's here so Google can index it for when someone else wants to know it.
Tunneling Team Fortress 2 traffic through a proxy:
You'll need
Cubehub Tunnel, which routes UDP traffic through one or more TCP connections. It's designed around Quake 3, but it can be made to work with Steam, TF2, and Counter-Strike:Source. I assume it also works with other Steam games.
First, locate a computer outside your network that you can route traffic through. Run the server on that. The command line I used is:
java -jar tunnel.jar --server -t 0.0.0.0:1194If the server is behind a router or nat, make sure the correct port is forwarded (I use 1194).
Then, run the client on your local computer. The command line should look like:
java -jar tunnel.jar -t ip.address.here:1194 -s 0.0.0.0:1194 -n 25Next comes getting Steam to use the proxy. For that, you need ProxyCap. I've tested with 3.05, 3.0, 2.01, and 1.03. I've only gotten 2.01 to work. 3.0 and 3.05 connect to Steam very well, but when I try to connect to a game server through the tunnel, the server drops me, and I can't play. So download
ProxyCap 2.01, and start it.
Right-click on the new ProxyCap tray icon and click preferences. Click "Proxies", the "New" button, and the input following information:
Proxy Type: Socks v5
Address: 127.0.0.1
Port: your port (I use 1194)Then click on "Rules", and add a new rule for each application for which you want to go through the tunnel. If you want any Steam games to be tunneled, then you need Steam to work through the tunnel as well. So under "Application", click browse and find the Steam.exe, and add Steam to the Rules list. Do the same for the hl2.exe that's in the Team Fortress folder. Then go ahead and add the other game executables that you want tunneled.
Next, start up Steam. It make take a few tries for Steam to eventually accept your username and password, but it will eventually work, and then you can browse for servers, and connect to one.