Moved supported_applications and bittorrent pages into docs/applications

This commit is contained in:
str4d
2012-11-11 05:27:03 +00:00
parent 899892e6f7
commit 5575cc293f
3 changed files with 10 additions and 5 deletions

View File

@@ -27,6 +27,12 @@
<li><a href="{{ site_url('docs/how/elgamalaes') }}"><span>{{ _('ElGamal/AES+SessionTags') }}</span></a></li>
</ul>
</li>
<li class="has-sub"><a href="#"><span>{{ _('Applications') }}</span></a>
<ul>
<li><a href="{{ site_url('docs/applications/supported') }}"><span>{{ _('Supported applications') }}</span></a></li>
<li><a href="{{ site_url('docs/applications/bittorrent') }}"><span>{{ _('Bittorrent') }}</span></a></li>
</ul>
</li>
<li class="has-sub"><a href="#"><span>{{ _('API') }}</span></a>
<ul>
<li><a href="{{ site_url('docs/api/i2ptunnel') }}"><span>{{ _('I2PTunnel') }}</span></a></li>
@@ -48,7 +54,6 @@
</ul>
</li>
<li><a href="howto.html"><span>{{ _('Howto docs') }}</span></a></li>
<li><a href="applications.html"><span>{{ _('Applications') }}</span></a></li>
</ul>
</li>
<li class="has-sub"><a href="#"><span>{{ _('Support') }}</span></a>

View File

