Skip navigation



I2PTunnel is a tool for interfacing with and providing services on I2P. Destination of an I2PTunnel can be defined using a hostname, Base32, or a full 516-byte destination key. An established I2PTunnel will be available on your client machine as localhost:port. If you wish to provide a service on I2P network, you simply create I2PTunnel to the appropriate ip_address:port. A corresponding 516-byte destination key will be generated for the service and it will become avaliable throughout I2P. A web interface for I2PTunnel management is avaliable on localhost:7657/i2ptunnel/.

Default Services

Server tunnels

  • I2P Webserver - A tunnel pointed to a Jetty webserver run on localhost:7658 for convenient and quick hosting on I2P.
    The document root is:
    Unix - %APPDATA%\I2P\eepsite\docroot
    Windows - C:\Users\**username**\AppData\Roaming\I2P\eepsite\docroot

Client tunnels

  • I2P HTTP Proxy - localhost:4444 - A HTTP proxy used for browsing I2P and the regular internet anonymously through I2P. Browsing internet through I2P uses a random proxy specified by the "Outproxies:" option.
  • Irc2P - localhost:6668 - An IRC tunnel to the default anonymous IRC network, Irc2P.
  • mtn.i2p2.i2p - localhost:8998 - The anonymous monotone sourcecode repository for I2P
  • smtp.postman.i2p - localhost:7659 - A SMTP service provided by postman at
  • pop3.postman.i2p - localhost:7660 - The accompanying POP sevice of postman at


I2PTunnel Configuration

Client Modes


Opens a local TCP port that connects to a service (like HTTP, FTP or SMTP) on a destination inside of I2P. The tunnel is directed to a random host from the comma seperated (", ") list of destinations.


A HTTP-client tunnel. The tunnel connects to the destination specified by the URL in a HTTP request. Supports proxying onto internet if an outproxy is provided. Strips HTTP connections of the following headers:

  • Accept, Accept-Charset, Accept-Encoding, Accept-Language and Accept-Ranges as they vary greatly between browsers and can be used as an identifier.
  • Referer:
  • Via:
  • From:

HTTP client/server tunnels are via I2Ptunnel force-enabling compression via the following http headers:

  • Accept-Encoding:
  • X-Accept-Encoding: x-i2p-gzip;q=1.0, identity;q=0.5, deflate;q=0, gzip;q=0, *;q=0

Depending on if the tunnel is using an outproxy or not it will append the following User-Agent:

  • Outproxy: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20100625 Firefox/3.6.6
  • Internal I2P use: User-Agent: MYOB/6.66 (AN/ON)


Creates a connection to a random IRC server specified by the comma seprated (", ") list of destinations. Only a whitelisted subset of IRC commands are allowed due to anonymity concerns.

  • MODE
  • JOIN
  • NICK
  • QUIT
  • PART
  • KICK
  • H

SOCKS 4/4a/5

Enables using the I2P router as a SOCKS proxy.


Enables using the I2P router as a SOCKS proxy with the command whitelist specified by IRC client mode.


Creates a HTTP tunnel and uses the HTTP request method "CONNECT" to build a TCP tunnel that usually is used for SSL and HTTPS.


Creates a UDP-server attached to a Streamr client I2PTunnel. The streamr client tunnel will subscribe to a streamr server tunnel.

Server Modes


Creates a destination to a local ip:port with an open TCP port.


Creates a destination to a local HTTP server ip:port. Supports gzip for requests with Accept-encoding: x-i2p-gzip, replies with Content-encoding: x-i2p-gzip in such a request.

HTTP Bidirectional

Functions as both a I2PTunnel HTTP Server, and a I2PTunnel HTTP client with no outproxying capabilities. An example application would be a web application that does client-type requests, or loopback-testing an eepsite as a diagnostic tool.


Creates a destination that filters the reqistration sequence of a client and passes the clients destination key as a hostname to the IRC-server.


A UDP-client that connects to a media server is created. The UDP-Client is coupled with a Streamr server I2PTunnel.