Breaking out of proxy jail: Azureus on OS X with desproxy

Introduction

In this example, I will go into the specifics of using desproxy on OS X to download/upload a torrent via an HTTP proxy.

If you've not already, you should read the desproxy section in the previous page.

This example makes use of desproxy as a SOCKS server, which as stated earlier will only be useful if your proxy allows connections to non-HTTPS ports.

Names, addresses, etc

Note: The proxy servers address in this instance is 127.0.0.1 (localhost). Normally this would not be the case: the proxy would be another address on your local network. But for the purpose of demonstration, I have been running a local squid proxy server. So, when ever you see 127.0.0.1 on this page, you need to substitute it with your proxy address!

Desproxy configuration

The following arguments were used to desproxy-socksserver:

desproxy-socksserver 127.0.0.1 3128 1080

The local SOCKS server is now running on port 1080.

A log of desproxy-socksserver output can be found here: desproxy-socksserver.log.

As you can see, there are a few HTML messages in desproxy's output. These are all responses from the proxy server of peers timing out.

Azureus configuration

The following settings were used in the Connection section of Azureus' preferences:

Here is a screenshot of Azureus' preferences:

And a screenshot of the torrent in action:

Additional information

It took a while for Azureus to make the initial connection with the peers, but once it got going the speeds were acceptable.

As can be seen from the squid proxy log, it was making all the connections: squid_access.log.

Viewing the active connections on the client machine (using `netstat -n`) will show that the only connections being made are to the proxy, and not directly to the peers.