@@ -0,0 +1,276 @@
{% extends "global/layout.html" %}
{% block title %}Bittorrent over I2P{% endblock %}
{% block content %}
Updated September 2012, current as of router version 0.9.2
<p>There are several bittorrent clients and trackers on I2P.
As I2P addressing uses a Destination instead of an IP and port, minor
changes are required to tracker and client software for operation on I2P.
These changes are specified below.
Note carefully the guidelines for compatibility with older I2P clients and trackers.
</p>
<p>
This page specifies protocol details common to all clients and trackers.
Specific clients and trackers may implement other unique features or protocols.
</p>
<p>
We welcome additional ports of client and tracker software to I2P.
</p>
<h2>Announces</h2>
<p>
Clients generally include a fake port=6881 parameter in the announce, for compatibility with older trackers.
Trackers may ignore the port parameter, and should not require it.
</p>
<p>
The ip parameter is the base 64 of the client's
<a href="common_structures_spec.html#struct_Destination">Destination</a>,
using the I2P Base 64 alphabet [A-Z][a-z][0-9]-~.
<a href="common_structures_spec.html#struct_Destination">Destinations</a>
are 387+ bytes, so the Base 64 is 516+ bytes.
Clients generally append ".i2p" to the Base 64 Destination for compatibility with older trackers.
Trackers should not require an appended ".i2p".
</p>
<p>
Other parameters are the same as in standard bittorrent.
</p>
<p>
While all current Destinations for clients are exactly 387 bytes, a tracker should not
presume that will always be so. A reasonable maximum to assume, for now, is 475 bytes.
As the tracker must decode the Base64 to deliver compact responses (see below),
the tracker should probably decode and reject bad Base64 when announced.
</p>
<p>
The default response type is non-compact. Clients may request a compact response with
the parameter compact=1. A tracker may, but is not required to, return
a compact response when requested.
</p>
<p>
Developers of new I2P clients
are strongly encouraged to implemenent announces over their own tunnel rather than
the HTTP client proxy at port 4444. Doing so is both more efficient and it allows
destination enforcement by the tracker (see below).
</p>
<p>
There are no known I2P clients or trackers that currently support UDP announce/responses.
</p>
<h2>Non-Compact Tracker Responses</h2>
<p>
The non-compact response is just as in standard bittorrent, with an I2P "ip".
</p>
<p>
Trackers generally include a fake port key, or use the port from the announce, for compatibility with older clients.
Clients must ignore the port parameter, and should not require it.
</p>
<p>
The value of the ip key is the base 64 of the client's
<a href="common_structures_spec.html#struct_Destination">Destination</a>, as described above.
Trackers generally append ".i2p" to the Base 64 Destination if it wasn't in the announce ip, for compatibility with older clients.
Clients should not require an appended ".i2p" in the responses.
</p>
<p>
Other response keys and values are the same as in standard bittorrent.
</p>
<h2>Compact Tracker Responses</h2>
<p>
In the compact response, the value of the "peers" dictionary key is a single byte string,
whose length is a multiple of 32 bytes.
This string contains the concatenated
<a href="common_structures_spec.html#type_Hash">32-byte SHA-256 Hashes</a>
of the binary
<a href="common_structures_spec.html#struct_Destination">Destinations</a>
of the peers.
This hash must be computed by the tracker, unless destination enforcement
(see below) is used, in which case the hash delivered in the X-I2P-DestHash
or X-I2P-DestB32 HTTP headers may be converted to binary and stored.
The peers key may be absent, or the peers value may be zero-length.
</p>
<p>
While compact response support is optional for both clients and trackers, it is highly
recommended as it reduces the nominal response size by over 90%.
</p>
<h2>Destination Enforcement</h2>
<p>
Some, but not all, I2P bittorrent clients announce over their own tunnels.
Trackers may choose to prevent spoofing by requiring this, and verifying the
client's
<a href="common_structures_spec.html#struct_Destination">Destination</a>
using HTTP headers added by the I2PTunnel HTTP Server tunnel.
The headers are X-I2P-DestHash, X-I2P-DestB64, and X-I2P-DestB32, which are
different formats for the same information.
These headers cannot be spoofed by the client.
A tracker enforcing destinations need not require the ip announce parameter at all.
</p>
<p>
As several clients use the HTTP proxy instead of their own tunnel for announces,
destination enforcement will prevent usage by those clients unless or until
those clients are converted to announcing over their own tunnel.
</p>
<p>
Unfortunately, as the network grows, so will the amount of maliciousness,
so we expect that all trackers will eventually enforce destinations.
Both tracker and client developers should anticipate it.
</p>
<h2>Announce Host Names</h2>
<p>
Announce URL host names in torrent files generally follow the
<a href="naming.html">I2P naming standards</a>.
In addition to host names from address books and ".b32.i2p" Base 32 hostnames,
the full Base 64 Destination (with [or without?] ".i2p" appended) should be supported.
Non-open trackers should recognize their own host name in any of these formats.
</p>
<p>
To preserve anonymity,
clients should generally ignore non-I2P announce URLs in torrent files.
</p>
<h2>Client Connections</h2>
<p>
Client-to-client connections use the standard protocol over TCP.
There are no known I2P clients that currently support uTP communication.
</p>
<p>
I2P uses 387+ byte
<a href="common_structures_spec.html#struct_Destination">Destinations</a> for addresses, as explained above.
</p>
<p>
If the client has only the hash of the destination (such as from a compact response or PEX), it must perform a lookup
by encoding it with Base 32, appending ".b32.i2p", and querying the Naming Service,
which will return the full Destination if available.
</p>
<p>
If the client has a peer's full Destination it received in a non-compact response, it should use it
directly in the connection setup.
Do not convert a Destination back to a Base 32 hash for lookup, this is quite inefficient.
</p>
<h2>Cross-Network Prevention</h2>
<p>
To preserve anonymity,
I2P bittorrent clients generally do not support non-I2P announces or peer connections.
I2P HTTP outproxies often block announces.
There are no known SOCKS outproxies supporting bittorrent traffic.
</p>
<p>
To prevent usage by non-I2P clients via an HTTP inproxy, I2P trackers often
block accesses or announces that contain an X-Forwarded-For HTTP header.
Trackers should reject standard network announces with IPv4 or IPv6 IPs, and not deliver them in responses.
</p>
<h2>PEX</h2>
<p>
I2P PEX is based on ut_pex.
As there does not appear to be a formal specification of ut_pex available,
it may be necessary to review the libtorrent source for assistance.
It is an extension message, identified as "i2p_pex" in
<a href="http://www.bittorrent.org/beps/bep_0010.html">the extension handshake</a>.
It contains a bencoded dictionary with up to 3 keys, "added", "added.f", and "dropped".
The added and dropped values are each a single byte string, whose length is a multiple of 32 bytes.
These byte strings are the concatenated SHA-256 Hashes of the binary
<a href="common_structures_spec.html#struct_Destination">Destinations</a>
of the peers.
This is the same format as the peers dictionary value in the i2p compact response format specified above.
The added.f value, if present, is the same as in ut_pex.
</p>
<h2>DHT</h2>
<p>
DHT support is included in the i2psnark client as of version 0.9.2.
Preliminary differences from
<a href="http://www.bittorrent.org/beps/bep_0005.html">BEP 5</a>
are described below, and are subject to change.
Contact the I2P developers if you wish to develop a client supporting DHT.
</p>
<p>
Unlike standard DHT, I2P DHT does not use a bit in the options handshake, or the PORT message.
It is advertised with an extension message, identified as "i2p_dht" in
<a href="http://www.bittorrent.org/beps/bep_0010.html">the extension handshake</a>.
It contains a bencoded dictionary with two keys, "port" and "rport", both integers.
</p>
<p>
The UDP (datagram) port listed in the compact node info is used
to receive repliable (signed) datagrams.
This is used for queries, except for announces.
We call this the "query port".
This is the "port" value from the extension message.
Queries use I2CP protocol number 17.
</p>
<p>
In addition to that UDP port, we use a second datagram
port equal to the query port + 1. This is used to receive
unsigned (raw) datagrams for replies, errors, and announces.
This port provides increased efficiency since replies
contain tokens sent in the query, and need not be signed.
We call this the "response port".
This is the "rport" value from the extension message.
It must be 1 + the query port.
Responses and announces use I2CP protocol number 18.
</p>
<p>
Compact peer info is 32 bytes (32 byte SHA256 Hash)
instead of 4 byte IP + 2 byte port. There is no peer port.
In a response, the "values" key is a list of strings, each containing a single compact peer info.
</p>
<p>
Compact node info is 54 bytes (20 byte SHA1 Hash + 32 byte SHA256 Hash + 2 byte port)
instead of 20 byte SHA1 Hash + 4 byte IP + 2 byte port.
In a response, the "nodes" key is a
single byte string with concatenated compact node info.
</p>
<p>
Secure node ID requirement: To make various DHT attacks more difficult,
the first 4 bytes of the Node ID must match the first 4 bytes of the destination Hash,
and the next two bytes of the Node ID must match the next two bytes of the
destination hash exclusive-ORed with the port.
</p>
<p>
In a torrent file,
the trackerless torrent dictionary "nodes" key is TBD.
It could be a list of
32 byte binary strings (SHA256 Hashes) instead of a list of lists
containing a host string and a port integer.
Alternatives: A single byte string with concatenated hashes,
or a list of strings alone.
</p>
<h2>Additional Information</h2>
<ul>
<li>
I2P bittorrent standards are generally discussed on <a href="http://zzz.i2p/">zzz.i2p</a>.
</li>
<li>
A chart of current tracker software capabilities is <a href="http://zzz.i2p/files/trackers.html">also available there</a>.
</li>
<li>
The
<a href="http://forum.i2p2.de/viewtopic.php?t=2068">I2P bittorrent FAQ</a>
</li>
<li>
<a href="http://zzz.i2p/topics/812">DHT on I2P discussion</a>
</li>
</ul>
{% endblock %}

