Decreasing World of Warcraft ping via ssh tunneling
by Ryan French on Feb.03, 2008, under Cool Stuff, Techy Stuff
So this is a pretty nifty little trick one of my flat mates put me onto. Being a NZer playing WoW can be pretty bad at times, especially when you get 500-600 ping as a standard. By using this method I have actually managed to halve my ping. I now sit around 300, and normally sit between 250-300 almost every time I log in. So this is what you need to get, and what you need to do to set it up.
The theory behind this is that despite denial by ISPs, SSH tunneling appears to have priority for international data transfer. So by sshing into a machine, you decrease the amount of time it takes to get to the server, which is then much closer to the WoW servers. Of course, it has also been proven that Blizzards TCP is not exactly friendly towards international traffic, which means by tunneling through an American server, the WoW server believes you are an American. Be warned, a few (and I mean less than 10 out of literally tens of thousands) have been banned for the the rapid change in ISPs. I have been using this technique for weeks, and have not received any warnings or bans thou.
1. Rent a server in America. Obviously I use the same server that hosts my website, but you dont have to use one little that. A lot of people are going in with a group and managing to get one for less than NZ$5 each a month. Hey, if you already pay to play WoW, whats $5 to make it more enjoyable to play.
2. Download putty and either Freecap. Proxycap or Sockscap. I personally use Freecap. mostly because it is free. Proxycap you either have to buy or find some other way to get a hold of it, but why would you when Freecap works just as well. Sockscap is also free, and apparently the most bug free of the software options, but I have spent hours searching for a working link to download it, and I havent managed to find one.
So now you have everything you need, this is what you have to do to set it up.
1. Setup the ssh tunnel with Putty.
For those not aware of what putty is, it allows you to ssh into a machine from a windows environment. I’m sure it does much more than that, but really that’s all I have ever used it for.
To start off with, find the ssh->Tunnels menu in the left hand column. Type 1080 into the box next to ‘Source port’, check the Dynamic option, then click Add. This should add ‘D1080′ into your Forwarded ports box.
Also if you like to go AFK for a while like I do, it may be a good idea to enable Send TCP Keep Alives under the connection menu.
Then go back to the Session menu. Enter the ip address of your server into the Host Name field, with port 22. Enter a name for the session (i.e. WoW tunnel) then click save.
2. Setting up Freecap.
This is pretty simple. Go to the File menu, and select New Application. Under Profile name, enter a name of your choice. Under Program path, click on browse, and navigate to your WoW.exe file, in you WoW directory. Working directory should automatically fill itself out. You do not need to enter anything into the Program parameters field. Add ’127.0.0.1′ to the proxy settings, on port 1080. Then under program settings, set DNS Resolving to ‘Local then Remote’.
And thats is, you’re done. To make use of this, open putty, and start a ssh tunneling session. Then open Freecap and double click on the World of Warcraft icon. This will start the game and away you go.
If you find WoW is crashing before it starts, simply close both puty and freecap and try again.
To make sure it is working, download wireshark, and check that the packets generated by WoW are being sent to your servers ip, rather than the WoW servers ip.
I will admit, most of the information I have posted here is a collaboration from the following links.
Lowerping Setup (this site explains how to set up the tunnel with pretty pictures and everything)
GPForums Thread (this is the gp forums thread that has a lot of advice from many different people that have used an ssh tunnel themselves)
So good luck getting it setup. Any problems, leave a comment and I’ll do my best to help.
EDIT: A few new steps have been added to the FreeCap setup to get it to work with Battle.net merged accounts. This will prevent the dreaded ‘You are trying to connect to an invalid server’ message that people get when trying to log into a Battl.net account using ssh tunneling.
February 20th, 2008 on 1:16 am
I wonder if this would work in my case. I live in middel east and play in an EU server located in UK or France not sure. If i take for example a server located in between, Italy lets say would that improve my ping?
February 20th, 2008 on 3:52 am
So as far as I am aware one of the main reasons this works is because WoW is not nice when it deals with international IPs. So basically for it to work for you, you would have to find out what country the Euro servers are located in and rent a server in that country. Saying that, there is no guarantee that this would give you better ping, seeing as I haven’t seen anyone trying it on the Euro servers. In theory it should, but I wouldn’t be able to give you a definite answer sorry.
March 1st, 2008 on 12:23 am
Hey again,
I did actually rent a small server in France where the wow server i play is at, and the result was amazing. i had less than 300ms considering i live in middel east. However, sometimes i have all of a sudden lag and increase in ping above 1k then game goes to normal. This happen few times. Dose this have to do with the bandwidth of the server i rent? because it only costed me 7$ a month. One more question, can i use this server as a proxy?
March 1st, 2008 on 2:19 pm
I live in the middle east too.. can I use your server? =D
March 2nd, 2008 on 1:59 am
Yeah, I find with my own server it does occasionally spike. I believe this is due to a large amount of traffic at the hosting site causing some packets to be lost, or considering you only pay $7 a month you more than likely have a virtual private server, so if someone else is using the machine for anything bandwidth or CPU intensive then that will cause slight lag too. Luckily that normally only lasts a few minutes or so.
In terms of using the server as a proxy, what exactly were you wanting to do? To use it for caching pages or serving you internet requests you would have to redirect all traffic through to the server, and I dont actually know if thats possible. If you let me know exactly what features you were looking to use I’ll look into it for you.
November 21st, 2008 on 6:12 am
now there is a program that achieves the process automaticly.
http://www.pimpmylatency.com
August 31st, 2009 on 12:24 pm
In you are using Mac, you can use WoW2GO (http://www.leapingbytes.com/wowtogo/). WoW2GO allow you to play WoW via SOCKS proxy, HTTP proxy and SSH connection