{% extends "_layout.html" %} {% block title %}Socks{% endblock %} {% block content %}
As it says on the FAQ:
While it would be technically feasible, many applications leak sensitive information that could identify you on the internet. I2P only filters connection data, but if the program you intend to run sends this information as content, I2P has no way to protect your anonymity. For example, some mail applications will send the IP address of the machine they are running on to a mail server. There is no way for I2P to filter this, thus using I2P to 'socksify' existing applications is possible, but extremely dangerous.
However, there is code in I2P that hasn't been used in many years, if it all. It apparently was written by "human". Nobody currently working on I2P has tested it.
And quoting from a 2005 email:
... there is a reason why human and others have both built and abandonded the SOCKS proxies. Forwarding arbitrary traffic is just plain unsafe, and it behooves us as developers of anonymity and security software to have the safety of our end users foremost in our minds. Hoping that we can simply strap an arbitrary client on top of I2P without auditing both its behavior and its exposed protocols for security and anonymity is naive. Pretty much *every* application and protocol violates anonymity, unless it was designed for it specifically, and even then, most of those do too. Thats the reality. End users are better served with systems designed for anonymity and security. Modifying existing systems to work in anonymous environments is no small feat, orders of magnitude more work that simply using the existing I2P APIs.
Still Interested? Here's brief and vague guide to the code:
#!/bin/sh export I2P=~/i2p java -cp $I2P/lib/i2ptunnel.jar:$I2P/lib/mstreaming.jar:$I2P/lib/streaming.jar:$I2P/lib/i2p.jar net.i2p.i2ptunnel.I2PTunnel -cli $*Now type sockstunnel portnumber and you will have a client tunnel. Type close 1 to close the tunnel and quit to quit.
// FIXME: here we should read our config file, select an // outproxy, and instantiate the proper socket class that // handles the outproxy itself (SOCKS4a, SOCKS5, HTTP CONNECT...).So maybe that's a hint.