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
- Proxy server address: 127.0.0.1
- Proxy server port: 3128
- Proxy server type: squid 2.5
- BitTorrent client: Azureus 2.3.0.4
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 1080The 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:
- Enable proxying of tracker communications: true
- I have a SOCKS proxy: true
- Host: 127.0.0.1
- Port: 1080
- Enable proxying of peer communications (outgoing connections only)
- Inform tracker of limitation
- SOCKS version: V4
- Use same proxy settings for tracker and peer communications proxy
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.