Skip to content
Archive of entries posted on May 2012

Creating a SOCKS5 proxy for Diablo III

Here’s a simple tutorial how to create SSH Tunnel and Socks proxy to play Diablo III behind a firewall, or just to avoid 3007 errors. You’ll only need a SSH server where you can connect to.

Creating the SOCKS5  SSH tunnel with Putty

Step 1: Open Putty and go to the Tunnels menu. Set source port to 9999, and then set Dynamic as the port type, and press Add.

Set the Tunnel port into 9999, set port type to dynamic, and press add

Step 2: To prevent unwanted disconnects from the SSH server you should set a value to “seconds between keepalive packages”. Open the Connections menu and set some value to seconds between the keepalive packages. 30 seconds is smaller than my server’s disconnect time, so that’s fine for me.

Set the seconds between keepalive packages to 30

Step 3: Open the session page, and connect to SSH Server. Just replace the Host Name “mysite.com” with the server you want to connect to.

You can also save your session in this page (if you don’t want to configure the SSH tunnel again) by writing a name into the saved session, and then pressing save.

Write your server address to the host name and press Open

Write your server address to the host name and press Open

Choosing the Proxifier Software

The Proxifier is a proxy server, that can route your traffic though the SOCKS SSH tunnel, that we just created. The Diablo III uses UPD, so you should choose Proxifier SW that supports the SOCKS5 UDP Associate. You can get pretty good comparison at Wikipedia article here: http://en.wikipedia.org/wiki/Comparison_of_proxifiers I decided to use Widecap, since it’s for windows, it supports UDP, and it’s free.

Continue reading ‘Creating a SOCKS5 proxy for Diablo III’ »

Solving the 3007 error in Diablo III

I had pretty much same problem that’s described in this battle.net forum post: https://eu.battle.net/d3/en/forum/topic/4210083858 Most of the 3007 error pages are just full of trolling, but this one seems quite informative, so I keep that as a reference.

At fist I started the WireShark to see what’s going on. The log was full of TCP Retransmission packets telling me that the TCP packest aren’t going though. My best guess is that my ISP is marking those packets as bittorrent packages, and then the QOS is heavily limiten their bandwidth.

I filtered the dns records, and I noticed that in the login phase the Diablo III is connecting into eu.actual.battle.net port 1119, and that my network traffic into that IP is quite limited. My first ideas was to create SSH tunnel, and tunnel the port 1119 into the battlenet.

Creating the SSH tunnel

I added the line to the windows host file, to route all traffic to eu.actual.battle.net into my localhost.

#battle.net
127.0.0.1 eu.actual.battle.net

After this I opened putty, and set the Tunnel in the Putty’s tunnels menu. I created a local tunnel into port 1119(that’s where I’ll be getting the packages from diablo III), and then I set the destination into eu.actual.battle.net:1119 (where all that data should go).

Did it work?

Well, it didn’t work. After going though the Wireshark logs I noticed that there are some other ports (seemed like random) opened into eu.actual.battle.net too, and there was some UPD packages as well, so regular SSH tunneling wasn’t enough.

However in this kinds of situations we can use the SOCKS5 Proxy to tunnel though a single SSH tunnel into the Battle.net

Creating a SOCKS5 Proxy for Diablo

SOCKS5 to the rescue. I used putty to create the SOCKS tunnel in the Putty’s tunnel menu by biding a local port 9999, and choosing the tunnel type as dynamic. Then I used Widecap as a proxyfier to make a proxy for Diablo III. I proxied only the IP for the eu.actual.battle.net, since I didn’t wan to was any more bandwidth from my SSH server than I had to. I also blogged about SOCKS5 for Diablo III in more details at http://www.summeli.com/?p=2933

My thoughts about Tizen

After the Meego was dumped by Nokia,  Intel and Samsung created an alliance to create new a Linux based mobile OS called Tizen. The Tizen is pretty close to the old WebOS with HTML5 application framework, and Linux kernel.  The Tizen SDK was published a while ago and it really doesn’t impress me at all.

The whole Tizen SDK seems pretty useless to me. I don’t need this heavy SDK, and all of it’s simulator and emulators to develop HTML5 apps. Regular browser and JavaScript debugger is enough for me. The only reason for me to use the HTML5 to is the portability. The app should run on every platform Android, iPhone, wp7, Meego etc, so I really don’t see any reason to use Tizen specific API’s, instead I would use Phonegap and build for multiple platforms instead of choosing only to build for Tizen.

I guess that the HTML5 is good enough to build simple 2D-games by drawing into canvas, and writing the game logic with JavaScript, but It’s not that good for serious applications. The biggest problem with HTML5 apps with jQuery Mobile is the performance. Even on Samsung Galaxy SII you won’t get 60fps scrolling with basic list elements. You can test this by yourself by loading the jQuery mobile demos page in your phone. After running the demos with few devices it seems that Apple engineers have optimized the webkit pretty well for the iPhone, but every other platform is just way too slow. Also the animations are pretty much useless on Android devices. Jittering happens all the time if you try to use the animations. I really hope that Intel and Samsung engineers are going to make huge optimization’s to the webkit, since otherwise the platform will be completely too slow, and unusable.

I would like to have SDL and Qt frameworks as part of the Tizen to develop native apps. The Tizen is Linux based after all, so porting existing games and apps would be easy if SDL and Qt would be a part of the current platform. However I still have some hopes for Tizen, since it seems to me that any community member could port SDL or Qt to Tizen with the platform SDK, and add it into some repository for everyone’s benefit.