View File

@@ -0,0 +1,621 @@
{% extends "global/layout.html" %}
{% block title %}Supported Applications{% endblock %}
{% block content %}
<h1 class="title">Supported Applications</h1>
<div id="TOC">
<ul>
<li><a href="#blogging-and-forums">Blogging, Forums, and Wikis</a></li>
<li><a href="#decentralized-file-storage">Decentralized File
Storage</a></li>
<li>
<a href="#development-tools">Development Tools</a>
<ul>
<li><a href="#version-control">Version control</a></li>
</ul>
</li>
<li><a href="#domain-naming">Domain Naming</a></li>
<li><a href="#email">Email</a></li>
<li>
<a href="#file-sharing">File Sharing</a>
<ul>
<li><a href="#bittorrent-clients">BitTorrent clients</a></li>
<li><a href="#bittorrent-trackers-and-indexers">BitTorrent trackers
and indexers</a></li>
<li><a href="#ed2k">ED2K</a></li>
<li><a href="#gnutella">Gnutella</a></li>
</ul>
</li>
<li>
<a href="#network-administration">Network Administration</a>
<ul>
<li><a href="#general-purpose-socket-utilities">General-purpose
socket utilities</a></li>
<li><a href="#sshscpsftp">SSH/SCP/SFTP</a></li>
</ul>
</li>
<li>
<a href="#real-time-chat">Real-time Chat</a>
<ul>
<li><a href="#instant-messaging-clients">Instant messaging
clients</a></li>
<li><a href="#irc-clients">IRC clients</a></li>
<li><a href="#irc-servers">IRC servers</a></li>
</ul>
</li>
<li>
<a href="#web-browsing">Web Browsing</a>
<ul>
<li><a href="#anonymous-websites">Anonymous websites</a></li>
<li><a href="#proxy-software">Proxy software</a></li>
<li><a href="#inproxies">Inproxies</a></li>
<li><a href="#outproxies">Outproxies</a></li>
</ul>
</li>
<li>
<a href="#website-hosting">Website Hosting</a>
<ul>
<li><a href="#web-servers">Web servers</a></li>
</ul>
</li>
</ul>
</div>
<p>This is intended to be a comprehensive listing of applications used with
I2P. If you know of something that's missing please submit a ticket on
<a href="http://trac.i2p2.de/report//">Trac</a>, and be sure to select the
“www” component in the submission form.</p>
<p>Supported applications are tagged with one or more of the following:</p>
<dl>
<dt><em>bundled</em></dt>
<dd>
<p><em>Bundled application</em> — I2P ships with a few officially
supported applications that let new users take immediate advantage of
some of I2P's more useful capabilities.</p>
</dd>
<dt><em>plugin</em></dt>
<dd>
<p><em>Third-party plugin</em> — I2P's plugin system provides convenient
deployment of I2P-enabled applications and allows tighter integration
with the router. Plugins are [reviewed by the community](<a href=
"http://plugins.i2p">http://plugins.i2p</a>) to identify security and
anonymity issues.</p>
</dd>
</dl>
<dl>
<dt><em>standalone, standalone/mod</em></dt>
<dd>
<p><em>Third-party standalone application</em> — Many standard network
applications only require careful setup and configuration to communicate
anonymously over I2P. These are tagged with <em>standalone</em>. Some
applications, tagged with <em>standalone/mod</em>, require patching to
function properly over I2P or to prevent inadvertent disclosure of
identifying information such as the user's hostname or external IP
address.</p>
</dd>
<dt><em>service</em></dt>
<dd>
<p><em>Third-party essential network service</em> — Services which on
the I2P network are analogous to those provided on the public Internet
by hosting providers, ISPs, and Google: eepsite indexes and jump
services, search engines, email, DNS-style name services, hosting,
proxies, etc. These services focus on boosting the usefulness of the
network as a whole, and making network content more discoverable.</p>
</dd>
<dt><em>unmaintained</em></dt>
<dd>
<p><em>Unmaintained</em> — This is used to tag plugins, applications,
and services which appear to be unmaintained and may be removed from
this listing in the future.</p>
</dd>
</dl>
<p><strong>Warning: Using an application, plugin, or service with I2P
doesn't automatically protect your anonymity. I2P is merely a set of tools
which can help you mitigate certain <a href="{{ site_url('docs/how/threatmodel') }}">identified
threats to anonymity</a>. We do not and cannot make any guarantees about the
safety of the applications, plugins, and services listed below. Most
applications and plugins must be properly configured, and some will need to
be patched — and even then your anonymity might not be assured. Similarly,
services could put your anonymity at risk, either by design or through
carelessness on their part or your own.</strong></p>
<p><strong>If you have doubts about the suitability of an application,
plugin, or service for use with I2P, you are urged to inquire about privacy
issues with its maintainers, to search its mailing lists and bug tracker if
one exists, and consult trusted, knowledgeable members of the I2P
community.</strong></p>
<p><strong>Take responsibility for your own anonymity and safety — always
seek expert advice, educate yourself, practice good judgment, be mindful of
disclosing personally identifying information, and don't take
shortcuts.</strong></p>
<h3 id="blogging-and-forums"><a href="#TOC">Blogging, Forums, and Wikis</a></h3>
<ul>
<!-- let's disable this for now, at least, since it's nearly impossible to
find configuration instructions; plus, there certainly isn't a plugin
available for this.
<li>
<p><a href="http://www.blojsom.com/blog/"><strong>Blojsom</strong></a> —
Lightweight blogging platform.
<sup><em>[plugin,&nbsp;standalone/mod]</em></sup></p>
</li>
-->
<li>
<p><a href="http://github.com/trevorturk/eldorado/"><strong>El
Dorado</strong></a> — Lightweight forum software.
<sup><em>[standalone/mod]</em></sup></p>
</li>
<li>
<p><a href="http://pebble.sourceforge.net/"><strong>Pebble</strong></a>
— Another lightweight blogging platform.
<sup><em>[plugin,&nbsp;standalone/mod]</em></sup></p>
</li>
<li>
<p><a href="http://www.phpbb.com/"><strong>phpBB</strong></a> — Most
popular open source forum software.
<sup><em>[standalone/mod]</em></sup></p>
</li>
<li>
<p><a href="http://syndie.i2p2.de/"><strong>Syndie</strong></a>
Distributed forums software, originally developed by jrandom.
<sup><em>[plugin,&nbsp;standalone,&nbsp;unmaintained]</em></sup></p>
</li>
<li>
<p><a href="http://jamwiki.org"><strong>JAMWiki</strong></a>
A Java-based MediaWiki clone. No external database needed.
Plugin available <a href="http://plugins.i2p/plugins/jamwiki">here</a>.
<sup><em>[standalone,&nbsp;plugin]</em></sup></p>
</li>
</ul>
<h3 id="decentralized-file-storage"><a href="#TOC">Decentralized File
Storage</a></h3>
<ul>
<li><a href=
"http://killyourtv.i2p/tahoe-lafs/"><strong>Tahoe-LAFS-I2P</strong></a> — Port
of the <a href="http://tahoe-lafs.org/"><strong>Tahoe-LAFS</strong></a>
distributed file system to the I2P network. Controller plugin <a href=
"http://stats.i2p/i2p/plugins/">here</a>.
<sup><em>[plugin,&nbsp;standalone]</em></sup></li>
</ul>
<h3 id="development-tools"><a href="#TOC">Development Tools</a></h3>
<h4 id="version-control"><a href="#TOC">Version control</a></h4>
<ul>
<li>
<p><a href="http://git-scm.com/"><strong>Git</strong></a> — Most popular
distributed version control system. <sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://monotone.ca/"><strong>Monotone</strong></a> — Another
distributed version control system. Currently <a href=
"monotone.html">used in I2P development</a>.
<sup><em>[standalone]</em></sup></p>
</li>
</ul>
<h3 id="domain-naming"><a href="#TOC">Domain Naming</a></h3>
<ul>
<li><a href="http://127.0.0.1:7657/susidns/"><strong>susidns</strong></a>
— Provides management of addressbooks, which are part of a simple,
user-controlled <a href="naming.html">I2P naming system</a> somewhat
analogous to the Internet's Domain Name System (DNS). Addressbooks map
Base64 destinations to short, usually human-readable “domain” names ending
with a .i2p suffix which the I2P router's HTTP client can resolve back to
Base64 addresses. (<em>Note:</em> While Base64 destinations are globally
unique, addressbook “domain” names only resolve to unique destinations
locally.) <sup><em>[bundled]</em></sup></li>
</ul>
<h3 id="email"><a href="#TOC">Email</a></h3>
<ul>
<li>
<p><a href="http://i2pbote.i2p/"><strong>I2P-Bote</strong></a>
Serverless peer-to-peer email application using a distributed hash table
(DHT) for secure mail storage. <sup><em>[plugin]</em></sup></p>
</li>
<li>
<p><a href="http://hq.postman.i2p/"><strong>Postman's anonymous email
service</strong></a> — Provides email service within the I2P network via
@mail.i2p addresses, and email gateway service between the I2P network
and the public Internet via @i2pmail.org addresses. One of the oldest
continuous services on I2P. <sup><em>[service]</em></sup></p>
</li>
<li>
<p><a href=
"http://127.0.0.1:7657/susimail/susimail"><strong>susimail</strong></a>
— Simple web browser-based email interface. Configured to use Postman's
email service by default. <sup><em>[bundled]</em></sup></p>
</li>
</ul>
<h3 id="file-sharing"><a href="#TOC">File Sharing</a></h3>
<h4 id="bittorrent-clients"><a href="#TOC">BitTorrent clients</a></h4>
<ul>
<li>
<p><a href=
"http://127.0.0.1:7657/i2psnark/"><strong>I2PSnark</strong></a> — I2P's
integrated BitTorrent client. <sup><em>[bundled]</em></sup></p>
</li>
<li>
<p><a href=
"http://forum.i2p/viewtopic.php?t=4532"><strong>I2PSnarkXL</strong></a>
— Modified version of I2PSnark. <sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://bob.i2p/Robert.html"><strong>Robert</strong></a> — a
fork of rufus that uses the Basic Open Bridge (BOB) and has many
improvements, including using the latest wxwidgets and python. It also
supports use of seedless if installed for trackerless torrents and
magnet-link like fetching of torrents within i2p.
<sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href=
"http://www.transmissionbt.com/"><strong>Transmission</strong></a>
Clean, full-featured cross-platform BitTorrent client with official
ports for several GUI toolkits. <sup><em>[standalone/mod]</em></sup></p>
</li>
<li>
<p><a href="http://www.vuze.com/"><strong>Azureus/Vuze</strong></a>
Had a built-in I2P transport for a while.
<sup><em>[standalone,&nbsp;unmaintained]</em></sup></p>
</li>
</ul>
<h4 id="bittorrent-trackers-and-indexers"><a href="#TOC">BitTorrent trackers
and indexers</a></h4>
<p>For a detailed feature comparison of I2P-enabled trackers/indexers, see
<a href="http://zzz.i2p/files/trackers.html">here</a>.</p>
<ul>
<li>
<p><a href=
"http://echelon.i2p/tracker/"><strong>Bytemonsoon</strong></a> — The
code that powered one of the first major tracker/indexer sites on the
Internet. Patched for I2P. <sup><em>[standalone/mod]</em></sup></p>
</li>
<li>
<p><a href=
"http://erdgeist.org/arts/software/opentracker/"><strong>opentracker</strong></a>
— Lightweight tracker/indexer. I2P mod available in the i2p.opentracker
branch of the <a href="{{ site_url('volunteer/guides/newdevelopers') }}">I2P Monotone repository</a>.
<sup><em>[standalone/mod]</em></sup></p>
</li>
<li>
<p><a href="http://stats.i2p/i2p/plugins/"><strong>zzzot</strong></a>
<a href="http://zzz.i2p/">zzz's</a> Java-based open tracker. More info
<a href="http://zzz.i2p/topics/598?page=1#p2085">here</a>.
<sup><em>[plugin]</em></sup></p>
</li>
</ul>
<h4 id="ed2k"><a href="#TOC">ED2K</a></h4>
<ul>
<li><a href=
"http://forum.i2p/viewtopic.php?t=2213"><strong>iMule</strong></a> — I2P
port of the aMule ED2K client. <sup><em>[standalone]</em></sup></li>
</ul>
<h4 id="gnutella"><a href="#TOC">Gnutella</a></h4>
<ul>
<li>
<p><a href=
"http://forum.i2p/viewforum.php?f=25"><strong>I2Phex</strong></a> — Port
of the <a href="http://www.phex.org/">Phex</a> Gnutella client. Website
for plugin version <a href="http://stats.i2p/i2p/plugins/">here</a>.
<sup><em>[plugin,&nbsp;standalone]</em></sup></p>
</li>
<li>
<p><a href=
"http://forum.i2p/viewtopic.php?p=9486#9486"><strong>jwebcache</strong></a>
— Cache for Gnutella peers on I2P. Website for plugin version <a href=
"http://stats.i2p/i2p/plugins/">here</a>.
<sup><em>[plugin,&nbsp;standalone]</em></sup></p>
</li>
</ul>
<h3 id="network-administration"><a href="#TOC">Network
Administration</a></h3>
<h4 id="general-purpose-socket-utilities"><a href="#TOC">General-purpose
socket utilities</a></h4>
<ul>
<li>
<p><a href="http://nc110.sourceforge.net/"><strong>netcat</strong></a>
Unix standard tool for socket relaying. Several clones, ports, and forks
have appeared over the years. <sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href=
"http://www.dest-unreach.org/socat/"><strong>socat</strong></a> — Like
netcat but more powerful. <sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://tsocks.sourceforge.net/"><strong>tsocks</strong></a>
— Proxy providing simple, transparent SOCKS-ification of network
applications. <sup><em>[standalone]</em></sup></p>
</li>
</ul>
<h4 id="sshscpsftp"><a href="#TOC">SSH/SCP/SFTP</a></h4>
<ul>
<li>
<p><a href="http://www.openssh.com/"><strong>OpenSSH</strong></a> — Most
popular implementation of the Secure Shell (SSH) protocol and related
tools. <sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href=
"http://www.chiark.greenend.org.uk/~sgtatham/putty/"><strong>PuTTY</strong></a>
— Open source Secure Shell (SSH) client for Windows.
<sup><em>[standalone]</em></sup></p>
</li>
</ul>
<h3 id="real-time-chat"><a href="#TOC">Real-time Chat</a></h3>
<h4 id="instant-messaging-clients"><a href="#TOC">Instant messaging
clients</a></h4>
<ul>
<li><a href="http://forum.i2p/viewtopic.php?t=2474"><strong>I2P
Messenger</strong></a> — IM client with multiple incarnations.
<sup><em>[standalone]</em></sup></li>
</ul>
<h4 id="irc-clients"><a href="#TOC">IRC clients</a></h4>
<p>Many IRC clients leak identifying information to servers or other
clients, so I2P's IRC and SOCKS IRC client tunnels filter certain inbound
and outbound messages to scrub data such as LAN IP addresses, external IP
addresses, local hostnames, and the name and version of the IRC client. Two
message types in particular, DCC and CTCP, can't be sufficiently anonymized
without changes to the protocols or to IRC client/server code, so they are
completely blocked, except for CTCP ACTION (the message emitted by the
<code>/me</code> command) which isn't inherently dangerous.</p>
<p>I2P's IRC filtering may not cover every possible leak — users should also
check if their client is sending their real name or local username. Packet
sniffers such as <a href="http://www.wireshark.org/">Wireshark</a> are
useful here. Eliminating remaining leaks may be as simple as changing the
client's default configuration. If that doesn't help, inform the I2P
developers; they may be able to solve it via additional filtering.</p>
<ul>
<li>
<p><a href="http://jircii.dashnine.org/"><strong>jIRCii</strong></a>
Small Java-based IRC client. Plugin available <a href=
"http://stats.i2p/i2p/plugins/">here</a>.
<sup><em>[plugin,&nbsp;standalone]</em></sup></p>
</li>
<li>
<p><a href="http://xchat.org/"><strong>XChat</strong></a>
Cross-platform graphical IRC client.
<sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://www.irssi.org/"><strong>irssi</strong></a> — Unixy
terminal-based IRC client. <sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://www.weechat.org/"><strong>WeeChat</strong></a>
Another Unixy terminal-based IRC client.
<sup><em>[standalone]</em></sup></p>
</li>
</ul>
<h4 id="irc-servers"><a href="#TOC">IRC servers</a></h4>
<ul>
<li>
<p><a href=
"http://ngircd.barton.de/index.php.en"><strong>ngIRCd</strong></a> — IRC
server developed from scratch. <sup><em>[standalone/mod]</em></sup></p>
</li>
<li>
<p><a href="http://www.unrealircd.com/"><strong>UnrealIRCd</strong></a>
— Most popular IRC server. <sup><em>[standalone/mod]</em></sup></p>
</li>
</ul>
<h3 id="web-browsing"><a href="#TOC">Web Browsing</a></h3>
<h4 id="anonymous-websites"><a href="#TOC">Anonymous websites</a></h4>
<ul>
<li>
<p><strong>Eepsites</strong> — Any website hosted anonymously on I2P,
reachable through the I2P router's HTTP proxy.
<sup><em>[service]</em></sup></p>
</li>
<li>
<p><strong>Deepsites</strong> — Distributed anonymous websites hosted
using Tahoe-LAFS-I2P, currently only reachable with Tahoe-LAFS-I2P
clients or through the Tahoe-LAFS-I2P HTTP proxy.
<sup><em>[service]</em></sup></p>
</li>
<li>
<p><a href="http://i2host.i2p/"><strong>i2host.i2p</strong></a>
Website for <a href="http://sponge.i2p/">sponge's</a> jump service.
Source code available. <sup><em>[service]</em></sup></p>
</li>
<li>
<p><a href="http://i2jump.i2p/"><strong>i2jump.i2p</strong></a>
Another jump service. <sup><em>[service]</em></sup></p>
</li>
<li>
<p><a href="http://perv.i2p/"><strong>perv.i2p</strong></a>
Dynamically updated eepsite index. <sup><em>[service]</em></sup></p>
</li>
<li>
<p><a href="http://stats.i2p/"><strong>stats.i2p</strong></a> — Website
for <a href="http://zzz.i2p/">zzz's</a> jump service.
<sup><em>[service]</em></sup></p>
</li>
</ul>
<h4 id="proxy-software"><a href="#TOC">Proxy software</a></h4>
<ul>
<li>
<p><a href=
"http://www.pps.jussieu.fr/~jch/software/polipo/"><strong>Polipo</strong></a>
— SOCKS-enabled caching web proxy with basic filtering capabilities.
<sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://www.privoxy.org/"><strong>Privoxy</strong></a>
Privacy-focused non-caching web proxy with advanced filtering
capabilities. Excels at removing ads and other junk.
<sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://www.squid-cache.org/"><strong>Squid</strong></a>
Venerable caching web proxy. <sup><em>[standalone]</em></sup></p>
</li>
</ul>
<h4 id="inproxies"><a href="#TOC">Inproxies</a></h4>
<p>Gateways allowing users on the public Internet to access eepsites.</p>
<ul>
<li><a href="http://i2p.to/"><strong>i2p.to</strong></a><a href=
"http://tino.i2p/">tino's</a> inproxy on the public Internet.
<sup><em>[service]</em></sup></li>
</ul>
<h4 id="outproxies"><a href="#TOC">Outproxies</a></h4>
<p>Gateways allowing I2P users to access content hosted on the public
Internet.</p>
<ul>
<li><a href="http://false.i2p/"><strong>false.i2p</strong></a> — Publicly
advertised outproxy running Squid, located in Germany.
<sup><em>[service]</em></sup></li>
</ul>
<h3 id="website-hosting"><a href="#TOC">Website Hosting</a></h3>
<ul>
<li><a href="http://jetty.codehaus.org/jetty/"><strong>Jetty</strong></a>
— Lightweight web server and Java servlet container. I2P is tightly
integrated with a bundled copy of Jetty which by default is configured to
host the <a href="http://127.0.0.1:7658/">user's eepsite</a>. The bundled
Jetty also serves the I2P router console and web applications bundled with
I2P. <sup><em>[bundled,&nbsp;standalone]</em></sup></li>
</ul>
<h4 id="web-servers"><a href="#TOC">Web servers</a></h4>
<p>In addition to Jetty, any web server should function over I2P without
modification so long as it's HTTP-compliant. Some web servers known to
currently serve content on the I2P network are:</p>
<ul>
<li>
<p><a href="http://httpd.apache.org/"><strong>Apache HTTP
Server</strong></a> — Most popular web server on the public WWW.
<sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://tomcat.apache.org/"><strong>Apache
Tomcat</strong></a> — Web server and Java servlet container. More
features than Jetty. <sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://www.lighttpd.net/"><strong>lighttpd</strong></a>
Fast lightweight web server. <sup><em>[standalone]</em></sup></p>
</li>
<li>
<p><a href="http://www.nginx.org/"><strong>nginx</strong></a>
High-performance lightweight web server.
<sup><em>[standalone]</em></sup></p>
</li>
</ul>
<!-- vim: set noai nosi ft=html tw=79 et sw=4 ts=4 spell spelllang=en: -->
{% endblock %}